Watching a presentation on Conway's Law byThierry de Pauw I came to the sad realization that even 100% coverage will not be enough for a maintainable system.
There's this story about chess where grandmasters and newbies are put in an fMRI to see who thinks more on the problems. The naive idea being that grandmasters have a more trained brain for chess and thus can process more variations. But the experiments revealed the opposite - grandmasters considered less possibilities because their experience allowed them to disregard unpromising lines early (move queen, not H pawn etc.).
In software systems a similar situation occurs. Working on a problem a developer will consider lots of information to grok the scope of the problem - like a newbie. But once the key aspects are ascertained, logic operating on only those will be destilled, specced and implemented. It will be master-like, with little fumbling around (hopefully! :D). The extended information considered and disregarded will often not show up anywhere, except the JIRA task. Problems can arise if changing requirements necessitate re-examining this extended, previously disregarded scope. Sometimes it can pay to document the "chose to ignore" stuff.
Top comments (0)