The Peter principle of software development
The original Peter principle states that people will get promoted up to a position for which they are incompetent. Interestingly enough, I have observed a similar principle when it comes to software:
Any software that runs stable and efficiently will get new features added until it doesn’t perform any longer.
As long as software “just works” in the background, the effort for achieving this will not be valued for its true worth. Because the name does not come up on a regular base in incidents and during escalations, people get used to the software working “magically”. With seemingly no investment necessary, its complexity level gets rated as “trivial” without even taking a second glimpse at it, and people even start to doubt its value (“how hard can it be?”).
Knowledge sharing, training and documentation are neglected, until one day all of the developers who know their way around have left and finally the software stops working as expected. Then the trouble is big. How could this happen? Well, I explained it above, and I have seen the same happening outside of the software world with volunteer services. If you do not talk about your work on a regular base and mention what time and energy it takes you, people take it for granted or even forget that you are doing it behind the scenes.
How to avoid this: Spread the news about new features added. Keep at least three persons in the company that know how the software works. Include performance tests in your software development cycle and compare past to present results.
