Joseph Choe

Sucker Punch

This is a story from over a decade ago, when I was but a junior developer fresh out of college.

I used to work for a software consultancy, a company that created custom software for small businesses around the area. I was put on a project for one such client that sold bolts of cloth in bulk and needed an inventory management system to replace their old one.

Yes, we were the vanguard of the dreaded Phoenix Project. As everyone knows, the longer you work for a company, the greater the chance of working on a Phoenix Project, based on the assumption that it’s easier to write something new than it is to fix the old ball of mud.

Almost as soon as I joined, the company opened another branch down in Costa Rica to outsource the development team. They had given us assurances that during times of lean economic crisis, the Costa Rica team would be the first to go.

But when you think about it for more than a second, who would you fire first? The developer that costs tens of thousands of dollars a year or one that costs only a couple thousand? Especially during an economic crisis.

Anyway, my supervisor hired a developer down in Costa Rica that was immediately put onto the project I was working on. He was billed as an incredibly intelligent guy, who had a lot of Microsoft certifications that I’m sure my supervisors found attractive, certifications that I had yet to attain.

I view certifications as a complete waste of time. I don’t want to be viewed as haughty or arrogant, but anyone who touts certifications as proof of a person’s skill at software development is simply asking for trouble.

In any case, the Costa Rican developer was working on the project for nearly a month when we found out that he wasn’t doing any work at all. He would simply sit at his desk in Costa Rica and browse the Internet all day. What a waste of an entire month!

Of course, it fell to me to take over his share of the work.

This project was riddled with problems from the very beginning. The company hadn’t allocated a ton of resources to this multi-million dollar project. We were but a team of two developers and zero QA staff. Yet we were expected to complete the project in six months what had taken a full team five years previously. Though the two of us were working as fast as we could, the six month deadline came and went.

The client became so impatient by all of the delays that the entire development staff, all two of us, had to be moved onsite so that they could talk to us in person, rather than through intermediaries.

That was a fun year.

In the end, the client sued the company. I couldn’t really blame them. They had been promised a complete product in six months and had already agreed to delay to one year, then one and a half years, then finally two years. At a certain point, they knew they weren’t getting what they paid for and were cutting their losses rather than sink more millions into the project.

There came a point when I was told not to go to work for a couple of days while the upper management sorted out the legal mess, i.e., beg the client not to sue.

So, I waited, and waited, and waited.

Then, on Friday the 13th, I was told to come to the office early in the morning. I expected the very worst. The project lead was a good friend of mine and veteran developer in the trenches. He had taught me a great deal about software development, and he was someone I admired and respected. We had spoken together during the awful days off, commiserated about our plight, complained about the upper management’s incompetence and their many blunders over the past two years. He was called into the supervisor’s office first, and when he came out he waved a sealed envelope forlornly.

He had been fired.

Then, it was my turn. I went into the office and was asked to sit. The supervisor told me in clear terms that he did not blame me for what had happened, since I was only a junior developer. I was allowed to keep my job.

I’m not really sure I felt relief. I had started working for the company thinking that it was a pretty lax and cool place with interesting and fun people. But by this point, I had dreaded coming into work. It was no longer the same place, especially since most of the people I had known only one or two years prior had already been fired or had left the company. Still, I had some time to figure things out for myself and maybe look for a new job.

The following Monday, I came into the office ready to work on the next project. Instead, I was called in to the supervisor’s office once more. Imagine my surprise when he told me that there was no work to be had, absolutely no work at all for me to work on.

I had been fired.

They had sucker punched me! I’m not altogether sure why they thought that doing a bait and switch like that was the right thing to do. Maybe they found out over the weekend that they didn’t have enough money to keep me. Maybe they wanted to space out the firings by a day or two, because heaven knows that firing two people before the weekend just sits badly in the stomach.

Keep in mind that all of the problems on the project stemmed not from the developers but from the bad decisions made by the upper management. They had allocated insufficient resources, and when they did allocate resources, they had misused them by hiring untrained and unskilled offshore hires. Yet not one of the upper management had been fired, only the workers doing the actual work of the company.

Let’s think about this critically with the benefit of a decade of hindsight. The contract between the software company and the cloth company detailed a multi-million dollar project. There were only two developers working on the project, whose annual salaries even today are significantly less than three hundred thousand dollars in total. Where was the rest of that money going?

This was yet another painful and memorable lesson that the company never has their employees’ best interests at heart. They have only their own.