This post is about one of my favorite principles, KISS (Keep It Stupid Simple, which I think is a better variation of the classic Keep It Simple, Stupid), that truly applies to software development. After 25 years of developing software, I have concluded that of a given software artifact, like an app, about 20% is spent on initial implementation and 80% is spent on maintenance.
In most cases the maintenance is done by someone else than the original developer, and therefore each programmer should consider the fact that, on average, the code will be read and changed four times the amount than what it took to write it. The conclusion is that you as a developer should write the code to be easily read. This is what solid coding guidelines are all about.
But it doesn’t stop with writing solid code. A lot of that maintenance time is actually spent on trying to understand the overall structure of the app. Where is a certain functionality located? What view is it that implements a certain screen in the app? It actually comes back to something really simple -order. Keeping all parts of the app according to a simple and understandable structure is as important as using a logical way of naming things. Equally important is probably that each part of the structure has a specific responsibility. This is what architecture guidelines are all about.
Therefore, the time invested during the initial implementation in creating something that can be easily understood and changed with an expected result will save a lot of time during maintenance. So in the long term, return on investment for software quality in development is obvious.
But there are obvious advantages already during implementation. A well-structured code will automatically prevent mistakes that lead to bugs, and it will also make debugging considerably easier. In projects with more than one developer, the same effects that are achieved in maintenance are realized already during the initial implementation.
About Christian Forsberg
Chris Forsberg is Sogeti's Global Chief Architect, and his current passion is serverless architectures with microservices, cognitive solutions like chatbots, automation, and beautiful delivery. He has a long background as an architect of digital solutions for many clients on all the major platforms, and love to experiment with new technology. For example, he has put together a YouTube video series on how to get started with the Internet of Things, and has been involved in the implementation of more than 100 apps on iOS and Android. With a global network of 600 architects, he is devoted to creating intellectual property, and one example is Digitecture, a reference architecture for digital platforms. Other examples are Appitecture®, a start package for app projects, and Appcademy®, a certification program for app developers. Chris has received several technology leadership awards including Top 100 Developers (Sweden), and ten years awarded Most Valuable Professional (MVP) by Microsoft. He was an official writer for Microsoft Developer Network (MSDN) for many years and has also co-authored a book on mobile development in 2001.
More on Christian Forsberg.