Tales of the Magento Adobe Stock Integration. Part II.

In the previous chapter, we talked about work on the Magento Adobe Stock Integration (ASI) project and how these kinds of volunteer activities are critical to the continued growth of developer’s expertise. As a result of engagement in such projects, developers not only get to improve their Magento skills, but the whole ecosystem also benefits from the accelerated roadmap delivery.

The Open-source world has no borders or limits. If the GitHub reflected the world map with all the commits delivered to the repository, the ASI would quickly prove this to be true. Canada, Ireland, India, Ukraine, Great Britain, Germany, Slovakia, Bulgaria, Malaysia, USA. This is not even a full list of countries that contributors who worked on this project call home. We thought it would be fun to hear stories from the people who drive ASI to the next level and went ahead interviewing them.

Raul E Watson , Magento contributor

Raul E Watson , Magento contributor

Raul, you have been one of the most active contributors in the past two years. What is your driving force when delivering great technical expertise to the community?

Oh, thanks! Well, I enjoy working with Magento and developing in general. Having the opportunity to contribute to the platform I work with every day, to share and discuss functionalities with talented developers like you Alex, Sergii, Shankar and many others is a great honor and also good fun.

You are one of the individuals who started active development of the Adobe Stock Integration. When you first encountered this project, what was it like?

I always wanted to contribute but it had been a little difficult for me. Yes, everything is in GitHub, you can see the source code, pick up an issue and submit your PR but sometimes it is hard, especially in those mature projects, such as Magento 2 PWA, Magento 2 MSI and Magento 2 Core. They have hundreds of contributors. Also, the issues outstanding in those projects can sometimes be a bit complex. Fortunately, I received my opportunity during Contribution Day at Imagine 2019. Stanislav Idolov from Magento (Adobe) was looking for developers to join him to start working on this new project, Adobe Stock Integration.

Contribution Day at Imagine 2019

I know that during the first phase of the project you delivered the masonry grid component which was the first one architected in the scope of ASI and delivered to the Magento core. Was it challenging for you? Did you learn anything new?

Actually I think it was Shankar Konar who delivered the biggest part of the masonry grid. If I remember correctly I did the initial database schema, some of the initial getters and setters, one of the filters for the grid, some of the configs and a bit of the unit and MFTF tests. 

I am not going to lie, it was challenging to keep on top of a normal job, family, life obligations and contributions all at the same time, and is not because I did not have help, I had tons and I will always be grateful with Sergii, Stanislav and many other members of the team who in many occasions spent their free times discussing functionalities and approaches and helping me. I learned a lot during those discussions.

Magento Contribution Photo

Have you transferred anything from the contribution experience to your company development flow? Maybe PR review features, code quality analysis or something else?

Oh yes, I have transferred the PR review culture to my teams and automated the code analysis as we have in ASI.

What would you suggest for those who just started down the Magento contribution road?

I would say to them, Congratulations! You are about to start a fun and exciting journey. It will be challenging but what you are going to learn is priceless for your career as a Magento Developer. Also, you are not alone, you have a great team and very talented people just a Slack message away so don’t be afraid to ask if you don’t know something.

Shankar Konar, Magento contributor

Shankar Konar, Magento contributor

Shankar, you are one of the most active community contributors. When did you start taking a part in the community life and why?

I started my career as a Magento developer around 2 years ago. At that time, I hadn’t considered participating in the community, and I lacked knowledge about how open-source projects operate. Magento was my first open-source project as a contributor. Honestly, I started contributing because I was getting bored but now I find it a great place to learn and share knowledge across the community. There is a story behind why I was getting bored and started contributing. One year ago, I was playing volleyball and I broke my ankle. The doctor told me I was going to be unable to walk for one month. I was getting bored just resting all day so I joined the Magento slack channel and I read the thread from Stanislav Idolov that they are starting the new Adobe stock integration project and they need contributors to help. Thats how my contribution journey started. I haven’t stopped and I hope to continue on into the future!

What is your driving force to spend so much time with the open-source Magento projects?

My reason is the learning curve. It allows me to learn something new every day. There are a lot of new challenges which really helps me to keep spending time on projects.

Does the contribution experience help you in the business projects you are working on? What skills have you improved?

Contribution experience has changed my whole mindset and the way I work. If I compare myself before and after my contribution experience there is a huge difference.

I have learned new skills like Knockout JS, UI component, basics of Java and a lot of other skills because I started contributing in a very early stage of my career.

From your point of view what impact does community have on Magento?

From my point of view, community is an important catalyst for the future of the Magento. Community is playing a vital role in the development of Magento.

Nazar Klovanich, Magento contributor

Nazar Klovanich, Magento contributor

What was most challenging and interesting for you in the first iteration of the project?

I would say that the authorisation functionality such as login/log out and representation of the authorised user data was one of the complicated and exciting parts. Because this feature implementation required expertise from all spheres. I had to style representation of the data along with adding required scripts from the fronted. And I also had to provide a number of services from the backend side to handle authorization and required data. All in all, it was a great experience working on such a request!

How has your work on the Adobe Stock Integration improved your skills? What new technologies or approaches did you receive?

Work with the ASI has brought me significant skill improvements! One of the substantial things is the code review. Detailed review of your implementation helps to reach a new level of technical expertise. Personally, I made great progress in working with the frontend because in the scope of the ASI project there are a lot of challenging requests related to the UI components and other similar stuff.

Does the Magento community bring significant contribution to Magento project’s growth?

Yes, definitely! I think that the Magento community plays a crucial role. It assists, improves and maintains many projects. For example, the ASI is the driven community project, and it is cool to have community support.

I know that you had been working on the MFTF test coverage for ASI functionality. What do you think about the MFTF and their importance? Are they easy in maintenance?

The MFTF tests are essential for the project because they help to keep the built system of processes stable by identifying the business process work correctly after the changes. That kind of test is easy to maintain. The base rule to reach this simplicity is to keep them well isolated to avoid cross affection. And, of course, follow the best practices in writing tests. To check those rules you can review official documentation from Magento. Once you read this and understand base selectors and actions in the MFTF you will be able to cover new functionality with tests.

Sergii Ivashenko, Magento Community Engineering Team

Sergii Ivashenko, Magento Community Engineering Team

How did the work on ASI get started?

In the Product Department. Before beginning work on this project, we collected information about the usage of the stock images around the Magento based stores, proof of concept created along with the specification. Stock image data research has shown that more than half of Magento projects use licensed images and a little less than quarter use Adobe Stock services. Based on this analysis, we concluded that the Adobe Stock Integration should create a more comfortable daily routine for Magento admin and content managers.

Who started the work on the project and how has this setup changed over time?

At first, we developed the HLD and built the initial construction of the project. Then at Magento Imagine the Magento Community introduced the project during contribution day. From there the Magento Community Engineering team started working with Stanislav Idolov. We worked on the project for awhile until the focused shifted to the Magento Inventory project. There was excellent communication and cooperation on test coverage for the project. A lot was done to guarantee project stability! Now our Community Engineering team has gained Gabriel Dagama – his attention to detail has been essential.

What impact did ASI have on the Magento platform? What practices that were tested and proved in the scope migrated to the Magento core?

Implementing the ASI scope, we tried not to focus only on the integration goals but also construct the codebase, which is possible to reuse in other projects. As a result, we delivered the Magento MediaGallery module which provides the ability to work with the media assets attributes and new UI components for their representation.

Olena Tkacheva, Product manager at Magento

Olena Tkacheva, Product manager at Magento

Why was the Adobe Stock Integration selected as one of the first integrations between the Magento platform and Adobe products?

Adobe Stock integration is actually the first integration between Adobe services and Magento that we did. It was chosen because it was the perfect combination of value and level of effort required. It brings thousands and thousands of high-quality images directly into Magento media gallery for merchants to enrich their website content. 

I believe this was your first experience working with the Magento community. How would you describe your experience?

I’m thrilled! It’s hard to find the right words to explain what a great experience I’ve had working with the community. You guys are so involved in what you are doing and you decide where to put your effort – no one assigns you to the project. At the same time, you bring expertise from “fields” and challenge our solutions. It’s a great mix!

The Adobe Stock Integration has been in active development for over a year. The result of this active construction has been two releases with a large amount of new functionality. Do you have any worries before the first release?

I was sure that we did the right thing. I worried if we would have a chance to finish what we started. As you said we made huge progress. It goes beyond just Adobe Stock integration – it changes experience working with assets in Magento. Looking forward to seeing how it benefits Magento merchants. 

We learned (once again) that Magento Community is a strong and powerful gang! With ASI we got a chance to show that to our Adobe counterparts. 

While participating in various Magento events, I often heard questions about whether it would be possible to edit images in more detail in ASI. In detail: apply a filter, mirror the image and the like. Do you think this will be possible?

In the next phase of the ASI project we are focusing on asset management (bulk operations, asset metadata, filtering assets by where in Magento they used in, etc.) and programmatic image optimization for different viewports. I believe what we’ve done with Magento Media Gallery opens a market for extensions that can add image editing capabilities.

What functionality do you plan to add in future releases? What will be the killer feature?

We are looking into other opportunities with Adobe products that can help Magento merchants to thrive and one of the options is Substance. It will enable using 3D objects in Magento catalog to offer an immersive shopping experience. Will the community support it?

In Conclusion

Thank you to all who answered our questions and again proved the concept of open-source: collaboration is driven by the power of progress.

We will continue to keep our finger on the pulse of the Adobe Stock Integration and will keep you updated. Good luck, ASI!