Week 9

Lessons from The Cathedral and The Bazaar

“Perfection (in design) is achieved not when there is nothing more to add, but rather when there is nothing more to take away.”

This quote highlights the importance in simplicity and purpose in a codebase. When working with software, there is no need to add fluff. If only the necessary parts of the code remain intact, it becomes much simpler to navigate and to extend. Future developers will not have to question anything’s purpose and will easily be able to add new features.

“Often, the most striking and innovative solutions come from realizing that your concept of the problem was wrong.”

If you have a poor understanding of a problem, there will always be a ceiling for your implementation. Regardless of how brilliant your hacks and solutions are to build on that implementation, they will always be bottlenecked by your original approach. The best solutions will always come from a good understanding of the problem and good knowledge of what needs to be done. Sometimes a completely different approach is needed, rather than improving on an old version.

Personal Progress Towards Team Project

This week, I submitted a pull request regarding a UI issue that needed fixing in Caprine. The issue was regarding the resizing of GIFs to fit the screen. When users sent GIFs that were too large, they would extend past the screen and would not be viewable unless the user made the screen larger. There was no scroll option either to let the user see the whole clip. I made a change that modified the dimensions of the GIF based on the window size and submitted the changes.

Throughout this process, I realized that I submitted a lot of unnecessary commits that weren’t really relevant to the pull request I made. While this has no tangible effect on the repository, it does create a mess in the history if I add in useless commits. I spoke to Joanna during class and eventually learned how to squash commits. I also made the mistake of working off the master branch in our forked team repository. These are two valuable things that I need to keep in mind for the rest of my contributions (as well as my software engineering career!)

Next week I hope I have this PR merged and hopefully work on some new issues.

Written before or on April 14, 2019