That's a very good question if you ask me?  Well, Mary Poppendieck brought some very good points about this at a session during the Agile 2008 conference.

She looked at her bookshelf and browse her old software books to understand what we've been doing in software engineering for the past 40 years.  Interestingly enough, some things that used to be popular (and are coming back) used to exist in the 60s and 70s.  For example:

  • Continuous Integration
  • Designed-in Quality
  • Refactoring
  • Information Hiding
  • Respect for Complexity
  • Skilled Technical Leaders
  • Learnings Cycles
  • No seperation of design from implementation

These techniques are no silver bullets but they seem to have stood the test of time.  Could these techniques be defining software engineering after all those years?

You can get Mary's presentation on her website.