97 Things Every Project Manager Should Know

(Rick Simeone) #1

(^84) 97 Things Every Project Manager Should Know


The Fallacy of Perfect Execution


David Wood
Fredericksburg, Virginia, U.S.


IF yoU ThInK yoU CAn CREATE FlAWlESS CoDE if you work hard enough,
don’t be embarrassed. Many others have thought so, too. Unfortunately, it is
not possible. Even in theory.


Arbitrary logic is hard to verify in the general case and hard, or impossible,
to fully test. Drawing an analogy to the bricks and beams used in other
construction-related activities, three researchers in the UK recently sug-
gested that software is hard to verify because “there are no good, predictable
building blocks. The elements out of which programs are constructed: state-
ments, procedures, or objects, cannot be composed in a predictable fashion.”


The building blocks of software don’t snap together like Legos. They can be
put together in so many ways that it is impossible to determine all of the com-
binations. That may be a decent working definition of Turing completeness.*
Software is, in a word, complicated.


Tracing and verifying arbitrary logic in code may sound esoteric. How about
the simpler job of tracing programmer intent? Surely we can talk to pro-
grammers and ask them what they meant. Unfortunately, programmer intent
is generally lost within a few days of writing a code block, especially when
requirements change or are inconsistently documented.


Programmers also change jobs, leaving undocumented or wrongly docu-
mented code behind. Source code rapidly becomes the last and only forensic
clue to programmer intent. Alas, intent can only be imperfectly ascertained
from clues like variable names, logic flow, and the occasional comment.



  • Turing completeness: Named after Alan Turing, this is the concept that every design for a computing
    device could be emulated by a universal machine. True Turing-complete machines are physically
    impossible, due to the unlimited storage they would require. However, Turing completeness may be
    attributed to machines that would be universal if they had unlimited storage.

Free download pdf