"Everything in moderation"… I’ve always had trouble with this saying. Because let’s face it, engineers are notoriously bad at moderation. We like to do what no one believed possible, to defy conventional thinking, to create a never-before-seen engineering masterpiece. The Hoover Dam, putting a man on the Moon… these kinds of things are what get engineers’ all worked up!
Stereotypically, engineers struggle with balance. Not all engineers fit the stereotype; I know several that are brilliant at balancing their software’s evolution. But a fair percentage of engineers tend to overdesign, overengineer, undermarket – because that’s their nature. Take for example 3D Realms and their decade long failed effort to bring Duke Nukem Forever to market (http://bit.ly/8blbLu) – a classic case of trying to “do it all” and failing to balance (now Gearbox Software has taken over and is finally brining DNF to market http://usat.ly/b6DLh7).
The fact is that no software is perfect – no test methodology is perfect – your algorithms will always have room to improve – you can’t rely solely on customer input for driving your products – the list goes on. If you focus too heavily on any one aspect of the software creation process – you are jeopardizing your product’s success.
Here are some of the balancing points in creating software:
With every release of 3D ACIS Modeler, 3D InterOp, and our upcoming CGM 3D Modeler and CGM-IOP translator, we wrestle, debate, and contemplate all these balancing points – every software company should. Does anyone have suggestions on how to make these tradeoffs?