Artist vs. Painter - my analogy

I got to thinking about something today while working on some code. I consider myself to be a pretty good programmer. My skills vary depending on the programming language, but I definitely know how to write solid code that does what it needs to do.  I admit, however, that I’m not someone that knows all of the intricacies of the programmer language.  Take C#, for example, I can write a program that works great using C# and find the language powerful and easy to use. Even so, I probably only know about 50% of the syntax and features of the language. Things like "generics" and "delegates" are only known to be at the most basic level.  If I had to create or use one I’d need to pull out a reference manual for some help.

So what does this have to do with an Artist and a Painter? Allow me to explain. Imagine you want to get your house painted so you went out and asked people for bids. One of the bids you got was from a person who considered himself an "artist" as opposed to just a painter. His bid to paint your house was rather high but guaranteed you would have the more perfectly painted house in the city. He would make sure all of the brush strokes were in the same direction, he’d use the right paint brush (he as 50 in total) for each part of the house, and so on.  In addition to the artist’s bid you get a bid from a local painter that paints houses in his spare time during the summer.  His bid is much lower than the artist’s bid. He tells you he’ll get the house painted quickly and with the color you want. His paint will protect your house just as well as the artist’s. From the street you’ll never be able to tell the difference between his paint job and the artist’s.  If you look real close, however, you’ll see the brush strokes and maybe an occasional drip, but nothing bad that hinders the performance of the paint.

The question is, which bid do you take and why?  If it was my house I’d go with the lower bid of the painter. I don’t need the paint to be perfect, but I do want it to look good and serve the purpose of protecting my house from the elements.

I think this can be applied so software development. Some programmer’s consider themselves to be "artists" and work very hard to create "perfect code". The will iterate on the design and develop until they can achieve the desired function in the least amount of code or the most elegant/sophisticated manner. Is it really worth it though? How much time and energy do they put into it for little extra value?  Also, will anyone else be able to decipher the code later when it needs to be supported or changed?  Sometimes I think programmer’s lose sight of what is important. I’m not advocating writing spaghetti code or coding without standards; but I do think a programmer should focus on meeting the design goal as quickly as possible instead of wasting time trying to refactor the design and code over and over again.

Silverlight 2.0 - Very cool!

I’m at a conference this week. One of the sessions I sat in on today was about Silverlight 2.0. If you haven’t heard of Silverlight then you really need to give it a look. I don’t care if you are for or against Microsoft, the new Silverlight technology is going to change the way you think about web apps.  I’m going to seriously consider giving some of my sites an overhaul.  If you have a customer facing web site and want to add some zing to it then Silverlight can help.  If you have a business application, then I must admit that I’m still trying to figure out if Silverlight adds any value. Sure, you can add some cool effects and make the app look cool, but that hardly gives you a business case to justify the change.

Next Page »