Worse is Better, or Worse now is better than better later
Worse is Better by Richard Gabriel
The paper above is old news for many people, but in my continued search for ‘better’ ways to build ‘better’ software I only just came across this paper. In many ways this can relate to Agile methodologies in which delivering value as soon as possible is key to the success of the project. XP uses short iterations, SCRUM uses sprints, although there are some big differences in the way these two work.
The main difference, in my experience, is quality. Whereas Gabriel’s description implies building compromised software in order to be first to market and to be as portable as possible my experience of XPers is that they want very much to do the right thing.
This is where much debate springs up about what exactly we mean by ‘the simplest thing’. The simplest thing almost never means the quickest thing or the easiest thing.
To parody Gabriel’s conversation between two famous people, one from MIT and one from Berkeley…
There were two famous people, one from a London bank steeped in Prince2 consultancy and one from a project in Hemel, with a history (albeit brief) in XP. The two met one day at OOPSLA…
The Prince2 guy had been reading all about XP and was interested in how it solved the problem of getting your ass sued of when a project failed, but he couldn’t find any documentation standards and processes for XP that would mitigate that risk.
The Hemel guy replied that the XP community was aware of the potential problem, but that their solution was to ensure that all projects succeeded but sometimes a project might make demands of the customer in order to do this. So, a correct customer in XP would have to hear these demands and take responsibility for the success of the project.
The Prince2 guy argued that this solution was wrong, the Prince2 community had spent years carefully managing their customers’ expectations to ensure the customer had no wish to be in any way involved in the project. He argued that the XP way would lead to the customer seeing just how bad everyone is at developing software and how much we had to drop the quality in order to meet the deadline.
The Hemel guy said that the XP solution was right. The customer was asking for a bespoke solution and in any other line of bespoke craftsmanship, hand-built cars, architect designed houses or designer clothes, the customer was intimately involved in the process from inception right through to completion.
The Prince2 guy then muttered that sometimes it takes a tough man to make a tender chicken, but the Hemel guy didn’t understand (I’m not sure I do either).
Peter Gabriel’s discussion then goes on to explain how worse-is-better is better, but XP can be considered as taking that further. XP says worse-is-better, but only along certain axes, and only those axes the customer chooses.
The overall quality of a system is defined by its non-functional behaviour: Availability; Cost of ownership; Maintainability; Data integrity; Development cost; Extensibility; Flexibility; Functionality; Leveragability/Reuse; Operability; Performance; Portability; Compliance; Robustness; Scalability; Installability.
Within XP the customer can specify these. Perhaps a particular feature must respond witin a certain time, the performance axis. Perhaps this is specified upfront as part of the acceptance criteria for a story or perhaps the functionality of the story is implemented and the customer subsequently decides it is too slow for their needs. The customer can decide exactly how much to spend on making it faster. They can decide if they want that function to go faster or they want a different function added instead.
Worse is better - use the customer’s defintion of worse and better.
Search
Right Now (ish)
- @zbeauvais @oxfordben but what about nerd? surely that's derogatory? in reply to zbeauvais 16 mins ago
- @JeniT congratulations! great work. in reply to JeniT 1 hr ago
- iPhoto Face Detection and Recognition - MS Research had this 8 years ago, but MS couldn't get it into Vista! 2 hrs ago
- More updates...
Categories
- .Net Technical
- Blog on Blog
- commands I have issued
- Enterprise Architecture
- event
- Fiction Book Review
- Food
- Interaction Design
- Internet Social Impact
- Internet Technical
- IP Law
- Library Tech
- Music
- New Toy
- Non-Fiction Book Review
- Other Technical
- Personal
- Random Thought
- Resourcing
- Security And Privacy
- Semantic Web
- Software Business
- Software Engineering
- Talis Technical
- Uncategorized
- Working at Talis
- [grid::blogpaper]
- [grid::fatherhood]
Archive
- December 2008
- November 2008
- October 2008
- September 2008
- August 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- January 2008
- December 2007
- November 2007
- October 2007
- July 2007
- June 2007
- May 2007
- April 2007
- March 2007
- February 2007
- January 2007
- December 2006
- November 2006
- September 2006
- August 2006
- June 2006
- February 2006
- January 2006
- December 2005
- November 2005
- September 2005
- August 2005
- July 2005
- June 2005
- May 2005
- February 2005
- January 2005
- December 2004
- November 2004
- October 2004
- September 2004
- August 2004
- July 2004
- June 2004
- May 2004
- April 2004
- March 2004
- February 2004
- December 2003
- November 2003
- August 2003
- July 2003
- June 2003
- May 2003
- March 2003
- January 2003
- May 2002
- March 2002
- August 2001
- May 2001
- April 2001
- January 2001
- December 2000
- November 2000
- December 1999
- November 1999
- July 1999