This post originated from an RSS feed registered with Java Buzz
by scot mcphee.
Original Post: Software value in design perfection.
Feed Title: SystemExxception()
Feed URL: http://www.autonomous.org/pebble/systemexxception/rss.xml?category=Java
Feed Description: java design and culture by scot mcphee
Perfection is the mortal enemy of good. A collary from politics; The road of idealism leads straight to the gates of the death camp.
Value-for-money and fit-for-purpose are business decisions. Businesses don't care about OO technique, the Law of Demeter, architectural principles, separation of concerns and cyclic dependencies, they care whether their order-entry system enables them to enter orders (or whatever). Try telling the business you want to fix the design because the new design you have in mind is "better" and they will ask what new features they get for their money, and if you can't rattle that off they will say the IT department is paying for the re-engineering (exactly where we are now with the current project). The business is worried that we just did three months of development effort and even though they are not paying for it, that's three months where the amount of visible features in the system has increased negligibly.
On the other hand the cost of maintenance is also a business concern if they are paying for maintenance. Therefore of course, over the longer term, all those things like cyclic dependencies and so on do affect the business, but the business' view of the matter is at a different level of abstraction than ours (as software developers).
The real problem I believe here is the question of timeframes. To a business, short term often means the next quarterly statement and long term means to the end of the financial year. In my view, this is an issue that affects the way businesses operate and their decision making in general, it generates a lot of market distortions because people rarely think about 5 years away - about 2 years appears to the current business (and social) horizon. Fix that problem (HA!) and you will find the issues with software development are frequently also alleviated.