 Hi, everyone. Thanks for joining. Today is a very eventful day for me. It's my first Drupal con session, as well as I just received an email. I just completed six years on Drupal.org. I had no idea. This was the day when I started. So I do remember getting my first job on 22nd of September, so maybe a day before I created a account on Drupal.org. OK, I went a bit forward. I'll introduce myself. My name is Gaurav Kapoor, and I'm from India. I'm currently working as senior Drupal developer at Xlrent. And on Drupal.org, I'm like Gaurav.Kapoor. Easier to find this username, but very difficult to get something similar on Gmail or anywhere. So I was lucky there is no with this name. And I'm a very active contributor, and I maintain almost 70 modules, most famous ones being Antibot and Discuss. And many more, I don't have the list. I have to check my profile. And recently, I also worked on a module called Documentation Generator. I'm currently finalizing things on that, as well as working on Ignition Error Pages module. So that's how my journey has been. I have been a developer, but I am very active in the conferences as well as in the contribution community. I have been mentor in various contribution sprints, as well as being involved a lot. And for dedicated six months, my role was just to contribute to Drupal, as well as help my entire team in contribution. So in case they had any problem, I used to help me out. That's my website. You can check it out if you want. Okay, so I'll give a quick brief of what all things I'm going to talk about. So I'll start with two very basic things, like why contribution is important for the existence of the project, as well as what are the benefits of contributing. And then I'll talk about a few tactics and techniques that I have gathered in all these years that will help you to encourage more and more of your team members to come forward and contribute. So one of the technique is categorize your team, figure out who are the ones who are contributing for the first time and who are the regular ones and who are the expert ones. So this categorization, we'll see how it can be helpful. And then I'll talk about modifying the approach in which we do our projects so that we can have a contribution-driven approach. Then I'll talk about various types of contribution, some of the additional things that I've done in some last years, which have helped. And then there's an internal tool, I'll not call it internal. There is an open source tool, which was internal earlier, but now it is available on GitHub. That will help you in tracking the contributions by your team. So I'll start, okay. Very first thing is existence of open source project. So your entire team has to understand that if nobody would contribute back, then the project would cease to exist. And maybe like most of us are aware of it and we understand the importance. But a thing from like a point of view, let's say like when I started my career, I had no idea. I was even shocked. There is something called like open source. I was like software developers are really paid well. Why would you give software for free? So this was the understanding I had at that time. So make sure everyone in your team, whether they are starting their career right now or have been around for a long time, they understand that if you want Drupal to exist in your resume, then make sure you do your part for the community as much as you can. And so yeah, that's one thing. And like most of us have a habit of like, we download Drupal, we just install it and we start like doing our project, we deliver it and then we sell it as well. And we do like nothing. And we use a lot of like freely available modules, freely available resources. And like we copy code from Stack Overflow. And I don't think many of us like, dedicatedly, you know, take out time so that we can go to Stack Overflow and look out the queries those have been posted. So yeah, so just like try and understand, like somebody has to contribute so that like project continues to grow. And yeah, that's the point everyone should understand. Okay, next is, so that was for like, why contribution is important for the project to exist. And now what do you get in return if you are a contributor? So I've gathered up, there are like various things. It has to be different for everyone, contribution journey and development journey is like different for everyone. But these are the four ones which I could gather and have like experienced as well. So first is learning. So I remember when I had no idea about Drupal, I saw a few video lectures and then I was moved to a project, which is like video lectures and all the resources, your team can only help you to some extent. But to really understand things, contribution is the like, you know, can take you to another like level. So I remember most like, I had no idea about coding standard. So when I created my first patch, then I got to know, okay, there's a tool called code sniffer that we are supposed to run. And that's how, and again, I started, I had no idea about what's a patch, what's an interactive, what are unit tests, we completely miss in some of the projects. But then through contribution, I got to know about all this. And that's how I was able to understand like almost like all the concepts of Drupal through the contribution. Otherwise, if I would only rely on training or waiting for some task to come on project, then I like, it might take a lot of time to learn something. Yeah, next is reputation. You know, like, we have our own like Drupal stars and all that helps. And even in my case, when I like, when I told, I was having an interview with the excellent two years back, I gave my profile to them. They checked sample code from one of the module that I wrote and they just hired me. So if someone really wants to develop a good reputation in the community, contribution is one way of doing it. Then it's networking. I don't think I have to explain that. You are at DrupalCon and you can see how like coming together, supporting the community is helping you build a network as well. Payback to the community. If you will, I got this point from a web form module. There is a very nice line written over there like that it's just unethical to use a software for free and do nothing in the return. So that's why I added it. And in a way, you would be like paying back to the community while contributing. All right, so till now, all you have to ensure is all your team members like understand why contribution is important for the project to exist and what are the benefits of contributing. Okay, next is categorizing your team members. Now, like you have to understand whether they are first-time contributors or regular ones because then only you will be able to decide what approach you have to take so that everyone is actively contributing. In case your team is mostly like consist of first-time contributors or those who haven't contributed back, then you have to make sure they understand the ecosystem, understand the benefits. They're motivated enough and they understand both technical sides of contributing as well as the how to behave in the community. Then you have regular contributors, those who have already contributed a bit. And in that case, you just have to figure out whether they're facing technical issues in contributing or they're not able to get along with the community and understand the true essence of contribution. And once you have done this, developing strategy for boosting contributions become very easy. In case your team has some seasoned contributors or expert team members, then you just have to make sure they get enough time for mentoring internal team members or mentoring the community members. Okay, now if you will ask anyone why you don't contribute, why you, like one of the reason you will get is that they don't get enough time. They are like more, like entire week, everyone is busy in the projects and although we consider a 40 hour work week, but they are anyway spending almost like much more time than that in the project only. And after that, they have no energy to contribute. And people do go on bench, but ignoring that scenario, the main reason of not contributing is not getting enough time because of being busy on projects. Now, if you slightly modify the way you approach your project work, that can help in ensuring your team is working on project as well as getting time for contribution as well. So make sure, like most of us do, it's like that's how any Drupal project is developed. Try to use as much as of like contributed plugin, avoid custom development for something which already exists because even while using the contributed plugin, you're at least testing something out which is available freely. And then you can post bug reports or report issues. And those are also equally helpful for the community. You don't have time to do code contribution, but then you can still like at least post a review. Okay, this module works fine. And all this can happen very easily while on the project. And let's say you're doing a project for a client and you have developed a planning to like develop a custom solution. Try to approach it in such a way that you develop a generic module first which can then be contributed. And that way you can have a good overlap. You will have something you can contribute and something like at the same time you will be completing your project as well. And most of, and if you have noticed Drupal.org in issues, we have a field as well. I work here and then for client, I'm fixing this issue for a particular client. So you can talk to your client and give them my attribute as well. So they also get in recognition for supporting a open source contribution. And if you just go to any project which you completed recently, if you will check out the composer.json file, it will have a entry called patches. We just like whenever we are stuck, we just look for a patch and just use it in our project. It is a make a habit of posting a review. Okay, this worked for me or this didn't work for me. And so that's, and that will hardly take five, 10 minutes. So then your team won't have that excuse of not getting time if they have this habit. And yeah, so, okay. Slight changes in the way you approach your projects. There will be enough time to contribute as well as complete the projects without any delay. Okay, types of contribution. Very big misconception is for 90, 95% people, when they think about contribution, they think about code contributions only. They will have to either fix an issue or they're contributing a module, but there are other ways of contribution as well. Let's say documentation. You don't get enough time to build a module or work on an issue which already exists, but you can always help the project with documentation. In fact, documentation has been so bad in some projects and now the push is that there are many people ready to do the code part, but then nobody's there to pick up the documentation. So that's another way of contributing and then there is blogging. So what makes Drupal, I worked on a, what makes Drupal great whenever you search about anything, let's say how to create, how to use contextual filter in Drupal. You get good results on Google because many authors, many agencies have contributed the blogs around it and you can use it. I remember working on a different technology and it had absolutely no blogs because it was very difficult to find resources for it. So blogging, we don't take it as a contribution many times, but is a very good way of helping out the community. Then support channels are there, let's say you want to contribute, but you only have, let's say 30 minutes in a week and you don't have energy to start working on an issue or getting into anywhere in the code. You can just go to the support channel and help out the other community members who have posted the queries. So that's contribution as well. So there are other things that can be done instead of code, yeah, and then there is mentoring and that can happen while you're on a project as well. Mentoring is something you can spend a lot of time on it, but maybe within 10 minutes or 15 minutes, then also you can, in a day, you can do your part. So make sure your team is aware of various types of contribution because if they have a misconception that they can only contribute via code, then they may not be encouraged to contribute, but once they know there are other things as well, they might be interested. All right, some of the additional things that I've done in the last few years. So these are like a small things that you can also try with your team and I'm sure you must have your own ways as well on how you encourage your team. So one thing which can be done is having a dedicated contribution slot, let's say a Friday second half or maybe one hour at the end of the day, try to make sure that the projects are managed in such a way that you're able to have such slot. So this is a good strategy because I've seen most of the Drupal developers I've worked with after some time, they get bored as well, like, what did you do for like entire week? I was just configuring things and just pushing them out. So they feel like, you know, urge to code. So contribution can help like being as like a good refresh thing. And so that can be like, it's a good strategy, if possible, try to have a slot for your team or maybe like rotating slot or for your team and some members can like contribute in a different time slot. The next is incentivizing and like, you know, whoever is like contributing more, they can be given some sort of reward or some sort of recognition. But the problem with that is like, ensure that it doesn't lead to spamming and that's also like a big issue with Drupal. Many contributors just update the issue with either let's say spelling change or with screenshot of patch getting applied. So make sure that doesn't happen. And incentive like are used well and given only for an effective contribution that is useful for someone else. Okay, then you can have a contribution ambassador or a dedicated person who is supposed to keep an eye on what's happening in the community and that person can post regular updates so that your team is aware and everyone doesn't have to spend that much time in like, in knowing what's happening right now. So even I did this role for five, six months and I used to put detailed update and looking at those updates only like many people started getting involved and because they got to know, okay, they got interested. So I remember posting about a project browser and many people got excited, okay, something like this is happening in Drupal now and eventually they started like looking like at least tracking what's happening in the project browser project. So sharing updates is a good way to bring your team together. Okay, this is the last one. So it's about a tool, a contribution tracker. It's very easy to set up. It's just a Drupal 9 application. So set it up, any of your internal servers and your entire team can log in into it through Google or use the Drupal provided authentication and once they log in, you have to provide your Drupal.org as well as GitHub ID. So let's say your entire team has created an account on this and they have provided their IDs. Now what this tool does is, let's say I am already a user on one of the contribute tracker instance. The moment I will post a comment on any existing Drupal.org issue, it will keep a record of that and same goes with GitHub. If I create a merge request or if I post a comment on a GitHub issue, it will keep a record and it will store all that data and it will also shoot a Slack notification and now imagine Slack notification can go in a channel that has all your developers or all your team members. Now, the moment anyone has contributed in a team, you will get a notification on a Slack and this encourages collaboration and what team is at least aware. Someone is working on a particular issue. Maybe they can take it forward or maybe if they are facing any problem, they can start collaborating. This is for small teams may not be very necessary because we know what everyone is doing but for a team with like large scale, this is quite useful as you never know what all open source project someone is focusing on in your company. So that has been like very helpful for us and I just mentioned incentivizing or rewarding your top contributors. So this tool will give you a clear cut picture of who created like how many patches in last year, who created how many merge requests and who was the most actively involved person on Drupal.org and so I recommend like every team, like every Drupal agency should have it because after all we are all in the like contribution ecosystem. So that's it in the main presentation. There is already a blog on Xleren's website and you can like it's on my website as well, gktwlab.com and there is another one, how to find contribution tasks on Drupal.org that is like the next step. Once you have figured out like, okay, now we are motivated enough to contribute but in case finding tasks is an issue, then you can follow that blog and I have posted another blog in which I have described my journey as a like a contribution ambassador or a dedicated person who would not do client projects but would only do contribution, what all activities they can pick that has been summarized in the last blog. So thank you. Any questions and feel free to share what all things you have done in your team to encourage them to contribute. Thank you. No problem, I'll repeat the question.