In the years I worked in IT organizations (or as a consultant) I found a number of things that made my eyes roll, my brow furrow, my dander and blood pressure go up, and generally pissed me off in some way. Rarely was I alone as generally these things were obvious to everyone but where the problem lay.
Three CIO/CTO's were expecially memorable and all for different reasons.
The first distrusted anything his employees said, but believed everything that came from a vendor or prospective vendor. This lead to a series of high cost, low value services, systems and tools that were forced on the IT group. What usually happened was some minimal use was found, just enough to claim the item was invaluable, and then usually lead to an article by the CIO on the vendor's website about how great it was. One time a vendor sent marketing people to interview the IT personal who then promptly mentioned that the product was not being used at all as it was completely unnecessary. That was the last time anyone asked.
When I worked for a multinational consulting firm, the new CIO came to the US (from the home country) office and made a big presentation on teamwork, the centerpiece being a video showing guys "helping" each other at a number of urinals. After people's jaws came back from the floor he then stated that there would be no layoffs. Two weeks later the layoffs started and after a few months the entire US division was closed. Thus the rule "when the CIO says there will be no layoffs, prepare your resume".
The third shall be known as the Wet Noodle. After telling the team building the new system (to replace the one the company made most of its money from) to come up with a backup plan in case of failure, a another group demanded there be no backup plan (who also worked for WN) so to keep the peace he fired the person who created the backup plan he asked for.
Braindead Design Decisions
Let's say you have 1000 customers, each with a custom set of configurations for connecting to your service and processing options. Where would you store this — a database perhaps? Of course not, you would create 1000 text files, stored in the file system of the application servers, which anyone could edit in a text editor! Then whenever changes were made you simply restarted the servers. Brillant! Of course the person in charge decided that this was the best possible way it could be done, and thus it was written!
As Guy Kawaksaki once said, "Gag me with a steamshovel".
In another case CIO #1 above agreed to spend $500,000 on a Documentum installation if a use could be established (or in his case, not really). All of our sales offices wanted to have a basic web page so we imagined a simple JSP with all needed data pulled from our Oracle database. But that would not prove how wonderful Documentum was, so the decision was made to use XSLT to generate static HTML from XML files extracted from Oracle every night, with Documentum calling the XSLT engine and storing the static files in its repository. Then every morning the files would be pushed to the company's web servers. Or more precisely, since the company was afraid of porn being shown on the web servers, a flunky would each morning manually copy the html files from a temporary location (where Documentum could write to) to the actual web server file system.
The funny thing was, the web pages included the direct number to the lead sales guy in each office, and our competitors used it to scarf up people left and right, so the XSLT was edited to remove the phone number of each office. Amazing what you can do with Documentum...
I've mentioned before (I think) the medical software company that was so secretive, each of the 25 programmers had their own source code, and were not allowed to see anyone else's source and relied on manual copying of libraries and database tables to be able to work. This way no one could steal the product. Eventually the programmers were all fired and we were bought in to try to rescue this, but it was impossible - the application consisted of 25 slices of totally different UI, database and code that were completely unusable. Eventually the customer skipped town and cost our company a huge bundle.
Big Talk No Delivery
I once worked with a programmer who called himself a Java God. He was working on the back end of a new online store and I was supposed to do the front end. After two months I was ready to integrate with the back end so I looked in CVS and found ... nothing. After 10 months he had checked in only a slightly cribbed version of some Java app starter, and a few databases with nothing store related in them. When I complained everyone jumped on me saying the Java God never checked in anything until it was perfect, and I was being unreasonable. The JG then proceeded to build a wall on his desk so that I couldn't see what he was working on. Another two months of that and I left. I heard a year later he was finally tossed. To this day the company still has no new online store (5 years).
I'm sorry, real programmers deliver.
More in Part II.