Take Some Time to Learn Features and Code Before Making Any Change to Open Source Project
Tags: opensource, superproductivity, javascript
Published: 2022-10-23 21:15:24

### Many simultaneous issues put me in pressure
When I started to investigate some issues that I picked earlier this month, I felt very anxious to do something as soon as possible. I raised my hand to three issues and they are all from different repositories. This is not a good idea when I want to contribute more seriously. But I want to find good issues first to meet my target during Hacktoberfest. My problem was that I didn't spend enough time to learn the features and code. 

### I just started working without thoroughly reading resources that I have
I found [one issue](https://github.com/johannesjo/super-productivity/issues/2162) from *Super Productivity*. Because it seemed doable for me since it just needs to handle `undefined` property. I set up a dev environment and experimented the program a bit. Then, I tried to read the issue to reproduce on my local. Actually the issue was from the user that doesn't have an `avatarUrl` in Jira. The issue scope got bigger than my thought. I created three accounts and a dummy project in Jira for my test environment. Then, I tried to link it to *Supper Productivity* project. But it wasn't clear whether it's connected in my local or not. So I tried the same process with released version to make sure that I'm doing the right steps to make the sync between Jira and *Super Productivity*. It worked with released version. My local was continuously polling in but it didn't fetch anything. After searching though discussion board, I left a question to see if someone can help me with this issue. 

### Problems of procrastinating reading documentation 
Above process sounds not so much complicated, but I spent many hours to reach that point. Every step that I made is to learn a feature or component name. Then I realized something and searched the documentation. This pattern was similar in other open projects too. I'm not sure what is the proper way of starting to work on open source project but I think it would have been easier and faster if I had known the product or code better. And narrow understanding of code base can result in an in-comprehensive commit. 

### Eventually succeeded to contribute thanks to my effort to learn the program
My question was not answered for a day, then I suggested to enhance user experience by aligning buttons in Jira setup form. *Super Productivity* UI is so modern and well-defined with rich feature set. It seems main owner made huge efforts to make this program. I was amazed how such a job could be accomplished in this small community. I hope a little more UI details to be added to Jira form buttons. I created an issue and suggested to update. It was just few lines of CSS update. It's merged pretty quickly. https://github.com/johannesjo/super-productivity/pull/2303  

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vpssg0h9a6yrhamx6ovh.png)*I found this button alignment issue while testing other issue*

### Conclusion
I still want to fix the issue that I picked up for earlier, or I may even try to fix localhost Jira setup issue. Because I know the program better now, it's a chance to make bigger contribution to the project. Reading documentation throughly is one attribute of good developers. I will read the documentation and use available resources first before starting to work. It will make me more professional and give a good impression to the community.