The role of a mentor in an international organization.
So, I’d gladly hear about Daniel’s role, who seems to be a mentor to you. What finally made you change the way of thinking and stay?
As I mentioned, my first idea was to look through each file separately looking for possible problems. Of course, I initially found some small errors in the JavaDoc links, some unused imports and so on. Naturally, in order to meet the condition to be eligible for the dev2 level, I created a ticket on Jira and asked the community to approve this ticket. Then Daniel showed up and sent me a link to a tool being used by the community. It was SonarQube. Although the word “used” seems to be a little bit inaccurate from the present perspective.
I know that participants did not ask Herbert for help through OpenMRS Talk or request me to intervene, although I did offer it myself.
At first, before I ask someone for help, I try to deal with problems on my own. Daniel’s help was simply delivered quicker. As regards other people, they probably got discouraged faster than I did, or lacked a bit of perseverance. It is hard to judge.
Had you had anything to do with SonarQube before? Weren’t you put off using this “intricate” procedure from creating a ticket to starting working on it?
I had not used tools like SonarQube before. I hadn’t needed it, as I had written small applications alone and for my own needs. I just wanted the application to work properly and to fulfil its function, not to be immune to all threats and reflect the best programming practices. However, by working with this tool I could see its usefulness. Without SonarQube I wouldn’t be able to approach the next one.
As regards my experience with JIRA, well, the method seems simple and logical today, but at that time it was also my first contact with such a system, so I had to make some mistakes before I was able to grasp its inherent rules. Nevertheless, I’m not complaining, because without them I wouldn’t have acquired the knowledge I have today.
Has any of the participants tried to make contact with you? You are the most active participant in the program and maybe someone has noticed your success and the fact that you managed to overcome the problem?
I had no opportunity to exchange messages with other participants. In the beginning, we didn’t know who they were. It was only later that a channel was created via which we could see who was in the game, but most of them were not active any longer at that time.
Did you feel sufficiently cared for by us at the early stages and related problems in the OpenMRS community? Or do you perhaps think that we could have done more to make your work on the tasks easier?
I cannot complain about your care, but, as I said before, I did not especially seek it, either. Today, however, I don’t think I would’ve been disappointed, although I don’t know if I would’ve been in the same place I’ve reached without it.;)
The pride in what you’ve done yourself is surely a hundred times greater. Moreover, you have shown how determined and ambitious you are, even though others had initially the advantage of their development experience.
Today, I wonder whether or not my concerns about the class of competition were exaggerated. At the moment, I’m eager to think that experience of all of us was similar.
It’s hard for me to say, as at the registration stage we didn’t ask participants about their programming skills. Numerous courses, training programs and tutorials available on the market nowadays makes it possible to learn programming on your own, so we believed that everyone who applied knew what they were doing.
Before I got to know the project, I also thought I knew what I was doing, but reality verified this view.
What was Daniel’s role in your OpenMRS adventure? Was he a teacher, a mentor or he just provided guidance?
A mentor, a teacher are valuable words, but I find it difficult to use any of them here because such a relationship must be bilateral. Nevertheless, one thing is certain, Daniel’s hints were very helpful. Thanks to them, I found the right niche for myself.
It started with the fact that he showed you SonarQube, a what happened next? Did you become interested in this tool and similar ones or did you perhaps otherwise find this niche?
That’s true, he showed me SonarQube, and I used it to submit several other tickets. Thanks to this, a few of my PRs were attached to the master, which gave me great satisfaction. However, there is one disadvantage of using SonarQube in OpenMRS. Only openmrs-core repository is attached to it. Therefore, I had to do something about it. I found a solution on the Internet, it was SonarLint.
We both know that OpenMRS is a huge ecosystem, consisting of many modules. So, using the said SonarLint, I “reworked” the first of them. I created the tickets and asked Daniel if he could approve them, and he added a comment that completely turned my vision upside down. Up to now, I don’t know whether it was knowingly or accidentally, but the result was achieved.
What was that comment and why did it change your entire vision so drastically?
He wrote something like “I’m glad you doubled the number of intro tickets”. I knew there is something like that, but my first experience with them was instantly discouraging. Daniel’s comment may not seem significant now, but that is when I got enlightened. It was what I myself, the other participants of #OMRS2020 and those who have the first contact with OpenMRS are short of. When you want to join the OpenMRS community having no experience, you’ll encounter a whole range of new tools. Jira, Travis, Bamboo, not to mention principles of creating and managing PRs. Nothing is more demotivating than intro tickets which are a complete mystery without knowing OpenMRS code well.
The problems shown by SonarLint were trivial, but they allowed me to take my time to learn about the tools used when developing OpenMRS. After reading Daniel’s comment, I understood that this is what is missing in order to attract, not to discourage new people who might get involved in creating and maintaining the OpenMRS code.
It’s brilliant, simple and much needed. Why has nobody added such tasks before?Daniel and many other experienced programmers surely use such tools. Why wasn’t anyone able to take care of it and create a friendly place for rookies in OpenMRS?
And here we find a reference to SonarQube and its use. As I mentioned earlier, I also wonder, from today’s perspective, why no one had come up with this before, as some of the elements that could have been improved had existed in the code for several years. Maybe nobody used this system, and the system itself was developed and left.
I think Daniel is too busy to deal with such little things. His role is more important, and it is our job to improve the code at such a low level.
And why did no one use this to create such an environment? It is hard for me to judge, but there must always be the first person to notice something that no one has noticed before. Maybe that is my role in developing OpenMRS?
True, however, it is frequently discussed via the community forum how to attract new people, how to keep them and increase the number of contributors, and yet, nothing is being done to change the situation to actually let new people know the code.
Maybe the problem is that experienced programmers think about it…? Maybe there was no one here without such experience. Someone who knows what he was short of?
I have a question about the tasks, I mean Jira tickets. You added a lot of new and easy tasks. Didn’t you prefer to keep them for yourself and easily meet the necessary conditions to be promoted to dev2?
But I already met these conditions when I came across SonarQube. Using SonarLint, I was no longer so keen on…, I could take a broader view. Making these tickets on and on wouldn’t have been of any benefit to me. They could be useful for others.
You have selflessly done something bigger for the community, something that is discussed so much here. Is or was there anything, apart from the support and availability of easy tasks, missing in the OpenMRS community? Considering also this technical part.
As I have already mentioned, my first intention was to type in the code without obligations. Only over time, it turned out that it was not that simple. I mean to come across it and not to get involved. OpenMRS documentation is more than huge, contains everything, but you can get lost in it easily. I think this can still be improved, availability of the documentation, especially for those who have their first experience with this topic, so that they are not overwhelmed with information. Too much information at the very beginning can also be harmful and demotivating because you prematurely become aware of how big this project is.
Are you saying that you have already got involved in the organization?
In the organization? Not really. In the community, I think. Although I’ve never thought about such a division.
Are you planning to stay longer? Or it’s rather not a place (OpenMRS community) for you in the long run?
I am currently starting to write my Master’s degree thesis, therefore I may have a problem with time for OpenMRS, but I’m not going to leave it completely. After all, there are tickets under my supervision. There are also a lot of modules that can be used to create tickets for people who want to start working with OpenMRS, and even if there is one person in ten who stays and uses my tickets longer, it will be a success. Moreover, I keep getting notifications. If someone asks me for help, they always get it.
That’s correct. Undoubtedly, such people will be grateful to you, and your experience, your advice and the fact that you yourself have gone through this will be of great help to others. Speaking about the tools you’ve mentioned, why do you think so few people use them and why should they do this after all? These are tools to improve the quality of the entire code making it clean, nice and well readable. Commercial companies pay a lot of attention to this subject, and here it seems to be neglected and ignored.
I don’t want to make judgments as to why these tools are underappreciated. I can only guess that beginners don’t know them and that the experienced programmers are focused on providing new functionalities, but maybe that’s what they should deal with? Anyway, it provides opportunity to young and inexperienced programmers to show their skills. Maybe the only predefined path is what is missing?
SonarQube is described in the documentation, like everything else, but as I have already mentioned, sometimes too much information can be harmful.
Do you think then that there should be a team, a group of people whose tasks would be to improve the code?
Of course, quality of the code is quite an important issue in a project like OpenMRS, because human health may depend on it, but what would then be left for us as beginners? 😉
End of part 2. If you didn’t read Part One go there: How to win a competition? Interview with the winner of #OMRS2020. If you want to join OpenMRS, you can do it here.