CodeBetter.Com
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @CodeBetter

Jeremy D. Miller -- The Shade Tree Developer

Under the hood and working with .Net, TDD, Software Design, and Agile Stuff

Agile is more disciplined than Waterfal, so sayeth Jason Yip (and me)

Jason Yip has been one of my favorite bloggers for a long time.  This morning I caught a post from Jason Yip called More thinking about "Agile" vs "Waterfall."  He echoed something that I've thought ever since I moved over from a Waterfall shop to Agile shops about five years ago. 

Be careful about saying that Waterfall is more disciplined. The waterfall model is simple and structured but the "discipline" is in following prescribed steps as opposed to "discipline" in thinking. The second kind of discipline is by far the more important.

Agile development, assuming that you're doing it competently, is far more disciplined in the small, day to day activities than we were in my old waterfall shop and all the waterfall shops that I've consulted in.  In the waterfall, we had a lot of one time quality gate processes and intermediate documents to deliver, but very little useful guidance on how to perform the actual development work (requirements, development, testing).  An Agile process, and I'm thinking about XP in specific here rather than the typical watered down Scrum, has a lot of impact on how you write code (Test Driven Development, simple design, YAGNI, pair programming, Continuous Integration), requirements (user stories, iteration planning, acceptance tests), and testing.  I don't go to meetings very often, and I rarely produce documentation beyond Wiki pages, but my daily work is far more disciplined than it was in my previous life in a formal Waterfall project.

Waterfall discipline is the external discipline of intermediate deliverables and process ceremony.  Agile discipline has to be internalized by the members of the team and realized through their behavior and daily activities.  For better or worse, Agile has far more impact on the way you work than traditionalist waterfall processes.

The best of Agile is when you throw away process ceremony that adds little or no value, and concentrate really hard on the things that do add quality and productivity to your project.  Of course there's no cookie cutter process plan to follow because "what adds value" is a bit different from project team to project team, but if it was easy we wouldn't make the big bucks.



Comments

Jason Yip said:

Thanks for reading.

This makes me think about how this is described in Lean circles.  There is a difference in rigour in how work is described and rigour in how work is actually done when you go out there and actually take a look.

The typical dysfunction I've seen is heavy plan-driven bureaucracy couple with actual work that is ad-hoc and undisciplined.

# September 28, 2008 4:28 PM

Jonathon Golden said:

Bingo!

I made a similar point on Scott Amblers Agile Modeling board a while ago: tech.groups.yahoo.com/.../6472

# September 28, 2008 11:19 PM

Dew Drop – September 29, 2008 | Alvin Ashcraft's Morning Dew said:

Pingback from  Dew Drop – September 29, 2008 | Alvin Ashcraft's Morning Dew

# September 29, 2008 8:21 AM

Randolpho said:

I think you had the chance to hit on a very fundamental point but missed it wildly by turning your post into my way is better than your way.

Agile is not more disciplined than Waterfall. Waterfall is not more disciplined than Agile. One methodology does not rule them all.

The methodology is not the issue at all, really. Both work, and both--done by the proper people--work well.

No, the issue is not the methodology, it's the practitioners of the methodology. It's the people doing the work, the people designing the system and the people implementing it. Far, far too many lack the discipline to keep their eyes on the big picture even as they deal with the details; far too many can't see the forest for the trees to drop a soundbite.

That's the real reason software fails.

# September 29, 2008 11:21 AM

JohnOpincar said:

Randolpho, you're overlooking that fact that Jeremy is talking about the same person (himself) in both cases.  What fundamental point was missed -- that good people do a better job than bad people regardless of methodology?  I think we can all agree to that.  But it's not a very interesting blog topic, IMO.  

# September 30, 2008 12:59 PM

chen li said:

I don't think process itself has anything to do with discipline, developers involved in the process do.

And what's Waterfall? Did you know in Dr. Winston Royce's paper, which is considered the original defination of Waterfall, actually showed an iterative process?

# October 1, 2008 10:50 AM

Brian said:

This assumes the shop is capable and mature enough to handle a Agile development style.

I'm not disagreeing with you, but keep in mind, there's not only developer discipline, but discipline of the managers, the project manager, the testers, and most importantly the business.   It's not a one man show.

# October 6, 2008 9:13 PM

Leave a Comment

(required)  
(optional)
(required)  

Enter the numbers above:
Add

About Jeremy D. Miller

Jeremy began his IT career writing "Shadow IT" applications to automate his engineering documentation, then wandered into software development because it looked like more fun. Jeremy previously worked as a systems architect building mission critical supply chain software for a Fortune 100 company and learned agile development practices as a .Net consultant at ThoughtWorks, one of the pioneers of agile development. Jeremy is the author of the open source StructureMap (http://structuremap.sourceforge.net) tool for Dependency Injection with .Net and the forthcoming StoryTeller (http://storyteller.tigris.org) tool for supercharged FIT testing in .Net. Jeremy's thoughts on just about everything software related can be found on his weblog "The Shade Tree Developer" at http://codebetter.com/blogs/jeremy.miller, part of the popular CodeBetter site. Jeremy is a Microsoft MVP for C#. Check out Devlicio.us!

Our Sponsors

Proudly Partnered With


This Blog

Syndication

News

All opinions expressed here constitute my (Jeremy D. Miller's) personal opinion, and do not necessarily represent the opinion of any other organization or person, including (but not limited to) my fellow employees, my employer, its clients or their agents.

About Me

"Best Of" Compendium

StructureMap (Dependency Injection for .Net)

StoryTeller (Supercharged Fit)

Build your own Cab

TestDriven

MVP