Risk Management

Software Documentation Management – The missing piece?


After working for more than ten years in several positions particularly within Software Development Life Cycle (SDLC), I come to this observation – software documentation management is lacking in most companies. Thus, it hurts the company greatly at the end. One of the most important benefits of having sufficient, quality and manageable software documentation is to minimize RISK. Let me explain. From the early stages until the end of the SDLC, some documents supposed to be produced.

Here is a classic scenario as illustration purpose.

A picture paints a thousand words

Imagine, which is a faster way for Wong to explain Mutu’s modules or for Sally to learn it? Reading 20, 000 lines of source code or looking at a some software documentation diagrams? Worst still these 20, 000 lines of ‘messy’ (i.e. with redundant similar functions or libraries) source code. Now wonder the employee turn over rate is high 🙂

Another beneficial reason of having proper software documentation like change request form and release notes document is to manage risk. I have seen some fire-fighting moments whereby the production system has so many bugs and unstable. Issues were escalated from one level to another level until the company had to hire a team of ‘specialist’ from oversea to cope and control the ‘fire’. So much money was spent.

At the end, the company decided to take so serious the importance of having proper process. Eventually new role was created just to focus on managing quality, process and risk and one way is by adopting Capability Maturity Model Integration (CMMI) Level 3 process model. After some months of learning CMMI, the ‘Process/Quality Manager’ then trained all roles which involve in SDLC, be it project manager, team leader, software engineer, software tester or application support engineer. It took a while to learn it. Initially, there were some complaints because of the hassle it caused. But, as time goes by, those process and template documents were refined to suit the need. Software engineers took longer time to release a fixes but what fixes released to the production system were much more stable than before. This is because the fixes were released and thoroughly tested by the software tester first before approve to be released to production environment.