The over engineering trap
You see it everywhere. Right from Microsoft's billion dollar products to simple .NET applications. Features that nobody wants to use, but everybody is made to pay for. The over-engineering malady stems from wrong assumptions, philosophies and attitudes.
More is always better: More is not always better. Packing in features that nobody wants increases the chances of bugs in the features that people really want, makes them pay more for these buggy features and slows down time to market. The marketing folks who are reading this would probably feel that without some over-engineering they cannot sell the product. Agreed! More could possibly be better for the company making the product, but almost always bad for the end customer.
We need to plan for the future: Let's face it. Most of the time you cannot predict future requirements. Requirements change and that is the fact. The way around that is not to predict and wire in your 'bets' into your requirements but to make the right decisions in the design. However, watch out for the flexibility mania in design (see below).
Product marketing over zealousness: Rand Eckfeld's IEEE paper brings out the importance of using Agile principles in strategic planning. "Projects must be coupled with a complimentary approach to strategy to in order to achieve the overall business goals. If agile development is to continue growing in the business community, complimentary strategic planning capabilities must be developed that share the same agile philosophies. " Product marketing would do well to apply Agile principles during customer interactions to stabilize and prioritize requirements better. Often product marketing has only a strategic feel of what the customer wants and distills this feel into a 'creative' product requirements specification setting off over-engineering. Steve Garnet explores the idea of Agile in business more fully.
Flexibility mania: Joshua at Dr.Dobbs defines code level over-engineering as "When you make your code more flexible or sophisticated than it needs to be, you over-engineer it."
More is always better: More is not always better. Packing in features that nobody wants increases the chances of bugs in the features that people really want, makes them pay more for these buggy features and slows down time to market. The marketing folks who are reading this would probably feel that without some over-engineering they cannot sell the product. Agreed! More could possibly be better for the company making the product, but almost always bad for the end customer.
We need to plan for the future: Let's face it. Most of the time you cannot predict future requirements. Requirements change and that is the fact. The way around that is not to predict and wire in your 'bets' into your requirements but to make the right decisions in the design. However, watch out for the flexibility mania in design (see below).
Product marketing over zealousness: Rand Eckfeld's IEEE paper brings out the importance of using Agile principles in strategic planning. "Projects must be coupled with a complimentary approach to strategy to in order to achieve the overall business goals. If agile development is to continue growing in the business community, complimentary strategic planning capabilities must be developed that share the same agile philosophies. " Product marketing would do well to apply Agile principles during customer interactions to stabilize and prioritize requirements better. Often product marketing has only a strategic feel of what the customer wants and distills this feel into a 'creative' product requirements specification setting off over-engineering. Steve Garnet explores the idea of Agile in business more fully.
Flexibility mania: Joshua at Dr.Dobbs defines code level over-engineering as "When you make your code more flexible or sophisticated than it needs to be, you over-engineer it."
Gotchas Products Project Management Strategy Technology
Linking and Sharing
If you found this page useful, consider linking to it.
Simply copy and paste the code below into your web site (Ctrl+C to copy)
It will look like this: The over engineering trap
Trackback
Tell a friend

