My shortest job on record is four days, and no, I wasn't working a contract, either. I was fired, which was great for me, because I would've quit very soon after, and this way, I ended up getting two weeks' severance to boot. What job would be so horrible as that I would be so happy to be fired inside of a week?
I decided to take up with KiloByte because it was a very small website company, only about a dozen or so people, and they had an interesting financial position that made them fairly "safe" (ie. they weren't going to be out on the streets lacking VC money in a year or two). I started on a Tuesday, because it was the last day of the month, and if I started that day, I'd be eligible for medical insurance the next day, the first of the month.
The experience was fairly pathetic from the beginning.
I talked to the VP of Engineering about getting a development environment set up, and he gave me a bunch of directions. None of them actually worked. I would find out three days later that nobody had ever installed on the OS he told me to use; he wanted me to try it out, because they were thinking of moving to it. This wasn't communicated to me.
There weren't any significant documents indicating how a person would set up a development environment top-to-bottom. I found a document someone had put together for getting the website component working, but none for creating local data servers for testing the backend. Of course, the VP of Engineering had wanted me to do some development on the backend systems.
Thursday morning, there was an email to engineering from one of the product managers, saying we needed to update the "count" of items our website claimed to have. In several places around the site, the company was bragging how it had "500,000+" items, and we'd gotten up to 580,000+, so the PM wanted us to update it. I saw no email traffic back from any engineers, but I figured maybe someone had just done it. But I also saw no changes being committed to the software to indicate anyone had actually done the work.
I had only barely been able to get the website development environment set up Thursday afternoon. For me, this was exceedingly frustrating; in most of the companies I've worked for, I've actually fixed a bug or two by the end of the week. I committed bugfix changes to the code at Hotelecom on the second day I was there, and at Mike Corp, later on, I'd set the record at four days.
The development environment, even once I got it set up, was insanely braindead. If you don't know anything about software development, involving source control and the like, just skip to the next paragraph. Otherwise, read on and be baffled. In order to actually *test* a change you've made to the website code, you had to commit the change to source control. As a result, anytime you fixed a typo in your code (which you wouldn't notice until you tested the change and found it broken), you had to commit the change and add a comment. Most comments, then, became something stupid, like "x", or "typo". Completely meaningless. And, of course, these changes were coming fast and furious, because people usually like to test their code as they develop. Engineers would get emails about these code changes, but of course, nobody would actually read them, because 90% of the time, they were completely content free. Unfortunately, it also meant that when a significant change was made, the comment was *still* completely content-free, because the work had been previous checked in over a period of time and nobody cared to write a nice, detailed entry after having entered the comment "x" forty times that same day.
Friday, the PM sent out another email asking if anyone had made the change he'd requested, and of course, nobody replied. Having gotten the website development environment "working", I dove in and looked for the content. I was able to do a fairly simple search-and-replace on the number, although I was a little dismayed that the number, although it was present everywhere, was actually manually entered -- and not a dynamic replacement from a single location (which would mean a change to the number would only take one change in one place, and not require a person to change the number in four different places scattered around the website).
I was significantly peeved. This development environment was a disaster. The purpose and value of source control was completely lost because of their insane model. The code was fairly scattered and ill-documented. The release process was fairly messed up, too, without a significant fallback plan (in case a release failed). I've bitched and moan unconstructively a lot in my time, and I've always been told it's not helpful. So I made a point not to do it this time, especially since it'd only been four days. I emailed the VP of Engineering to see if he had some time that we could meet and talk on Monday, giving me the weekend to try to come up with a list of problems, and a list of possible solutions.
He called me in, asked me what I wanted to talk about. I said I had some concerns, but wanted the weekend to put together some solutions before talking about them. He insisted I tell him then and there what was wrong. I finally caved. "I've never seen a bigger festering pile of shit codebase in my life." He was pretty shocked. I told him I've never worked for a company where I couldn't get a functioning development environment working inside of the first two days. At that point, while I had the web functions working, I was still no closer to understanding how I would set up a development version of the backend servers. I told him I've never seen a company that required people to commit changes in order to test them. He countered by saying that it meant that the company had a record of every change ever made. I counter-countered by saying that those changes were meaningless, since most of them were simply typo changes, and not useful functionality, and that the requirement meant that nobody was putting in any effort to make commit messages that were worthwhile. Finding points in the trail where the code is actually stable also became nearly impossible.
We went back and forth, and it was obvious to me he wasn't really getting it. He set up this system, it turns out, and was obviously one of those people who would never be convinced he was wrong. (I note that while I often claim to know the right way to do things, I always offer to be convinced otherwise -- but I need people to prove to me why, and I try to never be completely inflexible in my positions) I went back to working on trying to get things figured out.
On my way out of the office that night, I had to walk past the CEO's office. He called me in, asked how my first week was. I told him the truth. I had a sense he had heard, or at least knew, about my conversation with the VP. I reiterated all the issues I had with the system. When I told him about my problem with source control, he confided in me that he had a "secret way" of avoiding that issue. This, of course, appalled me. Not that the CEO was doing code (I've known quite a few CEOs perfectly capable of writing code), but that the CEO obviously realized the development environment was flawed, but instead of actually getting his VP to fix it, or even sharing his secret with the engineers, he simply let the broken model continue.
I told him I wanted to try to come up with some solutions over the weekend. He told me, "If you want to take up release engineering here as well, then we got a bargain when we hired you." Before I left, he said, "Just promise me, don't quit."
I felt pretty good that weekend. I put in a few hours trying to come up with the exact issues I'd come across, and put together a list of solutions we could implement to fix things.
Monday morning, I crossed the CEO's office on the way to my desk. He called me in, and the VP of Engineering was there, leaning on a filing cabinet. "We've gone ahead and terminated your employment. The paperwork isn't here yet, but you can go home." I was simultaneously shocked and relieved. I'd never been fire before, but I'm so glad it happened.
My guess is that the VP and CEO talked after I left the previous Friday. My guess is that the VP made some case that he could never work with me. I'd like to think it might've been some kind of "him or me" argument, because otherwise the CEO's sudden change of heart becomes even more disgusting.
If I'd stayed, I realized that afternoon, the VP would never work with me. I'd be in constant conflict with his "regime", and obviously not in a position to override his decisions. I'd quit within a month, because there's no way I'd put up with that kind of stubborn leadership. My opinion of the CEO has fallen through the floor as well, because I find it hard to take someone seriously if they move from "I'm so happy we hired you, don't quit" to "we've gone ahead and fired you" over a weekend, it means they say things without any honor to back it up; how could I take this man at his word, when his word has proven meaningless?
It was the first time I'd been fired. I got two weeks' severance, plus the five days of regular pay (they had to count that Monday, because they didn't get the paperwork together), and only did four days of... nothing productive. Although the frustration I ended up with that week, I feel I was owed more.
A week later, the text changes I'd made, on the PM's urgent request, had still not been released to the website. Obviously, the VP of Engineering was paying no heed to his own internal PMs about the urgency of something as simple as a text change -- or perhaps his broken development environment prevented him from reacting fast enough. It would actually be on the order of three weeks before that simple text change would make its way to production -- a delay no startup should accept for something so trivial. Most websites these days can turn out updates once or twice a day if they needed to.
As a curious follow-up, a year after I'd been fired, KiloByte relaunched their website, shifting their technology towards a slightly different market, which suspiciously mirrored some of the strategic comments I'd made while I was there. Also interesting, with the relaunched website, the VP was mysteriously missing from the management page -- and another person appeared to have the VP Engineering position. I wonder if the issues I raised finally caught up to him...
Comments (1)
Buddy, at least they HAD subversion. I was fired after three weeks from a place that didn't use it. I was almost fired for 'wasting time' one day setting it up. Instead, 5 guys edited the same files as root over ssh on a co-located Linux box. The code had no comments. There was no documentation. There was no MVC. The application framework was custom written in 1996 by the CTO, and was a bad approximation of every free framework since, with none of the benefits and all of the downsides. In addition, zero 'ramp-up' time was allowed, as the CTO believed perl was self documenting and anyone competent could look at his code and instantly understand it. As a result simple assignments could take all day. The CTO would come by my desk the entire first week and ask me what efficiency level I was operating at.
Assignments were handed out with the method of solving them pre-determined, and it was usually a backwards and half-ass. If you didn't finish a ticket within a few hours, you were threatened with termination. Verbal abuse was constant.
The most annoying thing was that the very person abusing you was the one killing your productivity. And you couldn't criticize the framework or lack of development environment, as he believed himself infallible and said things like, "every line of code I ever wrote for this thing is perfect."
Oh yeah, this was THIS YEAR.
Posted by Anonymous | June 4, 2007 8:10 PM
Posted on June 4, 2007 20:10