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 Geoffrey Wiseman on Sep 05, 2007
Although agilists focus much of their energy on helping their agile projects succeed, it is helpful to periodically stop and consider what causes some agile projects and agile adoptions to fail. Armed with this knowledge, perhaps one can avoid these same pitfalls.
Jean Tabaka lists 11 Ways Agile Adoptions Fail
Agile methodologies have been taking some heat for when they appear to have failed to deliver expected benefits to an organization. In my travels as an agile coach, what I have found to be the case is that agile practices don't fail, rather the variations on agile adoption fail. Here are my top eleven failure modes. See which ones look painfully familiar to you
She lists her top 11, and describes each:
- Ineffective use of the retrospective
- Inability to get everyone in the planning meetings
- Failure to pay attention to the infrastructure required
- Bad ScrumMasters
- Product Owner is Consistently Unavailable or There are Too Many Owners Who Disagree
- Reverting to Form
- Obtaining Only "Checkbook Commitments" from Executive Management
- Teams Lacking Authority and Decision-Making Ability
- Not Having an Onsite Evangelist for Remote Locations
- A Culture that Does Not Support Learning
- Denial is Embraced Instead of the Brutal Truth
Are some (or all of these) familiar from your experiences with agile software development? Would you add to this list?
Tom Hume describes the Why Agile Teams Fail event, summarizing the message as, "if it doesn't work, you aren't doing it right, or your people aren't any cop". QA Strategies itemizes some challenges in agile adoption, from fear of micromanagement to overzealous teams. Kevin Brady thinks agile methods don't account for human psychology:
- People will always put their own interests ahead of the interests of the group.
- People are self-interested
- Commercial production decisions are based on rational expectations.
- Karl Popper's "First law of collective action". You can never get more than 5 people to agree on anything.
Eric D. Brown agrees that it's about the people, goes a different direction: "It isn't the process or methodology used... it is the people involved that will help a project succeed. Of course, processes help, but without good people and an organization that helps those people succeed, any project management methodology will most likely fail."
For more information, listen to the podcast interview with Jean Tabaka or tell us at InfoQ's agile community what you think causes agile adoptions to fail, and how you deal these issues.
Transforming Software Delivery: An IBM Rational Case Study
Agile Practices to Improve Project Management Organization (PMO) Effectiveness
18 agile and lean practices for effective software development governance
In today’s hyper-competitive world, later may be too late to adopt Agile development and this Roadmap for Success will help you get started. Download "Agile Development: A Manager's Roadmap for Success" now!
In my experience these things are exactly what is hard about agile adoption. I haven't seen agile adoption fail yet, but it does take longer because of these impediments. It's a great list to use when evaluating the progress I'm making in agile adoption!
Actually, I've seen many of these same pain points outside of an Agile environment; many of these could be "What causes software projects to fail?" candidates, even leaving Agile aside.
I will say that the first reason why adopting something fails is when organizations adopt it because it is the "trend" ;o)
As long as we're on first reasons - I'd have to say the #1 reason for success or failure I've come across is (lack of) individual responsibility. The 'do what it takes' attitude that highly effective teams have.
Of course, you could say (and would be right), that personal responsibility is the #1 reason for any effective team - Agile or not.
<articlePlug> Read more about it in Personal Agility for Potent Agile Adoption </articlePlug>
These items would cause the failure of a project regardless of any methodology, I can't see why they should be related to Agile. If you spend time fighting with business users, there is not a customer's project owner, team members are not skilled enough and your project manager is a monkey I'd like to understand how a project could survive. I have seen projects failing because of political games and lack of communication more than for technical reasons.
I would however add to the list "stick to a clearly wrong technology". It's when you understand that you are using the wrong tool for the job but customer or your manager says "we need to use this one because we bought it". Some PM could sink a whole project because he can't tell the management that some decision must be reconsidered. This, however, is related to "individual responsibility" mentioned by Amr.
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