See Also: Home Links Personal Site Blogroll  FriendFeed CV

Topic Image

Agile Programming

Some development principles of lightweight or agile development methodologies such as 'Extreme programming', which set them apart from more conventional waterfall type approaches. None of these are firm rules. They are guidelines and are encouraged or adopted where appropriate:

  • less up-front design, more evolution
  • less formal documentation, more face-face interaction
  • collaboration - client, user and developer
  • focus on immediate feature requirements, not future ones
  • developing user stories
  • customer decides which features are built
  • compressed cycles, early first release
  • embrace dynamic requirements
  • unit testing, automated
  • pair-programming, collective ownership
  • peer review, feedback
  • just-in-time development
  • lower cost of change to ease refactoring
  • find the courage to refactor where required
  • simplicity - maximizing the amount of work not done
  • if its not needed, dont code it (YAGNI)
  • reversibility, and use of code control/versioning system
  • continuous design, improvement and integration

Useful Reads

Each of the following articles provide useful insight, differing opinions and perspectives, and some real world experience of use the Agile approach. All are worth taking the time to read.

Five Lessons You Should Learn from Extreme Programming

"Extreme Programming (XP) is yet another popular idea gaining press. It adapts several of the best ideas from the past decades of software development. Whether or not you adopt XP, it's worth considering what XP teaches. In no particular order, here are five lessons you should learn from Extreme Programming." Chromatic

Is Design Dead

"For many that come briefly into contact with Extreme Programming, it seems that XP calls for the death of software design. Not just is much design activity ridiculed as "Big Up Front Design", but such design techniques as the UML, flexible frameworks, and even patterns are de-emphasized or downright ignored. In fact XP involves a lot of design, but does it in a different way than established software processes." Martin Fowler

Questioning Extreme Programming

"David Kennedy writes with the following review of Pete Mc Breen's new Addison-Wesley title, Questioning Extreme Programming. It's one of the few books which casts a questioning look at the buzzwords and concepts of Extreme programming; read on to see how well XP fares under Mc Breen's examination" Slashdot Article

(some) Champions of Agile Methodologies

Be warned!! - following a link off to any one of the following individual champion websites may cause your brain to explode.

Other Organisations and Resources


See Also: Web Development | Notes Index