|
|
|
| CSS/XHTML Gurus, Web Designers, PHP Devs: You + Zootoo (NJ)? |
| « plz email me teh codez | A Null Understanding » |
A few weeks ago, I shared the RemoveSpecialCharsExceptQuote AmpersandApostropheOpenBracket CloseBracketCommaHyphenFull StopCommaForwardSlash() method that Paul G. was forced to implement by his superior. Now this may come as a surprise, but there were a few more "oddities" at that organization. And shortly after leaving the longest-three-months-of-his-life contract, Paul was nice enough to share some more of them.
"The job interview went pretty well," Paul wrote, "everyone was pretty level-headed and seemed to have a pretty strong grasp of .NET and web technologies. Their description of the core application was like any other ASP.NET app: a Web Server communicated to a Database Server via ADO.NET and used a handful of Web Services. It seemed like a great fit."
However, after signing the contract and turning up to work, Paul got a slightly different impression about their system. His first clue was that everyone simply referred to it as The Beast. And for good reason. The Beast sported it all:
AJAX? Check.
Code Generation? Check.
Multi-megabyte “Business Logic” Configuration Files? Check.
Web Services? Check.
.NET Remoting? Check.
Message Queuing? Check.
Home-Built “Enterprise Framework”? Check.
Custom wrapper/abstraction layer for ADO.NET? Check.
Windows Services? Check.
The use of the word “Factory” in at least half of the class names? Check.
Worker threads, processors, semaphores, mutexes? Check.
As for what The Beast actually does? It’s an information system used by a few hundred employees across the world to process orders. Sure, it may not seem like much, but it does it oh-so elegantly. Following is the life cycle of a simple request from an end user.
Paul has since left the position, discouraged by the complexity of making what would otherwise be simple fixes and updates. Adding a field to a form would affect a number of steps of this process, not to mention all of the XML files that would have to be updated. Sadly, he never had the opportunity to add another layer, you know, for even more extensibility.
|
The biggest problem with systems like this is programmers who think they need all of this bullshit. I can't tell you how many experienced developers I've met who would argue until blue in the fact that you MUST write your own abstraction/mapper layer for ADO.NET, because using the built-in tools is garbage. Or that you MUST abstract everything out into Factories and use half a dozen interfaces, and have AbstractBizObjects inheriting from AbstractCommonObjects, because "professional programmers do it this way."
No, thanks. The fact that these systems go into production, and the developers pat themselves on the back for being so professional, and totally ignoring built-in tools that would make it a lot easier, is truly WORSE THAN FAILURE |
|
While I agree that this particular occurence seems to have all prerequisites for WTF certification, I cannot generally agree with previous comment from "ObiWayneKenobi".
We have seen their past WTF and the fact that they seem to transform data back and forth many times for apparently no good reason. However, my experience has thaught me to account for possibilities I cannot see immediately. Are there any long term plans for this app? How long? How extensible does it need to be? How many components does it have? What are its integration requirements? It may not be as simple as it seems... One more thing. I've seen numerous comments made here by those who obviously never had to actually develop a large software product and then maintain it long term. Instead, they create something (simple) and then run away as far and as fast as they can. Those people propose "just do it the simplest way" approach. Well, that works if you are going to run away. In most other cases it does not. We could also talk about "lean" development which proposes development without forward looking assumptions - most people take this as "choose the assumption that yields the simplest code now". Wrong. Again: I am not defending the company stated in the article, but argue against blanket statements made by those like ObiWayneKenobi... |
|
Only 18 more steps and their system could do anything!
|
| « plz email me teh codez | A Null Understanding » |