I consider myself a creative person. I enjoy drawing, sculpting, painting, etching and various other practices in the visual arts. I also enjoy writing and story telling (i.e. improvisational stories).
There is also another creative side to me. One that many non-techie people can’t quite understand. I enjoy designing and deploying working solutions. Be it a network, domain structure, or software application and database. Those creations, while not “artistic” in the common man’s eye, are still creative achievements and, when done well, are a work of beauty.
Now, this isn’t a post to convince people that technology is art. That’s just a fact. No, what I am trying to convey here is that every achievement has various stages of development.
A painting starts with a canvas, then a base coat, then a base color wash. Often at this stage simple guides and outlines are added to provide shape and flow. Then more details and colors. This process is layered on over time until the desired effect is created. And that’s where it gets difficult, or rather more difficult. An artist of good quality has to know when to stop. There is a point upon which the work is done. Adding more details, more colors and features will actually detract from the experience we get from viewing such works of art. The artist also has to know which details to leave out and which ones are critical for the story and emotion that they are trying to express. It’s easy, far too easy, to overwork the art.
The same is true for software. The artist, or developer in this case, must be able to determine which features are critical. Which features are a nice to have and which features will detract from the product.
As developers and software designers it is easy to over work the product. As we create and code the product, we often think of new features that would be simple enough to add. But every feature takes time. Time to code, time to test, time to document. And every feature needs a way to implement it. Which means more menus, more buttons, more code, more tests and more documentation.
The point I’m trying to make here is that time adds up. While we’ve been striving for the perfect feature rich application, the customer has moved on. They’ve found another product that does just what they needed, as minimalistic as it may have been. While people will wait for the perfect product, history has taught us they will only wait until someone gives them an alternative. And most consumers will not leave a good tried-and-true product for the promise of perfection. And if that “perfection” requires time and effort to switch to then you’re almost guaranteed rejection. Give them”good” now. Make your “good” their tried-and-true product. You can give them perfect later.
Leave a comment