Recent Articles

Oct 2006

I Think I'll Call Them "Transactions"

by in Feature Articles on

As programmers, we derive satisfaction from our ability to create solutions to other peoples' problems. Unfortunately, the problems that we solve aren't the exciting "world-hunger" type, they're more along the lines of, "Sally is spending too much time doing expense reports and would like to automate the process." The inherently boring nature of these business problems lead many programmers to seek out new problems to solve, the most common of which is the meta-problem: a problem with the process of creating a solution for the actual problem.

The solutions to meta-problem take on many forms: NIH (Not Invented Here), IHBLRIA* (Invented Here, But Let's Reinvent It Anyway), The Inner-Platform Effect*, and so many others. Every once in a very rare while (as of yesterday, only seventeen times in the history of all software development), the existing development tools are not adequate in solving the immediate problem and the solution to the meta-problem is actually beneficial to the overall solution. Today's example, courtesy of Robert Rossney, is not one of the seventeen.


Creating a Lead Developer

by in Feature Articles on

J.F. had a pretty good idea of what he was getting himself in to. And considering his other options -- remain unemployed, work at his father's glass company, or spend another two years at the university getting another degree -- this was actually his dream opportunity.

The year was 2002 and the technology boom had officially come to an end. As a graduate fresh out of college, JF didn't even have a fighting chance. Practically everyone in I.T. was out of work and was willing to take just about any job to pay the bills: senior-level developers were lining up in droves for junior-level positions; juniors were going after all the entry-level jobs; and the entry-level folks like J.F. were struggling to find any type of job that had any resemblance to technology.


Have No Fear, Quality Is Here!

by in Feature Articles on

One of the advantages to working at a large organization is that they're very serious about the integrity of their "mission-critical" systems. By the time a code change makes it through the Development, Integration, Testing, Quality Assurance, and Staging environments, it's practically guaranteed to be bug-free. And if a defect does manage to sneak in to Production, no single person can be blamed: it's the fault of The Process for allowing the problem to occur.

A few years back, Josh joined a Certain Telecommunications Company that depended on a "mission critical" system for their day to day operations. He expected to work with a three-, or at a minimum, a two-stage production deployment process.  Instead, he found himself amidst the classic Zero-Stage Deployment Process.


No Need to Change It!

by in Feature Articles on

A few years back, David Shideler worked at a company that built car dealership systems and was a bit reluctant to jump on the new technology bandwagon. In fact, to say that this company moved slowly is not just an understatement, it's an affront to the word "slow". 1200 baud: that's slow. Mail-in-rebates: really slow. Glacier movement: really, really slow. This company: about as fast as fossilization.

The company built the first version of their product in 1973 using COBOL and a specially-manufactured IBM System/3. It was an overnight success: hundreds of dealerships across the country bought their product and tens of millions of dollars in sales poured into the company. They discovered a formula that worked and didn't want to change it.


They're Just Temp Tables

by in Feature Articles on

Mike Rod was monitoring the database backups and noticed that disk space usage for one particular database shot up about 400% since last the last backup. This was a bit unusual, especially considering that there were no production code changes for that system in quite some time. Mike checked with the business to see if there was a sudden rush of 1,223,887,990 new customers that caused all the new data. There wasn't. He went to a developer on the system to see what was going on.

"Aw crap," the developer explained, "not this again! They're just temp tables; I'll get you a script to clean them up."


Wrapping Fever

by in Feature Articles on

In the late 90's, Roman worked for a major speech processing software development firm. His project group was doing fine. In fact, they were doing better than fine: they finished up their project several weeks before the deadline.

While most project teams would drag the project out with additional "testing" or "quality assurance" or "long days spent staring at their screens doing nothing" (I'm sure there's a more business-friendly way of putting that), Roman's team split up and helped some of the other, not-so-fine teams. Roman joined the Core Group.


Pop-up Potpourri: You Can Quote Me On That

by in Pop-up Potpourri on

For many, many more, check out the previous article from the series, Pop-up Potpourri: Perpetually in Beta.


I was completely blown away by the insightfulness of this quote that Tim O'Keefe came across ...


A "Priceless" Server Room: Priceless

by in Feature Articles on

Today's article is a revisit of a classic. Alex will be back tomorrow with a new Pop-up Potpourri.


Yes, I do realize that today's article has a big ole' photograph employing a hackneyed spoof of MasterCard's "Priceless" campaign. But bare with it; the accompanying story from Zack makes it worthwhile ...


Very Slow Service

by in Feature Articles on

JM played a small role on a gargantuan project: contractor working on large SMS sending and routing system. Of course, JM wasn't the only outsider on the project. The company brought in a whole host of vendors and divided them up into Consultants and Contractors.

Consultants had minimal supervision and an hourly billing rate that could only be expressed using three digits. Contractors, on the other hand, billed much less per hour and were assigned to work for either a Consultant or an Employee. Aside from that, and the fact that Consultants all had business cards with incredibly ambiguous job title such "Solution Developer," "Solution Specialist," and "Doer of Things", there was little difference.


The €883 Million Overestimate

by in Feature Articles on

I generally don't write about the "big" stories that have already made their rounds in the press. By the time I'd get to it, the story would be old news. For today's article, I'd like to share a "scandal" from Belgium that didn't seem to make much of a splash in the media. Heck, I bet a lot of Belgian readers even missed it.

The Belgian press reported (9/12, 9/20; both in French) that the government overestimated the 2007 budget by €883 Million. Now I understand that €883M is chump change for most of us, but keep in mind that for a small country like Belgium, it's a noticeable difference. This overestimate stemmed from the Fiscal Institution's 2007 tax assessment which, according to the General Administrator, was "all the IT's fault."


The Optimizing Candidate

by in Feature Articles on

We've all exaggerated on our resumes at one point or another. Maybe it was describing the role on a one-man project as the "project manager who successfully led the development team through all phases of the software lifecycle." Maybe it was saying that the laughable attempt at creating a computer game at age fourteen with a bunch of friends was "being the founder and CEO of Nuwosoft." Or maybe it was something else; it's just how the game is played.

Most employers know this and have a knack at bringing these carefully worded embellishments back to reality. As an interviewer, an employer, and a bit of a sadist myself, I'll often have a fun time doing this. Especially when the candidate misspells the technology he's claiming expertise in:


Virtudyne: The Digital Donkey

by in Virtudyne on

This is the final article in a four part series that tells of the rise and fall of Virtudyne, one of the largest privately-financed ($200M) disasters in our industry. Though all names have been changed to protect the guilty, I've worked very closely with Rob Graves (the submitter) to ensure that this presentation is as close to how it happened as possible. The third article is Virtudyne: The Savior Cometh

After three years of full-time employment at Virtudyne, Rob Graves finally decided to call it quits. Most of Rob's friends and family thought he was insane to leave a cushy job where he was making 30% more than he could anywhere else in town. But then again, most of his current and former coworkers thought he was insane for staying so long.


Virtudyne: The Savior Cometh

by in Virtudyne on

This is the third article in a four part series that tells of the rise and fall of Virtudyne, one of the largest privately-financed ($200M) disasters in our industry. Though all names have been changed to protect the guilty, I've worked very closely with Rob Graves (the submitter) to ensure that this presentation is as close to how it happened as possible. The second article is Virtudyne: The Gathering.

Virtudyne's first three years are best summed up with a single word: disastrous. Nearly $90M had been spent developing a product that was barley functional and completely unsalable. Most would call that "miserable failure" and encourage all involved to salvage what they could, abandon ship, scuttle the remains, and never look back. But one person saw it as the golden opportunity; he was known as The Savior


Virtudyne: The Gathering

by in Virtudyne on

This is the second article in a four part series that tells of the rise and fall of Virtudyne, one of the largest privately-financed ($200M) disasters in our industry. Though all names have been changed to protect the guilty, I've worked very closely with Rob Graves (the submitter) to ensure that this presentation is as close to how it happened as possible. The first article is Virtudyne: The Founding.

The Founder had little trouble convincing his millionaire friends to invest in Virtudyne. It wasn't so much the idea of a Microsoft Office Killer, but that fact that it was 1999 and just about anyone with an internet company could go public and become an overnight billionaire. Within one month of The Founder's grandiose idea, he had secured an impressive eleven million in funding.


Virtudyne: The Founding

by in Virtudyne on

This is the first article in a four part series that tells of the rise and fall of Virtudyne, one of the largest privately-financed ($200M) disasters in our industry. Though all names have been changed to protect the guilty, I've worked very closely with Rob Graves (the submitter) to ensure that this presentation is as close to how it happened as possible.


Coded Smorgasboard: Muhahahahaha

by in Feature Articles on

For more fun-but-not-necessarily-bad code like today's, check out the previous episode: Coded Smorgasbord: The Pilot Episode!


Let's get things started with Michael, who shows us the easy way to calculate radii!


De-Compilin' Back In '71

by in Feature Articles on

According to last month's reader survey, most of you weren't even alive when today's story took place. But Mark Lutton was: the year was 1971 and Mark worked as a programmer in a data processing company.

I'm always amazed at how similar things were back in the 70's. Some companies even offered "performance enhancement" upgrades as they might today. Mark recalls all that was required to nearly double the performance of the IBM 407 Accounting Machine: a sum of money, a technician visit, and a single wire being snipped from the control panel.


Manager of the Data Dump

by in Feature Articles on

J.T. is not well liked amongst the developers at his organization. As a Database Administrator, it's J.T's job to make sure that database structures and queries maintain data integrity and do not put an unnecessarily load on the server. This often gets in the way of the developers, who prefer to think of the database as a giant dump site where data gets thrown and is rummaged through to be retrieved. Things like "indexes," "valid data," and "naming conventions" are merely obstacles put in place by J.T. to make their life harder.

Generally, the submission-review-rejection procedure happens once or twice with most of the developers. But one particular developer -- a newly hired ".NET Wizard" named Frank -- turns the procedure into a daily cycle that drags on for several weeks. Following is Frank's reply to the first in a chain of rejections on a project that Frank was leading up ...


Keepin' It Cool

by in Feature Articles on

A few years ago, Phil was working as a developer on a wire transfer application at a large bank. To make sure that nothing technical would prevent the bank from extracting maximum amounts of money from its operations, every part of their system had a redundancy with fast failovers and clustering. In fact, there was even one server (and a backup of that server) whose only function was to monitor the other server and send notifications if anything fell out of the operations norm.

When a system or process failed, the monitoring server would page the on-call support administrator, who would then log in and restore the errant system to its rightful state. On rare occasions, an actual visit to the server room was required.


Introducing the Hidden Network

by in Feature Articles on

In the two and half years that I've been sharing "WTF" stories with you, I've never used this space ("the article") to promote myself, the products I've developed, or even my own consulting company. So if you'll indulge me just this once (I promise, I won't make a habit of this), I want to tell you about my latest business venture, HiddenNetwork.com, and ask for your help in making it a success. I strongly believe that it will be something that will greatly benefit us all.

A Bit of History ...
Every now and them, I'd receive an email from a reader who wondered if there was a way that we could all work together to solve The Employment Dilemma. Sometimes it'd be from an employer, frustrated that all of their job applicants have evidently been featured on The Daily WTF already. Other times, it'd be an employee annoyed that his latest gig is nothing but a "Bait & Switch." It took a little while, but a picture of what we could all do finally started to emerge.


Boxes And Boxes Of Boxes

by in Feature Articles on

Cascading Style Sheets are an excellent tool used by web developers to put the repetitive formatting details -- font Tahoma, color Mauve, weight Bold, etc -- in a single, easy to maintain place. Of course, no developer actually expects to work on a site that utilizes them. But still, it's comforting to think that maybe, one day, one of us just might be lucky enough to come across that one client who actually uses them somewhat properly.

When a client of Philip Bathe's company requested a change to their website, Philip expected a mangled mess of HTML with improperly formed FONT tags nested inside of CENTER tags with the occasional use of platform-specific CSS. If only he was that fortunate. The moment he opened up the home page and saw what it consisted of, he knew that he'd be in for a "treat" ...


MAKEing Fools' GOLD

by in Feature Articles on

Several years ago, Paul Tomblin and his development team were in a constant arms race. Their goal was to defend the MAKE process from falling into the hands of a Certain Developer. Though they were successful most of the time, every once in a while the Certain Developer would manage to get a hold of the MAKE process and wreak havoc that would take a few days, several meetings, and countless apologetic phone calls to undo.

In an ideal world, a track record of such incompetence and failure would lead to a swift and harsh de-hiring. But in Paul's world, his team was usually in The Wrong and the Certain Developer was always in The Right. After all, the Certain Developer followed the software development methodology pioneered by The Executive Three (President, VP, CTO): if the MAKE process works, then deploy the build to the customer site; if the customer notices any problems, deploy the previous build to their site.