New vs. Existing Code

This isn’t news, but is worth remembering…

Peter Hallam commented on what consumes most of a developer’s time between the following:

  • Design Code
  • Write New Code
  • Understand Existing Code
  • Modify Existing Code
  • Verify Existing Code Still Works

He argues that most developers spend most of their time understanding, modifying, and verifying that existing code still works. His focus is primarily upon how this balance impacts (or should impact) editor (Visual Studio) features, but the discussion is interesting outside that context also.

Why do we hire developers based upon how well they can write some lame from-scratch sample code? My current employer did something unique in my experience: they gave me some unfamiliar buggy code and asked me to discuss what was wrong with it, discuss some possible solutions, and implement one of them.

Hello? Test driven development? How about even starting with automated unit tests, even if they’re written after the code?

Does the whole thing make the wacky world of literate programming less whacky?

What do you think?