Diseases in Code (rev. 5)

- Synopsis -

What is Code Disease?

A code disease is a pervasive property of a code base that harms or destroys basic ease of software development and maintenance. Often propagating problems up to the business execution and strategic levels, code diseases are costly and risk-inducing. As its strong name indicates, a code disease is very serious and potentially threatening, with its first victims the morale and sanity of the developers who live with it daily, and its final victims the customers who are punished for relying on your business’s affected systems.

Please find the PDF here - Diseases in Code (rev. 5)

Note that there was another thread here discussing an earlier version of the paper, but due to the heat generated by problems in the earlier version, as well as a defect in the synopsis, I decided to post in a new thread. The old thread is here - http://lambda-the-ultimate.org/node/4926

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

No examples

This reads more like an attempt to promote a new buzzword. The paper lists well-known problems, and gives them new names. That is not solving the problem.

software economics

I've been thinking about the economics of programming and languages, and there is a useful parallel here:

  • Cost A disease has observable symptoms and dangerous effects. At any point in time, an anti-pattern is costing in bug count and time spent fixing them. Over the years, SE papers have increasingly getting close to economic utility metrics, which is a Good Thing.
  • Spread Stubbing a toe is a different class of injury from a cold. Certain patterns are damaging locally while others break surrounding code, and worse, propagate through them. For example, exotic language features like continuations may scare off coders from editing a particular file, but type-level ones that propagate to all files seem much more damaging. Spread may be in terms of number of files, developers, projects, ... .

Put together, we can start evaluating the asymptotic costs of designs. That's significant.

not solving but perhaps reframing?

(to be optimistic about the use of this here page) since we've gotten nowhere with getting people to Do Good Coding, then maybe the way we talk about it is wrong? maybe instead of telling people brushing their teeth is good for them, how about showing them a film reel of horrible things dentists have to deal with when people don't? :-}