| Title: Opensource from an author point of view | |
| Author: Solène | |
| Date: 23 March 2021 | |
| Tags: opensource | |
| Description: | |
| Hi, today's article will be a bit different than what you are used to. | |
| I am currently writing about my experience as an open source author and | |
| "project manager". I recently created a project that, while being | |
| extremely small, have seen some people getting involved at various | |
| level. I didn't know what it was to be in this position. | |
| Having to deal with multiple people contributing to a project I started | |
| for myself on one architecture with a limited set of features is | |
| surprisingly hard. I don't say it's boring and that no one should ever | |
| do it, but I think I wasn't really prepare to handle this. | |
| I made my best to integrate people wishes while keeping the helm of the | |
| project in the right direction, but I had to ask myself many questions. | |
| # Many questions | |
| Should I care about what other people need? I could say no to | |
| everything proposed if I see no benefit for my use case. I chose to | |
| accept some changes that I didn't use because they made sense in some | |
| context. But I have to be really careful to accept everything if I want | |
| to keep the program sane. | |
| Should I care about other platforms I don't use? Someone proposed me to | |
| add some code to support Linux targets, which I don't use, meaning more | |
| code I can't test. For the sake of compatibility and avoiding extra | |
| work to packagers, I made a very simple solution to fix that, but if | |
| someone wanted to port my program to Windows or a platform that would | |
| require many many changes, I don't know how I would react. | |
| Too much changing code situation. My program changed A LOT since my | |
| initials commits, and now a git blame mostly show no lines from me, | |
| this doesn't mean I didn't review changes made by contributors, but I | |
| am not as comfortable now that I was initially with my own code. That | |
| doesn't mean the new code is wrong, but it doesn't hold my logic in it. | |
| I think it's the biggest deal in this situation, I, as the project | |
| manager, must say what can go in, what can't and when. It's fine to | |
| receive contributions but they shouldn't add complexity or weird | |
| algorithms. | |
| # Accepting changes | |
| I am not an expert programmer, I don't often write code, and when I do, | |
| it's for my own benefit. Opening our work to other implies making it | |
| accessible to outsiders, accepting changes and explaining choices. | |
| Many times I reviewed submitted code and replied it wasn't fine, and | |
| while it compiles and apply correctly, it's not the right way to do, | |
| please rework this in some way to make it better or discard it, but it | |
| won't get into the repository. It's not always easy, people can submit | |
| code I don't understand sometimes, I still have to review it thoroughly | |
| because I can't accept everything sent. | |
| In some way, once people get involved into my projects, they get | |
| denatured because they receive thoughts from other, their ideas, their | |
| logic, their needs. It's wonderful and scary at the same time. When I | |
| publish code, I never expect it to be useful for someone and even less | |
| that I could receive new features by emails from strangers. | |
| Be prepared for this is important when you start a project and that you | |
| make it open source. I could refuse everything but then I would cut | |
| myself from a potential community around my own code, that would be a | |
| shame. | |
| # Responsibility | |
| This part is not related to my projects (or at least not in this | |
| situation) but this is a debate I often think about when reading dramas | |
| in open source: is an open source author responsible toward the users? | |
| One way to reply this is that if you publish your content online and | |
| accept contributions, this mean you care about users (which then | |
| contribute back), but where to draw the limit of what is acceptable? If | |
| someone writes an awesome program for themselves and gather a community | |
| around it, and then choose to make breaking changes or remove important | |
| features, what then? The users are free to fork, the author is free to | |
| to whatever they want. | |
| There are no clear responsibility binding contributors and end users, I | |
| hope most of the time, contributors think about the end users, but with | |
| different philosophies in play sometimes we can end in dilemma between | |
| the two groups. | |
| # Epilogue | |
| I am very happy to publish open source code and to have contributors, | |
| coordinate people, goals and features is not something I expected :) | |
| Please, be cautious with this writing, I only had to face this | |
| situation with a couple of contributors, I can't imagine how | |
| complicated it can become at a bigger scale! |