Collaboration: At the Extremities of Extreme
Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Mike Bria on Oct 28, 2009
There has been plenty of debate on what skills a developer needs, or what practices an organization must adopt for agile to be successful. But while undeniably important, is this really what's at the heart of agile success? Mark Schumann suggests that agile's "one essential ingredient" is not ground-level agile technique, but rather is the agile mindset within management ranks.
Schumman introduces his message by highlighting what's really behind the agile practices of pairing, TDD, and stand-ups:
Pairing is important, but it’s more important that you’re happy to be corrected a couple dozen times a day. Test-driven development is useful, but it’s more useful to imagine a hundred ways something can go wrong. Stand-up meetings can be effective, but the trust in your colleagues that frees you to do your own thing makes them really effective.
He then takes this "correction, imagination, and trust" trifecta and pulls it up a level, stating how the true essential component is that they occur not only in the teams, but also at the management level:
To wear out a cliché, Agile is really an attitude or a mindset. And I’m afraid it has to start at the top.
I don’t know if there’s a one-word name for it, but there has to be an attitude in middle-to-senior management that they don’t know everything, that some things aren’t amenable to control, that surprise is something that should be expected. You have to trust your teams, even when they don’t deliver the results you expect. You have to imagine more than one possible outcome. You have to accept correction of your first impressions, gracefully and with ease.
Schummann completes this thought by actually finding the missing word for this, stating that "successful agile efforts begin with a culture of humility".
He goes on to summarize his point regarding humility as Agile's "one essential ingredient", stating what it means to manage with trust, imagination, and acceptance of correction:
Trust means you have to give up Control. A lot of it.
Imagination means you will have less Certainty.
Correction means you have to acknowledge that you never had Perfection to begin with.
...the organizations that do well with Agile software development – or any other kind of Agile work for that matter – are the ones that can cope with losing Control, Certainty, and the assurance of Perfection.
Take a moment to read Schumman's post for the full message, and an entertaining Dilbert reference.
Transforming Software Delivery: An IBM Rational Case Study
Agility at scale, become as agile as you can be
Maximize your business-responsiveness with Mingle. Provide your global development team a shared space that adapts to the way they work.
Mark Schumann's post definitely stands out in summing the essential ingredient. Guess it was Weinberg who came up with 'egoless programming' and perhaps Robert Glass mentioned how can programmers be egoless when we don't expect managers to be egoless. Though agile is mostly grassroot level stuff, a lot has to be done top-down in the organization to really make it grass root.
/suba (subabo.wordpress.com)
The idea of humility being essential is one that I have to let stew for a while before agreeing or disagreeing - it feels right.....
The idea of ONE essential ingredient rubs me the wrong way. That means it is necessary AND sufficient, which I don't buy. There are many essential ingredients, learning is one, the ability to communicate well is another. If you are humble but don't learn effectively, good luck ;)
Personally, totally agree. If I had to guess, I'd think Mark would also agree. Evidence might be that within the post his real punch line (in mu view) is this: "successful agile efforts begin with a culture of humility".
So, sounds like what he's actually saying (despite the heading) is that it's *a* fundamental ingredient.
You don't have to guess anymore. :-)
Yes, Mike, I probably overstated the title a little. Although I could make the argument that arrogance (or whatever you consider the antonym of humility) can make it very hard to learn, make corrections, or fully listen to others.
Thanks so much for the link. I appreciate this conversation!
Oh, there's at least one other essential ingredient. Courage.
Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.
Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).
Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.
Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.
Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.
John Davies examines Visa’s architecture and shows how enterprises have architected complex integrations incorporating Hadoop, memcached, Ruby on Rails, and others to deliver innovative solutions.
5 comments
Watch Thread Reply