My personal, naturally limited analysis shows that the inherent desire of every programmer to rewrite any
code not personally created by them is the biggest drain on IT resources.
Ask any developer what needs to be done to a system they did not create and the answer will be: "Rewrite it
in xxxx" where xxx is the platform/language/tool of their choice. The ancient Greeks complained that no one
wanted to maintain existing buildings, the just wanted to demolish and build new ones. That is happening in
IT now, especially with these so-called "low value" applications, a term I find dubious at best.
These guidelines are a good start. I would add the Engineer's maxim: Keep It Simple, Stupid, which these
guidelines reinforce. Needlessly complex apps such as the ridiculous trend to n-Tier everything, so-called
"reusable" code that will never be reused, needlessly complex "patterns" and "object models" that seem so
great and cutting-edge in discussion are just a way for someone to sound intelligent and not actually do
anything.
The correct approach is the least complexity that provides the solution. Instead, we are constantly deluged
with articles from "experts" who tell us what we've been doing wrong and why, if we just listen to them and
use their favorite platform/language/tool, all our IT problems will vanish. We are told that simple,
linear, readable code is bad... rather, we should obfuscate, extract, inherit, pattern, separate,
compartmentalize, objectify, ad nauseum. Not to worry, though, the next guy that comes along will toss it
all out and rewrite it, presenting it as "something completely different" that will nonetheless get
rewritten by the next guy. THAT is where the money goes.
I am not saying let's all write COBOL, but the patterns shift too quickly without thought. Everyone's a
guru in their own mind because everyone has a new buzzword on their lips that dazzle the PMs and BAs into
believing they've got something effective instead of just new.
Ask these questions:
1) what are the odds that the massive framework I want to write will every be used widely? By widely I mean
500+ developers, not the four on my team.
2) Why is it necessary to write an n-tier (where n tends to be 6 or more for no good reason), highly
scalable, patterned application for a 5-user, internal, corporate website? I recommend banging out the bare
minimum of code needed to accomplish the task. Yes, use libraries (e.g. Java or .NET). Yes, don't reinvent
the wheel. Yes, use object-oriented code recognizing that in the end, you will need to write something that
USES it, which WILL be linear.
3) Why ARE you reinventing the wheel? There's an app for that. Go find it, buy it, install it. So what if
it isn't perfect? What YOU write won't be either...you know the user will want ten more features. Won't it
be easier to tell them NO to these "low value" features when you don't have the source code?
4) Why the heck are you not using open-source? Why have major companies not gotten together (like they did
to standardize Electrical or Mechanical components) and just create a freakin standard that the Open Source
community can target? Are thing REALLY so different at your company that you need to customize EVERY
business process? I mean, and expense report IS an expense report. Maybe your BUSINESS practices are a big
factor in your IT costs? Hmmm...
I could go on, but who is listening?
Discussion on:
Message 6 of 1
IBM Sponsored Resources
Resources from our Sponsor
- Oracle Exadata vs IBM: Netezza Compared
- Forrester TEI Report
- CIA Whitepaper
- Harnessing the Power of Advanced Analytics
- Tapping into Unleashed Business Potential with Advanced Analytics
- Unlock Analytic Performance with Revolution R for Enterprise and IBM: Netezza Data Warehouse Appliance
The best of ZDNet, delivered
ZDNet Newsletters
Get the best of ZDNet delivered straight to your inbox




