Stop Blaming Software Developers and Start Learning
Good agile software development teams:
- Expect mistakes.
- Encourage failure.
- Fail fast.
You’re probably thinking something like “This guy is nuts” (or perhaps something not so nice). Maybe I am, but I learn fast. Part of being agile is a willingness to take small risks. We all want our projects to succeed but face it, nothing ever goes perfectly. Mistakes happen. Accept it.
There’s a world of difference between taking small risks that may result in small mistakes versus taking big risks that could endanger an entire project. Here are a few examples:
1a) Small Risk: Committing to finishing a small set of user stories by a target date.
1b) Big Risk: Agreeing to an arbitrary corporate deadline for an entire project without understanding the details.
2a) Small Risk: Trying out a technique on the stakeholders and users before embarking on a major software change.
2b) Big Risk: Assuming that the business representatives know what they want and spending three months building it.
3a) Small Risk: Trying out a new algorithm in a test environment.
3b) Big Risk: Deploying a new algorithm into production without adequate planning or testing.
Each of the “a” items includes a small risk. If something goes wrong, minimal time is wasted. Perhaps more importantly, something will be learned. That something will help the team during the remainder of the project. There will be time to regroup and recover.
Each of the “b” items includes a big risk. If something goes wrong, the project could fail. Even if the team can regroup, the amount of time and money wasted may never be recovered.
Don’t expect perfection.
Every mistake results in a bad outcome. No one likes to make mistakes. No one wants to fail. Yet, nobody is perfect so mistakes will happen. We can take steps to minimize them but we can’t entirely avoid them. Agile development teams recognize these truths.
Some software teams spend an enormous amount of time writing project plans and conducting risk assessments. They operate on the belief that with enough planning and analysis, the risks can be mitigated and projects can succeed. While there’s some truth in that, it’s also true that such approaches are costly in terms of time.
It’s not just the additional development time. They are costly in the marketplace. The cost manifests itself in lost business, lost customers, and lost opportunities.
- “Expect mistakes” means letting people take small risks. It doesn’t mean repeating the same mistakes!
- “Encourage failure” means allowing the team to experiment and learn. It doesn’t mean failing to deliver as promised!
- “Fail fast” means testing assumptions early in the project. It doesn’t mean having the entire project go down in flames!
These can be tough concepts for larger enterprises to grasp. Many such firms have an inherent fear of failure caused by the tendency to assign blame every time something goes wrong. Stop blaming and start learning. You’ll be more successful.
Leave a comment
Intro
Recent Posts
Categories
Archives
- June 2013 (8)
- May 2013 (13)
- April 2013 (13)
- March 2013 (13)
- February 2013 (12)
- January 2013 (12)
- December 2012 (7)
- November 2012 (11)
- October 2012 (12)
- September 2012 (8)
- August 2012 (11)
- July 2012 (13)
- June 2012 (12)
- May 2012 (13)
- April 2012 (13)
- March 2012 (13)
- February 2012 (12)
- January 2012 (13)
- December 2011 (12)
- November 2011 (12)
- October 2011 (13)
- September 2011 (14)
- August 2011 (18)
- July 2011 (13)
- June 2011 (18)
- May 2011 (19)
- April 2011 (16)
- March 2011 (21)
- February 2011 (20)
- January 2011 (22)
- December 2010 (21)
- November 2010 (16)
- July 2010 (2)





