Imperfection is the Way to Agility!

The term "perfectionist" is one that most people are familiar with.  Either because we are one or we know someone who is one.  Many times, being a perfectionist adds a ton of value to your work, your team, etc.  As one, you are driven to do the right things to a level of detail most won't go to.  You may spend hours or days thinking through things to make sure everything is done right, done perfectly.  And others around you can appreciate the perfection you drive towards as long as they are the recipients at the end and not part of the process to get there.  Taking directions from a perfectionist can be tiring and unfulfilling because nothing is ever good enough.  And being a perfectionist can cause you a lot of stress and anxiety.  You know, it's scientifically proven that the world tends towards chaos, so trying to make or keep things perfect is a futile effort and one that will take you lots of energy without much reward.

So whether you are a perfectionist or not, what would things look like if you went the other extreme, be an imperfectionist.  Now, I don't mean you should stop making forward progress on project work and go backwards or undermine progress others are making.  Instead, don't aim for perfection, aim for imperfection, for being good enough.  If you are a perfectionist and you are working on a project or task, it can be considered done way before you may be ready to say it is.  You still find loose ends to tie up and polish to add to it.  But the true essence of the task is done.  If you are an imperfectionist, you can stop there, when the task is basically done, and skip the polish and charm (unless of course that is the task).  This can also happen at the beginning of a project.  Perfectionists plan, plan, plan.  Before they execute anything, they have a detailed plan.  Is it so imperfect to start some work with a half-baked plan? 

Let me give you an example.  On our team, we have a bunch of projects that use Visual Studio's
Team Foundation Server
(TFS).  We've customized the TFS templates a lot for all work items types.  There is an effort across hundreds of projects in the Microsoft IT department to migrate to the out of the box templates and away from our custom ones.  So we mapped every field between the templates, counted how many items we would have to migrate, when during each project's schedule we could fit in a migration, wrote a bunch of migration scripts, and so on, and so on.  We were working on determining an overall roadmap and an estimate as to how much this effort would cost.  Honestly, the effort of determine the cost is what is costing us the most!  So one team did the unthinkable.  They gave everyone on the team less than a week's notice and then migrated the templates.  They weren't trying to be perfectionists.  They just knew enough that they thought they could get the migration work done and move on with other project work.  And guess what, it went fine!  Did they have every question answered?  No.  Did they know exactly how long the migration would take?  No.  Did they have a solid rollback plan if something went wrong?  Not really, the plan was ‘get it done and work through the issues along the way’. 

Imperfectionism helps you be agile.  It helps you move faster.  It helps you deal with ambiguity and still show results when you know the answers aren't yet known.  Do you have to take risks?  Yes, potentially.  It just depends on where in the spectrum between imperfection and perfection you want to land. 

Perfection is so hard to achieve.  So go for it, be a little imperfect.  We all are anyway.  It's a lot more satisfying in the end to be good enough and show some results.  Stop churning and planning and waiting for things to be perfect.  If you do that, the rest of the team may just move forward without you!