jaybird3rd, on Mon Oct 5, 2009 6:14 PM, said:
I agree. I tend to be very concerned about elegance and maintainability as well, but too often, other factors make it necessary to compromise in these areas.
I once remembering a very interesting conversation. We were working on a consumer product in a highly competitive space. The development and user experience teams leaned towards "make it elegant, make it beautiful, perfect it in every way." They'd also become gunshy due to a release that hadn't worked out well. The product typically released annually, but the team had come back with a proposal to take five years to write the product. They wanted to add massive amounts of new functionality, rewrite and re-factor into perfection, test to the nth degree, do multiple public betas for feedback etc. etc. They went into a long song and dance about why we needed to go this way from a technical perspective and how nothing less than five years would suffice.
The business guys listened politely and then when they were done, gave one simple response: "that sounds like a great plan, but if we took more than 18 months to release this product, every retailer would drop us, every partner would cease doing business with us, revenue would evaporate, the company will die and we'll all be out of work by year two of five.
I think there have to be compromises in business that someone doing as a labor of love can get away with.
Nothing inspires me more than an engineer who treats their work with the eloquence, creativity, passion and finesse of a famous painter. But there are business constraints that have to be remembered and do sometimes force what is not perfection.