This post originated from an RSS feed registered with Agile Buzz
by Laurent Bossavit.
Original Post: Clean code isn't my job
Feed Title: Incipient(thoughts)
Feed URL: http://bossavit.com/thoughts/index.rdf
Feed Description: You're in a maze of twisty little decisions, all alike. You're in a maze of twisty little decisions, all different.
I had an interesting conversation over a French-language programming newsgroup the other day. This person was inquiring about "Edit and Continue", tool support which would let him do simple, one-line changes to his C/C++ system from within a debugger session, and have the new code execute without needing to exit the program, recompile, rebuild, and start his session all over again.
My suggestion was to write small test programs to test bits of the program in isolation, which would obviate the need for debugger sessions as well as lengthy recompile/rebuild cycles. But, said my interlocutor, the programs I work on are "plugins" which fit within a larger architecture; I have to load the whole thing before I can test my own code. Even better, I replied. There should be a clean and well-defined interface between plugins and core, which will assist you in writing drivers and stubs enabling the above strategy. No, he told me, the "plugin architecture" mostly exists on paper. The program is actually a mess of tightly coupled spaghetti code. At which point I suggested that maybe that should be remedied.
Now, and this is where this becomes interesting, my interlocutor said in any case his job wasn't programming. He is a PhD student, working on a thesis in geology, which just happens to depend on that system somehow. His job isn't to improve the code, nor does he have any say in how the code is developed; he has to take it as he found it. He said, and I quote (modulo translation) verbatim: "Me just PhD student, me do whatever thesis advisor says."
I wonder, in how many research labs around the world, in how many areas of science, is this scene being played out right now ? Is that something which has changed - i.e., is that a trend - and if so, is that cause for concern ?