DEV Community

Discussion on: Not Documented, Not Done

Collapse
 
tiagodenoronha profile image
Tiago de Noronha

And this is maybe the most important point: Software changes over time. It is extremely hard to keep external documents in sync with it.

This is one of the most important points. When you develop, you estimate the effort contemplating the documentation you will have to change. It's basically the same with tests:

Effort For Feature = Documentation Effort + Implementing Effort + Testing Effort

For every Effort you ignore, troubles will arouse, one way or the other :)

Collapse
 
fpuffer profile image
Frank Puffer • Edited

Good point, documentation updates need to be planned, otherwise they will probably not happen at all.

But that does not change the fact that they can cause a lot of overhead. A simple feature that is quickly implemented can require many documentation changes in multiple documents. It is far from being trivial to find all the places that need to be modified in natural language documents. Things get worse when you work in a larger team where multiple changes are implemented simultaneously.

There are approaches like ALM (Application Lifecycle Management) that promise to resolve issues like that. But so far I found all ALM systems to be hard to set up and use.

Updating tests is less difficult because a test will tell you that it needs to be updated, simply by failing - assuming that the change is implemented correctly. Unit tests are even less critical because they are closely related to the code that has been modified.