This morning I listened to Michael Feathers’s conference “Seven Blind Alleys in Software Design” at the Norwegian Developers Conference 2009 .

The summary of the talk, according to the own author, is the following: “Software development is not very old, but it is old enough for us to have seen some of the same unproductive ideas repeat themselves. These ideas are “blind alleys” which seduce each new generation of developers, managers, and researchers. In this session, Michael Feathers will describe these ideas and talk about how we might put them completely to rest”.

These seven blind alleys are:

  • Programming with pictures: You can’t program everything in pictures, there are always corner cases
  • Metaprogramming: Metaprogramming does not solve everything. Cool but dangerous.
  • The ultimate abstraction: You’ll never find it
  • The perfect taxonomy: There is not a perfect taxonomy
  • Modeling the real world: We do not model the world in software.
  • Code generation: it is never complete
  • Natural Language: we’ll never program in natural language

I respect the work of Michael Feathers, but I found this talk too pessimistic. In short, it seems to say that many of the innovations done in software development in the last 20 years are just crap. UML and modeling? bad; Reflection? too much flexibility; Configuration files? Impossible to test; Abstraction? lost cause; Natural Language and DSLs? Waste of time; Templates and code-generators? Bad quality of code.

The readers of this blog can correctly guess that I disagree with most of his statements (but I’m NOT going TO repeat my usual counterarguments, don’t worry). The only one I completely agree with is the Modeling the real world alley. As he says, it is good if the concepts and elements used in the code resemble those in the real world but this should not be a goal per se when developing we must focus on solving the engineering problem not on faithfully modeling the real domain.

Read as well this blog post summarizing the main ideas of the talk can be found here

Want to build better software faster?

Want to build better software faster?

Read about the latest trends on software modeling and low-code development

You have Successfully Subscribed!

Pin It on Pinterest

Share This