This post originated from an RSS feed registered with Agile Buzz
by James Robertson.
Original Post: StS 2003 Keynote - Scott Ambler
Feed Title: Cincom Smalltalk Blog - Smalltalk with Rants
Feed URL: http://www.cincomsmalltalk.com/rssBlog/rssBlogView.xml
Feed Description: James Robertson comments on Cincom Smalltalk, the Smalltalk development community, and IT trends and issues in general.
The traditional view of Agile. Funny tidbit - this is "Baghdad Bob's" view of Agile methods.
No documentation, don't model, all hacking, no design/architecture, no planning - then refactor.
Cannot produce large systems, produces unmaintainable system, does not consider enterprise systems
Key point - Design and Architecture is so important that we do it every day - as opposed to traditional development, where it happens once, in advance.
Assertion - a team together for a few months doing actual XP will produce a system faster and with fewer bugs than a Sigma 6 CMM level 5 team. Scott's extremely confident about this. Another - CMM and 6 Sigma (as implemented) are bureaucratic, process driven systems. Again, Scott shows a picture of "Baghdad Bob" with this. Standish group "Chaos Report" - failure rate is getting worse - 65% of projects fail (cancelled, or significant cost overruns).
What is Agile? It's focused on the actual development of software - as opposed to the current setup, where much of IT management has never (or not recently) built any software. Agile is people focused - on the end users and the developers both.
Individuals and Interactions
over
Processes and Tools
Working Software
over
Comprehensive Documentation
Customer Collaboration
over
Contract Negotiation
Responding to Change
over
Following a Plan
"If the lawyers are doing anything more than fetching me coffee, I'm doing something wrong"
"If we can't get the design of a living room done in one pass, what makes us think we can do it for a complex software system in one pass?
"Being able to respond to a late set of requirements can be a competitive advantage"
What Agile is not
Code and Fix
An excuse not to document
An excuse not to model
An excuse to short-change quality
An excuse to ignore enterprise concerns
Assertion - One of the reasons that outsourcing is gaining popularity - if it's going to be failing this much, it might as well be cheaper. The business community is giving up on us. A shakeout is happening - the expensive developers have already shaken out (dot com blowup). The bureaucrats will be next. Agile is trying to take back the eindustry.
Scot is now going through the various agile methods:
SCRUM: http://controlchaos.com. SCRUM can be used in conjunction with XP, since it does not define a development metaphor. SCRUM works through 30 day (N day) sprints towards a set of requirements - typically the highest priority ones. The issue - since the number of sprints are not defined up front, upfront budgets are hard - does not meet senior management's expectations
Feature Driven Development - http://www.featuredrivendevelopment.com - much like XP, features instead of XP. Does worry about a domain model up front. Modeling more explicit than XP
The Crystal Family - http://www.crystalmethodologies.org - "Process is secondary to people and communication, therefore it should be barely sufficient
"Agile Unified Process" http://www.enterpriseunifiedprocess.info - Sort of agile with RUP, because RUP speaks well to management. Interesting anecdote - Apply "Blockers" to a heavy process - people who produce the docs management wants, while the rest of the team does XP
Agile Modeling http://www.agilemodeling.com - Some modeling up front, but not a lot - need to prove the models work
Agile Data Method http://www.agiledata.org - Get the IT, operations, QA (etc) folks working together.
"All methodologies have risks - which ones are you willing to live with, based on the proclivities of your organization?"
"Why does all this stuff work?" - We focus on quality, requirements, and design every day.
"We shorten the feedback loop whenever we can, because working without feedback is incredibly dangerous" - assertion - outsourcing lengthens the feedback loop, which will end up causing large problems.
"Software Development is a Communication Game" - Alistair Cockburn
Rethinking "Sacred Cows"
Reviews are a process smell. The "heroic, genius" developer is the worst person on the project. They will eventually burn you, when they leave and the code left behind is incomprehensible
Stakeholders, not developers, should decide what documentation is needed
The vast majority of models should be discarded
The best modeling tools are simple, inclusive ones
An "IT Professional" that doesn't code is like an accountant that doesn't know how to work with spreadsheets
Observations The people associated with the Agile Alliance build software for a living - they are not academics. It's a diverse range of people with ha good level of experience. There are case studies and experience reports now. It's here to stay. Agile is now (with business people) where objects were in 1990 (adoption curve wise).
Almost all of the agile folks are or were Smalltalkers. "Choose the Red Pill"
Questions "How do we sell this to management?" - tough. Management is frustrated with the failure rates as well, but does not know how to fix it. From their perspective, this is one more fad with one more set of developers pushing it. Will likely require a pilot project after finding someone willing to take a risk on it. Likely after one or more spectacular failures. "If Agility is where objects were in 1990, then in 10 years will we see a dumbed down, broken version of it?" - Likely, yes