There are two sessions (one workshop and one panel discussion) in the recent OOPSLA 2007 on the topic of No Silver Bullet, an article written by Fred Brooks in 1987 in which he presented his view on the difficulty of improving productivity on software development.
The panel session invited a host of famous people from both academic and industrial sectors including Fred Brooks himself and attracted a big audience. It clearly shows the interest in the software world after twenty years to evaluate how we have been progressing. Are we closer in finding the magic silver bullet to slay the werewolf? What have we learnt? With Martin Fowler playing the role of the werewolf, the discussions became very lively. Nowadays, we are building more complex systems and we seem to have made progress. But I can sense that the developer communities are not very content with what have been produced, namely, the code. One comment from the audience (Brian Foote) sounded very humorous: “Somehow, the world is working — by building appalling code. Let’s make people more effective at creating bad code.” Dave Parnas, one of the early pioneers who developed the module design principles, had his own way of measuring progress. He said, “We are making progress when we make simpler system.” See the transcript.
The workshop made a more thorough retrospective on the Essence and Accidents, which are the two aspects of complexity in software engineering proposed by Fred Brooks’ article. It covered six main issues:
- Issue 1: Reflection on Brooks’ Promising Attacks
- Issue 2: What are the ways to deal with complexity?
- Issue 3: Candidates for “what is the werewolf?”
- Issue 4: List of Potential Silver Bullets
- Issue 5: Essential versus Accidental Complexity
- Issue 6: Some neglected opportunities for significant improvements
It is a very good report