Page 47 - GCN, June/July 2018
P. 47

                                  Viewpoint
How technical debt is ruining
government software, and what we
can do about it
 The government provides services that affect people’s lives in dramatic ways, and every hack or shortcut puts those people at risk
BY SHAUN VERCH
Technical debt is all the cruft, hacks and shortcuts that get baked into a piece of software over time, making it insecure, unreliable and hard to
maintain.
To give a nontechnical analogy, imagine a concise,
well-written policy. Everyone understands it and agrees that it’s good. Then things change, and the people who wrote it must quickly add an update before a deadline. They don’t have time to revise the original document, so they add an addendum. Then as the policy catches on, other organizations add their own input and recommendations, some of which conflict.
Finally, some brave souls try to simplify the
whole thing, but they also have a deadline and end up writing yet another incomplete or conflicting recommendation. The result is a convoluted policy no one understands. By this point, it takes a deliberate, concerted effort by experts to carefully untangle all the threads and return the effort to coherence.
The same thing happens with software. The first version of a program might look fine, but then to add a new feature, someone skips documenting the code. The next person who reads it decides that because the code has no documentation, he will write his own version instead of reusing the original code. The next member of the team realizes there are no tests but decides because there are so many slightly different versions of the same code, it’s not worth the effort
to add tests to all of it. After all, these people have
GCN JUNE/JULY 2018 • GCN.COM 47




















































































   45   46   47   48   49