Ivar Jacobsen has an interesting piece in Dr Dobbs - Why We Need a Theory for Software Engineering.
I’d have thought that 40 years after the initial NATO conferences on Software Engineering, someone would already have the theory well developed by now. Setting aside my bias for a while, the article has some really good questions
Do we really know how to develop great software? The answer for many people is clearly yes. But do we know how to communicate and continuously improve the way that we develop software? Do we really understand the best way to communicate and share our knowledge?
Do we stand on quicksand or the shoulders of giants?
Have you ever taken the time to investigate a new method or practice only to find that it is just the re-branding and regurgitation of ideas that you have seen many times before?
Have you ever got frustrated that every new idea about software development seems to be at the expense and in aggressive competition with everything that has gone before?
Does it seem to you that following that latest software development trend has become more important than producing great software?
I sense a certain amount of frustration in these questions, because over the last 40+ years it sometimes seems that little progress has been made in our ability to reliably develop software. Admittedly my answer to these questions does not include the answer “Software Engineering”, but other than that I find I share the sentiment expressed in the article…
It is clear that we need to stop chasing after fads and easy answers that forever disappoint, and that we need to do it without discouraging innovation and the generation of new ideas. People need to stop constantly re-packaging and re-branding old ideas just for the sake of it. Instead they should focus on helping people understand how to build great software.