When Perfect Is the Enemy of Excellent

Perfect photo by Leo Reynolds

I came across this great post by Amanda Luker of the Drupal consulting firm Advomatic: Designing for Drupal: Dos and Don'ts. It describes some key principles that designers can use to ensure their designs are reasonably build-able in Drupal: "reuse, flexibility and standardization."

It was refreshing to see this post, because, yes, almost any design can be built in almost anything. But if you're on a budget, it can be costly to implement a design that isn't "CMS aware". Can I build that in Drupal? Yes, I almost always can. Is it always a great idea? If it doesn't leverage native Drupal features in a strategic way, and its complexity isn't serving an organizational mission goal, then it's not the best use of money or time. If the design cannot be built in a way that allows for growth, flexibility and evolution, it can even get in the way of more practical, strategic innovations down the road. So though your new site may look perfect on launch day, it might not be the most excellent website you could have built.

Everyone wants a usable site, and they want it to look great and stand out. All of this is possible in most widely-used open source content management systems, including Drupal. But you can't have everything. Most organizations must strike a balance (this reminds me of Michelle Murrain's great post about the cheap, fast and good triangle). I have a client right now whose mantra is "the perfect is the enemy of the good." I really think this is true, in life, and about website building. I'd go so far that the desire for perfection can get in the way of excellence. Awesome things can be accomplished on a budget with a well-balanced compromise between design and functionality, using mission as a filter to ensure the project is hitting its strategic goals. It might not be perfect, but it can be really, really excellent.


What's true is true.

I work with a company whose mission is to provide nonprofits with effective CMS-powered websites and we definitely find that perfectionism can sometimes have a negative affect on a project -- which can come from both the client and the design/development professionals -- if it is not kept in check. There is room for precision without the need for compulsion. In my experience, it always helps to establish agreed upon objectives for a project upfront to keep everybody on track. Rome wasn't built in a day. Most great things are built to allow for (and even encourage) growth in the future.

 Charles, yes you are so

 Charles, yes you are so right that agreed-upon objectives at the outset are key. When I was Tech Director at my org, I spent years on a soapbox, reiteraing over and over that we had to have a clear mission. Once we had one, we used that mission as a touchstone--kind of like a thesis statement in a clear piece of writing. It acts as a check whenever challenges or new ideas come up and helps guide the course and keep things from getting out of hand. As a consultant, I feel like clear objectives in a scope of work or an agreement at the start of a project achieve that same goal. If they're written down, especially, you can come back to them when scope starts creeping, or anybody gets hung up on perfection at the expense of good-enough. 

Also, building flexibly to allow for growth, change and refinement in the future--and not too far out from the open source codebase so that a site becomes unsustainable if an org is on a tight budget--is the only way I like to build!

Thanks much for reading, Charles, and for your comment.