Here is a list of software development rules that I have developed for myself over the years of practice.
1. Start with small things, then expand them
As when creating something new, and when adding functionality to ready-made systems, I always start with a very simple version that does almost nothing of the necessary functions.
Then I expand this solution step by step until it becomes what was originally stated. I have never managed to paint in plan all the details already at the start.
Instead, I better and better understand what you need to get during the development process and use this knowledge in the project.
I like these words of John Gall: “Any fairly complex system that works, somehow evolved from a simple system that worked in one way or another”.
2. Change something one at a time
If during development a program starts to fail on some test or some function stops working, it is much easier to find the reason if you changed the code in only one place.
In other words, it is better to use small iterations than trying to do everything all at once. Do one thing, make sure it works, repeat.
This also applies at the level of commits to the version control system. If you need to refactor, then before adding any new feature, first commit the changes for refactoring, and only then (in a separate commit) add this feature.
3. Add logging and error handling in the early stages
When I set about developing a new system, one of the first things I do is add logging and error handling. Both of these things are beneficial from the very beginning of the project.
In any program that has more than a couple dozen lines of code, you need to know what happens during execution. And especially this data is important when something doesn’t work as planned.
Roughly the same thing with error handling – since exceptions can still not be avoided, and they will be thrown throughout the life of the project, why not start processing them systematically at the very beginning?
4. Each new line of code must be executed at least once
Before you finish work on any functionality, you need to test it. After all, otherwise how do you understand that she is doing exactly what she should? Often the best option for this is automatic tests, although there are other options.
In general, it doesn’t matter how, but the main thing is that every line of code you write should get control. It can sometimes be difficult to reproduce the necessary conditions to go into all branches of the code…
Continue reading the article and learn more about software development on Life Is An Episode website.