Magento Contributions: 2018, 2019 and beyond

Back in 2017 Magento has made a move which many of us couldn’t fully comprehend back then. It was the creation of a completely new business unit – Community Engineering department, and Max Yekaterynenko, Magento’s then Director of Development, becoming its head. In the first few months, it wasn’t quite clear what this department was aimed at doing, but fast forward two years and we can surely tell that this initiative is one of the most successful Community initiatives Magento ever took.

5,000 pull requests is no little. The Magento Community delivered almost that many over the course of 2018. But pull requests are relative. There are ones that could take an hour and ones that could take days. However, if we look at the projects at least partially completed in 2018 – MSI, GraphQL and Bulk API, we can see the results. The MSI alone is about 12% of the whole Magento 2 codebase. Just imagine, roughly every 10th line of code in Magento 2 is MSI. Developed by Community.

Magento 2018 ranking screenshot

We’ve been contributing too. Last year, we jumped into the Community Engineering program and delivered 364 contributions, earning 5745 points, making us the #1 contributor of the year and a #1 monthly contributor of 10 months in a row. Besides contributing on our own, we’ve organized the contribution days in our office and one in Magento’s office in Ukraine, during their MageCONF conference, as well as co-organized the Distributed Contribution Day. Huge props to other fellow partners and individual contributors who also made a contribution to Magento in the past year.

A view from Yaroslav Rogoza, Atwix CTO

Sometimes, people ask me how we develop the culture of contributions at Atwix, so I spoke about it with our CTO and Magento Maintainer, Yaroslav Rogoza.

Slava: Yaroslav, what do you think are the main challenges of contributing to Magento?
Yaroslav: I would say that the most difficult challenge is the learning curve when you jump in into a new project such as GraphQL or MSI. It’s much easier to bring some improvements and bugfixes to Magento core. But when it comes to a new project, you meet new paradigms, architectural ideas, and technologies. Fortunately, guys from Community Engineering group do the hard work of involving and inspiring new people from the community.

Slava: With such a steep learning curve, how do you motivate developers to not give up, but learn and contribute?
Yaroslav: Very often people came to me with doubts about the usefulness of contributions. First of all, if you work with Magento projects, at some point in time you realize that you are doing a sort of routine. You are working on similar tasks from day to day with rare chances to do something you have never done before. When you start contributing, you have an opportunity to work on something really exciting. Also, you become a part of the great community with its own challenges, dramas, continuous debates. Explaining these facts to contributors helps them to get the general idea and proceed with gaining new experience.
Help is a great motivation. When you help new people in handling some new challenges they don’t give up in the very beginning.

Slava: But it is also time-consuming?
Yaroslav: For sure, contributions are very time-consuming. But the amount of time required for a contribution depends on your goal. If you want to just make a small fix it might require less time in comparison with cases when your main goal is to learn something new. If you are going to contribute you should be ready to spend a large piece of your free time. But if you really like what you do, this time brings a lot fun.

Slava: What do you think can be done to involve more people into contributions globally?
Yaroslav: First of all, the most difficult challenge for newcomers is uncertainty on what to do. A good backlog with clear descriptions gives the opportunity for everyone to spend less time on guessing where to jump in, so they can spend more time solving the issues or bringing new features. For some projects, the backlog looks great, with user stories, use cases, acceptance criteria, etc. For other projects… It’s just a good point for further improvements :). It does not mean that Magento employees should prepare this backlog. As an example, in the core repository community prepares the backlog (mostly). But it just needs some moderation process and I’m really glad that now this improvement is on its way.

Also, contributor’s points matter. No, the points are not the main goal of contributions… But they matter. Everyone wants to be a top contributor and the points are one of the motivation factors. The problem is that some contribution might be x10 more complex than the other one. But the contributor will not get x10 points for that complex contribution.

Slava: And last, but not least, what was your favorite project in 2018?
Yaroslav: GraphQL was the most exciting project for me in terms of new technologies and open-minded development approach. Also, the project maintainers do a really great job by providing a clear picture of what needs to be done and what results they expect.

How about Atwix’s TOP Contributors?

That is how Yaroslav sees contributions. But what about others at Atwix? I’ve decided to speak with Dmytro Cheshun and Vitaliy Boyko, who made it into the TOP 10 Individual Contributors of 2018 list.

Slava: Dmytro, what Magento Contributions mean to you personally?
Dmytro: For me personally, it’s a really nice feeling when you play a role in the development of such a popular e-commerce platform. To feel your input and realize that the result of your work can be useful for millions of people using Magento 2 around the world. That is a very motivational point for me.

Slava: How about your daily work? Has it been somehow influenced by your contributions?
Dmytro: Now, when I face some issue while developing a custom solution, I don’t need to wait until someone else fixes it. I can fix it by myself and create a pull request. In such a way I can accelerate the process of issue resolving, as well as helping other developers who face the same problem. Also, contributing to Magento helped me get a deeper knowledge of Magento architecture and learn from the Community Engineering Team’s experience. Thanks to Magento and Atwix for such an opportunity!

Slava: Vitaliy, how did you get involved in the contributions?
Vitaliy: I’ve started to contribute accidentally. I remember, at the end of 2017, I saw an ad for Atwix Magento Meetup and Contribution Day in Khmelnitsky. I was pretty excited that Magento developers and architects about to come together in order to write the code and it’s going to be so near to me. I had no doubt, I ought to join. But unfortunately, I wasn’t quite experienced in Magento development at that moment and it was really challenging to me. I was afraid. What if I could not complete a task? What if I make some dummy decision? But anyway, I’ve decided that I must try.

During the Contribution Day, I’ve got acquainted with Magento guys – Ihor Miniailo and Valerii Naida and with my first Open Source project – the MSI. Guys showed me how it works, how to make a PR, what I should do and what I shouldn’t. I’ve got a lot of new knowledge from them. Work on the Open Source project is a lot different from typical work in an agency. It requires different approaches and different thinking. You should always consider that your code will be used by thousands of other developers around the world. And I must say, it’s both a great experience and a huge responsibility.

Slava: Do you remember your first Pull Request? :)
Vitaliy: When my first PR was merged, it brought me a lot of pleasure, and I decided to continue. That is how during the past year I took part in the Magento 2 Core, GraphQL and MSI projects. I’ve made 55 accepted PRs solving a lot of interesting, challenging and useful tasks.

Slava: So what participation in the Community Engineering program gives you personally?
Vitaliy: First of all, it’s new knowledge. The best way to learn Magento is by contributing to it. During the contributions I dug in such deep places in Magento that I would never discover during casual development. I’ve learned new approaches and technologies that would let me work with MSI, Magento 2 GraphQL and Magento 2 PWA in Atwix projects quickly and efficiently, without investing more time to learn it. I have also met a lot of new acquaintances and friends. Interacting with so many bright minds in the Magento Community help me grow as a professional. And last but not least – pleasure. I like to write code, it makes me happy.

How about the plans for 2019?

That is how contributions affected Atwix and I am very proud of the profound change we see in the company and grateful for the opportunity Magento brings to us. 2018 has been phenomenal, but what 2019 has for us in store as far as contributions are concerned? I decided to ask Ihor Miniailo, Magento Architect from the Community Engineering team and the coordinator of the MSI project.

Slava: Ihor, what Community projects can we expect in 2019?
Ihor: 2019 is going to be very exciting for us. The first two projects we have on the horizon are Store Pickup and Search. We’ll be improving Magento’s search in a number of ways, and that, along with Store Pickup, are expected to be the hottest projects in Magento community in 2019.

Igor was short, but on point :). It looks like we have an exiting year ahead of us. So, happy contributions everyone!