Software engineering

  • Saturday, Jan 2, 2021

Hi. I am Tama McGlinn, a software engineer based in Friesland, the Netherlands. I am passionate about (teaching) good programming practice. To me, good software engineering rests on three pillars: Version control, an Agile workflow, and Type safety.


To be Agile means to come to a first working version quickly, and to iterate on your design in front of users, rather than developing a lot in isolation. This can obviously save you a lot of time when your first design doesn’t turn out to work perfectly (which will be most of the time).


To work efficiently in a team, you will need to understand how to make git work for you; git is a wonderful tool which can tell you when your work has conflicted with others, while otherwise seamlessly merging unrelated changes. It can also help you to find the source of bugs, using bisect. Git should tie in to your agile process, so that there is always a stable version ready for release, a code-reviewed and ready for final qualification testing version on develop, and separate branches for each feature under development. You should set up your repositories so that builds are consistent and reproducible; if you need more than one, that means tying them together using submodules, subtrees, or a full blown release strategy for the various components.

Strong typing

In Ada, programmers are treated to a wonderful typing system which forces the compiler to find many bugs prior to testing, such as those relating to the valid ranges of variables. But regardless of which programming language you use, you should ensure that as many mistakes as possible are caught by some form of static analysis.

comments powered by Disqus