- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
YAGNI
-Matt
Admin
While I agree that you cannot make blanket statements, I have to say that the process described is absolutely insane, and more often than not, I've seen these "wonder-architects" over-engineer things into a complicated mess, and then leave off to greener pastures leaving everyone else to deal with the mess.
It's one thing to develop an over-engineered framework, it's quite another to be stuck maintaining it. I wish more wonder-architects had to maintain their own crap long enough to realize that YAGNI should be a guiding principle.
=/
Admin
I agree with Aleks. There is a time and place for doing the simplest possible thing to finish a product, but I'm far too often the guy who inherits these "complete" projects when it comes maintenance time.
The most annoying thing for me comes from a guy who was here only a short while before I was, but is considered in the company right up there next to Jesus. "Why waste time doing object-oriented programming, using an event driven architecture with separated business and data logic when I can write 2000 lines of C# code spanning 3 functions that does it all?"
Sure, it's completed faster, but then he's "too busy" to maintain that code. He's got other new projects he has to get done. Then people ask me, "Why does it take twice as long to make this program do a second form, or a third form, or a fourth?" with the original programmer chiming in occasionally, proposing deadlines for me (usually 3 times faster than is reasonable). Then I propose my own deadlines, and they are rejected and I'm told to meet his. Which rarely happens.
Of course, given some of his own systems to maintain, I think things would be seen differently... but that chance never comes around since I come off looking like the slow, lazy programmer, and obviously I'm not as talented or as hard-working as he is.
Admin
Being this the humouristic extreme border case of 'enterprisey' workflow, I find much worse to fill a php or jsp with both presentation, database access, business logic... should the site pay some attention too to that kind of wtf?
Kind regards, Jorge from Madrid (I love your site!)
Admin
Sorry, but there is no excuse for a system with this many layers. Hooking a new workflow into the system should require modifying ONE existing file) and possibly adding some more. Decoupled pieces with a few, carefully thought out (and possibly documented constraints) are the only way to build large, elegant systems. Anything else is just a "throw more money to fix/debug/extend" answer.
Admin
This sounds a lot like CSLA.