Good Enough versus Perfect

Good enough ?!?!

Image by AUSTIN_O via Flickr

The perfect is the enemy of the good. – Voltaire

Motivation to perform to perfection is a strong force in western society. The attitude that we have to be better than anyone else at something, to achieve perfection in our activities, has been a strong force throughout modern history, from the world's nations down to the individuals which form their bases. And it's seen every day in projects of all scopes and sizes.

But Voltaire left a message that should be listened to, by everyone on every project – one that is unfortunately ignored by many, to their detriment.

It's a somewhat heretical thought: What if we don't have to be perfect? What if we just do good enough to pass? What will that offer us instead of striving to be the best? Well, what it offers is the ability to work more efficiently and still do a proper job of it.

What is good enough?

It's actually pretty simple. Being good enough is about meeting the needs of the project, rather than the ideals. Some might think it means lacking quality, but it's really more about balancing quality against the work that actually needs to be accomplished.

For an example of something good enough, one need only recall the 1980s and early 90s, to VHS. In the late 70s and early 80s, it competed against the Betamax standard for home video. However, it won the competition in the end because it was good enough for the average consumer. It was cheap, had acceptable video and audio quality, and was readily available. In contrast, Sony's Betamax standard, while better quality than VHS, was more expensive and harder to get a hold of. The focus of having a perfect format paradoxically resulted in a product that couldn't cut it against VHS.

What's wrong with perfection?

First of all, perfectionism is procrastination. Say it out loud: perfectionism is procrastination. When you try to be perfect, you get little, if anything, actually accomplished. Planning for perfection leads to a project terminal state known as analysis paralysis – you get so bogged down in the details of what could happen, what could be needed, etc. that you never actually get started at all. And for a project that is in development, perfectionism can lead to endless wanking on a few particular pet tasks of the developers, as they keep trying to make those parts they're working on better and better. At first it may look like progress, but at some point, those constant attempts at improvement return no value at all.

On the other hand, aiming for Good Enough just gets the job done. In planning, you focus on what the requirements are, no more, no less, and how to meet them simply and efficiently. No worrying about edge cases or making things bulletproof or endlessly customizable – meet the core needs and be done with it. As for development, it should be simple enough to test against the plan to see if a task is met. Once it is, you move on to the next one, and stop worrying about the one you just finished. The work goes by faster, and you accomplish more.

Another issue with perfection is that not everyone agrees on what perfect means, in the context of the project. It's very easy to end up with a camel, when what you want is a horse, because everyone thinks that the perfect quadruped needs this or that or the other thing. It's a very subjective concept, as opposed to achieving good enough. Not to say that good enough isn't subjective itself, but it's a much easier target to hit and reach consensus on, and if you plan well, it can be objectively determined whether or not something is Good Enough based on project goals, client needs, and metrics collected during the planning and development stages of a project.

Determining what is good enough

There are three simple questions you can ask:

Is it simple? That is to say, is the design simple and can be picked up by the developers without much work? If the design and implementation is simple, it's easier to make any needed changes later, while still fulfilling the current requirements now.

Does it work acceptably well? If it's easy for the end user to figure out, and does the job without raising problems the user can't handle, it's good.

Does it cover all the bases? It should meet the project requirements, with a minimum of additional features tacked on. Wherever additional things are added, it should either be because of (legitimately) changing requirements, or because those features are required by the features which do meet project requirements.

Conclusion

There are some clear advantages to aiming for good enough rather than for perfection. You'll be more efficient while still providing a proper job well done. It's not necessary to provide all the bells and whistles so long as you meet the goals of your project, so don't try for it! Success comes from getting the job done right, not done perfect. And good enough is doing it right.

The greatest enemy of a good plan is the dream of a perfect plan. – Karl von Clausewitz


Enhanced by Zemanta

Posted In

Initial impressions on the Windows Live Essentials wave 4 beta

Windows Live Essentials wave 4 came out in beta last week, but I’ve just gotten it installed today. I’ve been toying around with it a bit, and I’d like to share some of my first impressions on the betas.

Windows Live Messenger

New Live MessengerWith the new Live Messenger, Microsoft’s introduced a social timeline to the client, which apparently can tie in to Facebook and MySpace. By default it’s tied into Live’s own social networking/profile system. I prefer the classic UI, which the new version retains (although it’ll give you the social view by default) but if I had more screen space, I’d probably make use of the new view. It’s actually pretty neat, and it’ll probably integrate more services as time goes on, making it more useful to people.

Windows Live Writer

New Live WriterWith the new version of Windows Live Writer, we have ourselves a ribbon. That’s right, the much touted ribbon that was introduced in Office 2007 and refined in WordPad and Paint on Windows 7 shows up now in Live Essentials. As part of the UI change, the sidebar that once offered a list of things to insert into blog posts is no longer there. Instead, an Insert tab on the ribbon provides those same items, putting those provided by add-ons into a ribbon gallery.

Unfortunately, Zemanta (a blogging assistant that has been my favourite add-on for WLW) doesn’t work with the beta just yet, but hopefully that’ll change soon. However, fitting it in might be a bit of a hassle. Meanwhile, other add-ons that I’ve used in the past I haven’t installed on this system, so I can’t say whether they work or not. Here’s hoping that they do, however!

Windows Live Photo Gallery

New Live Photo GalleryUnfortunately, I haven’t much good to say about the new version of Live Photo Gallery. While the past versions were great for managing my pictures, the new version removed the tag trees from the left-hand navigation pane. And there appears to be no option to restore them.

It’s because of those tag trees that I bothered with WLPG in the first place. I have many, many images on this computer and others, and being able to organize them and navigate through them by tag made it easy and quick to find whatever picture I was looking for. The new ribbon makes it easy to find pictures based on who’s in them, but for general tags, it’s not so easy. Not only that, but managing the tags themselves has become much more of a hassle, now that the list of them is not easily accessible. The result is a lot of empty space in that navigation pane, and a worse user experience.

Sorry, Microsoft, but if the general and people tag trees aren’t restored in the RTW for wave 4, I’m dropping WLPG for something, anything, that actually provides me with real tag navigation. For me, this is a serious deal-breaker.

Windows Live Sync

New Live SyncLive Sync actually has a UI now, rather than just a login dialog and simple options dialog. Rather than simply provide a way of accessing all the files on your computer through a Live.com subdomain, it lets you synchronize particular folders with the cloud. However, all I’ve used Live Sync for is to access files on my desktop when I’m on the road – something that this version retains, so long as you enable it first.

However, accessing files is different now, through the Live Devices site. And if you’re not running the beta, your system doesn’t show up there. This can lead to a tricky configuration issue if you’re not running the beta on all your systems. You can still use the old Live Sync, but not concurrently with the wave 4 beta. It’s still there after you install the beta, but the beta Live Sync just won’t run at the same time as the older version. Pay attention to that fact if you’re using it for anything.

One thing to note as well about Live Devices – if you have a cell phone, you can have it show up on there, too. However, don’t expect to be able to do anything with it just yet, and certainly not if you’re running anything other than Windows Mobile 6.5 on it. Although even then, money’s out on whether it’ll only be useful for Windows Phone 7 anyway.

Bing Bar

I haven’t really played around with this, but if you’ve installed the beta and run Firefox, you’ve probably noticed your shiny new toolbar. That’s right, the replacement for the Windows Live Toolbar supports Firefox now. Given the fuss that Microsoft has gotten into in the past for adding plugins and extensions to Firefox, you’d think they’d avoid tossing it in without any mention. On the other hand, if you check that box to install it…

Personally, I preferred the old Live Toolbar, as it at least blended in better with the look of Internet Explorer. Whether you’re using IE or Firefox, the Bing Bar sticks out like a sore thumb, and while it may be just as useful as the Live Toolbar was, it feels a lot more annoying.

The Rest

There’s a Live Messenger social connector available now for Outlook Connector. If you’ve been using that to keep connected to LinkedIn, you’ll now find that Outlook will keep you connected to the social features in Live, too. Not played with that yet, but interested to see how it’ll turn out.

I don’t use Family Security, and never bother installing it. I don’t need it, so no opinion there.

Likewise, while I do install Live Movie Maker, I almost never use it other than to play around. I haven’t actually ever made anything with it. As for what wave 4 offers, I haven’t even launched it to see.

So that’s about it for my initial impressions. Very neat (but screen-wasting) social features in Live Messenger, nice new ribbon in Live Writer, a more useful Live Sync, a gaudy Bing Bar, and a disappointing Live Photo Gallery.

Posted In

Moving the site to a new location

So, you might notice that coldacid.net is now chris.charabaruk.com. Do not be alarmed. I’m rearranging things to repurpose my coldacid handle, with a new coldacid.net site to come around in the near future – one that will not be just my personal stuff, but rather for doing contact programming, various projects, etc.

For now, the domain will lay fallow, passively redirecting people to chris.charabaruk.com, but in late July/early August, the new coldacid development site will appear, and I will start offering services through it. Meanwhile, I hope to get back on the blogging horse here, including posting stuff I was reticent to post when coldacid.net served as the professional and personal site for me.

By the way, anyone out there a decent vector artist and willing to turn some sketches into a proper, vectorized logo for free (or very, very cheap)? Let me know, thanks.

Posted In

Taskerrific is gone; what next?

Well, it’s not really gone, but I’ve shut down the Taskerrific beta and put the site on reserve, as I have neither the time to maintain it nor the money to have the service hosted properly. It sucks having to do that, but right now, I need to make money, not spend it. So Taskerrific is down and I am back on the job hunt.

I have some plans for reviving Taskerrific at a later point, but right now my focus outside of looking for employment is on my writing. As I’ve mentioned before, I’m currently working on a visual novel, and in addition to that, I’ve got speeches to write for Toastmasters, and story ideas I want to convert into actual stories. I’m keeping up on my programming as well – perhaps not to the extent I was coding in my Taskerrific days, but still making sure that I’m up to date on what’s going on in the field. Considering my plans for Taskerrific’s revival, well…

I’m going to try writing on here more often. I’ve created a repeating task to remind me to actually blog something at least once a week, and while it probably won’t always be technology-related, hopefully it’ll be something of interest to someone. As usual, though, most content will be through Twitter, FriendFeed, and Reddit.

And again, if you’re looking for someone who can help you out, contact me. But please, only if you actually have an actual offer. I need actual work, not a “we might be interested” line. (Sorry if that sounds angry or rude, but the stress of this job search is really weighing on me.)

Reblog this post [with Zemanta]
Posted In

Where have I been these past few months?

It's been about three months since my last blog post here, although if you've been following me on Twitter, FriendFeed or Reddit, you'll know I haven't died or anything. To sum it all up, there were personal matters I had to deal with. And I'm still dealing with them.

Outside of my personal life, I'm still trying to get things done with Taskerrific. There are technical issues that have been quite jarring to work through (some of which are still in my way), but more importantly, there is a funding issue that needs to be resolved for Taskerrific's continued survival.

Right now, Taskerrific is hosted by Applied Innovations, on a plan that costs about $50 USD a month. Unfortunately, I haven't that kind of money, and so if the service is to remain up without a long hiatus for redeveloping on another platform, well… I like Applied Innovations, and they have good rates for ASP.NET hosting, but even so, it's not inexpensive, unlike Linux/BSD hosts.

There's also the matter of my ongoing search for a 9-to-5 (or equivalent) job to keep me fed and sheltered. Put simply: If you need a .NET programmer, or just a warm body somewhere, let me know. I'm not picky. Let's chat.

Lastly, I've started dipping my toes back into the game development waters. A friend of mine is helping me create a visual novel called Painter Story, about a boy who creates a painting that comes to life (more or less). I'm doing most of the writing, rather than the programming, this time. Not to say that I'm doing no coding, but writing fiction can be more difficult than code, so I'd rather not do both. As it is, we're using Ren'Py so there's not much coding anyway.

Anyway, starting with next week, I'll hopefully be back to my usual productive self. I need to get these months of trouble and lethargy behind me.

Reblog this post [with Zemanta]
Posted In
#