Bindings, Platforms, and Innovation
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
Tracking change and innovation in the enterprise software development community
Posted by Geoffrey Wiseman on Sep 05, 2007 07:15 AM
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.
Agile Development: A Manager's Roadmap for Success
5 Ways to Ensure Application Performance
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.
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.
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.
This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.
This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.
This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.
After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.
IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.
Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.
5 comments
Watch Thread Reply