Skip to main content
Enterprise Agile Planning icon with arrows

This post is from the Collabnet VersionOne blog and has not been updated since the original publish date.

Last Updated Aug 29, 2011 — Enterprise Agile Planning expert

When is it Good Enough?

Enterprise Agile Planning
I'm a woodworker. I love to work with wood, and I truly enjoy the sense of satisfaction that comes from the work I do. I think this is why the software Craftsmanship movement rings true for me. I find many of the aspects of the craft of making things out of wood to fit perfectly with the craft of creating software.  Most of these parallels are fairly obvious, yet they are still quite valuable to explore. This time, I'd like to relate a lesson that has stuck with me for years now. As with so many things, it begins with a story..... My best friend and I like to go to a woodworking show every November. Some of the most prominent names in the craft give lectures and tutorials, and we get to try out cool new tools. At one of these, a very well/known writer on  woodworking gave a lecture on  "Best Practices". He apparently had not known that he was going to be giving this lecture, and turned it into a bunch of tips and tricks. He then, about ten minutes before the end of his allotted time, stopped, took off his glasses and looked at the audience. He said "there's something else I want to talk about today. Give yourselves a break.  How many of you have spent hours on hours working on a piece of furniture, only to be upset with all of the  little mistakes along the way. You finally say you're done, and while other people are admiring your work, you only notice the one little chisel mark that you just couldn't sand out. Look, it is never going to be perfect, and you are going to frustrate yourselves if you can't accept that." do we know what is Good Enough? How do we know that this piece of software is going to be sufficient? Well, of course in the agile development world we start by saying we will have automated tests for everything. Automating those tests up front is of course a great way of driving our design and  a certain level of quality. The other piece of the puzzle though is to make sure we are not signing up for more than we can handle.  Whether we are using Lean/Kanban or Extreme Programming, we are designing our software process around making sure that we have the time to do what we want to do, without cutting corners. Far too many problems arise out of  trying to cram that last feature in, or making a compromise on a design flaw because we just don't have time to "do it right".  So between Test Driven Development and agile techniques to manage work in progress, we have a nice set of tools that will help us stay on the right side of the quality equation. But there is one more thing we need to do. We need to learn to let go of this crazy notion that if we engineer something enough, if we do enough code reviews and enough design sessions, we will be able to make perfect software.  There is no such thing.  We want to make software that works well, doesn't fail at inopportune times,  which could be as simple as while I'm trying to  write a document or as major as while I am trying to land an F/A/18 on a carrier deck, and that people want to use.  When you see that little chisel mark, ask yourself whether you need to put extra time and effort into fixing it, or is it something small that really doesn't affect anyone.  So absolutely, make it the best you possibly can, make it beautiful and functional, but remember that until it is  actually delivered to a customer, it is worthless.   Set yourself some parameters around what is Good Enough for this project.  Don't set ridiculously high standards because it sounds good, but be pragmatic. And for Heaven's sake, give yourselves a break.

More from the Blog

View more Government Cloud
Apr 12, 2022 Government Cloud receives FedRAMP Authorization through sponsorship from the United States Department of Veterans Affairs

Enterprise Agile Planning
Flagship Agility solutions can effectively scale agile deve ...
Read More
Nov 22, 2021

What are the qualities of highly effective agile teams?

Enterprise Agile Planning
A team is the core unit of productivity in an agile organization. Wher ...
Read More
Nov 15, 2021

How an open-first attitude revolutionized government tech development

Enterprise Agile Planning
Public perception of government is often that it is slow-moving, reluc ...
Read More
cross functional
Nov 08, 2021

6 best practices for building resilient cross-functional teams

Enterprise Agile Planning
Agile frameworks prize the quality of resilience within every facet of ...
Read More
Contact Us