Monday, December 5, 2011

Elegance Sucks

Around 1987 I got a job at at my first start-up (I believe it was my fourth job), at a company called CASI. If I remember correctly, CASI stood for Control Access Systems Incorporated. It was a start-up based in Boca Raton Florida, started by a fellow named Jim Baker who was previously in charge of IBM's internal controlled access systems group. When he heard IBM was planning on dissolving his group and vending out the job, Jim figured he would have a leg up on the competition because of his close ties to the decision makers at IBM, so he quit IBM after twenty years of service and founded CASI. When I started working there they had been in business a little over two years and had a healthy infusion of venture capital and were rapidly expanding. Even so, I had to force myself into the job, and took a big risk to do so.

The Director of Engineering at the time was John Hession. Hess had been an Engineering Manager for IBM at the Boca Raton site, in charge of a group that designed ICs (computer chips) and had been hired away by CASI. John was originally from New York, and we hit it off pretty well at my initial interview. Well, not exactly. I had a reputation in our small engineering community (the Boca Raton area in the 1980s) as a good coder, hard worker and a pain in the ass to work with. What I told John was that I did not want just another coding job, I could stay at Siemens for that. What I wanted was an opportunity to be an Engineering Manager. In my mind, the next logical stop on my way up the food chain. John wasn't too excited about that since he already had an Engineering Manager but he did need coders. In retrospect, John had one open spot available and I was not his first choice. He really wanted a guy named Mark because Mark was a hardware engineer and he was working at a company who made credit card terminals which CASI was planning on using as well. After my initial interview with John I came in about a week later and did my technical interview. I spoke with a fellow named Bill, another ex-IBMer and I spoke with Don (yet another ex-IBMer), the stereotypical gnarly Charlie whos back the company is usually founded on. Everything went well and as I was leaving I asked John when I might start. He said "how about two weeks from Monday" and in my youthful exuberance I shook his hand and promptly quit my job at Siemens and showed up to work "two weeks from Monday". The only problem was that when I showed up for work John was out of town and nobody knew anything about me. After several hours they finally got John on his hotel phone and handed the phone to me. I was feeling pretty squeamish by this time and realized I had not really gotten anything in writing from CASI up until this point so when John said "Hi Ken" I responded "Hi John" and we both enjoyed several moments of awkward silence before John said, "uh, Ken, usually you wait until you get an offer letter in the mail, I hadn't had time to formalize the offer yet as I have been quite busy and out of the town the last several weeks, I don't know what to tell you".

I am not a gifted genius so what came out of my mouth next was instinct, not the result of bravado, or planning. I said, "that's OK John. That's why you hired me right, to help you out in times like this. Don't worry about it - your handshake is good enough for me". Again, several moments of awkward silence (this time perhaps as much as 30 seconds). Finally John says "put Judy (the HR lady) back on the phone". I see her look at me while they are talking and when she hangs up she says, "sit right here, I'll be back in a minute". After like fifteen minutes the owner of the company, Jim Baker a slight bespectacled fellow in his mid to late forties, who always seemed to be walking around with a cup of coffee in his hands, comes out and introduces himself. We go into his office and he must have stared at me for like a solid two minutes without saying a word. When he did speak it was obvious he was perturbed. First, he asks about my time at IBM. How long, what group, who was my first line, second line, etc. He basically told me John had screwed up and that they had sent an offer out to another fellow at the same time John interviewed me. "You mean he still hasn't made up his mind yet", I asked incredulously. "looks like he didn't want the job as badly as I did" was the next thing out of my mouth. Jim Baker gave me a cold hard stare and stated matter-of-factly, "no I guess he didn't", at which point he asks me to wait outside his office.

I showed up ready to work at 7:45am that day. At around 3pm Judy the HR lady comes to get me from outside Jim's office and brings me back to her desk where she hands me the phone. Its John and I'll never forget what he said next (though its how he said it that I really remember); "Ken, (brief uneasy pause), I want to welcome you to CASI. You will be reporting to Bill initially. Judy will give you your paperwork to sign. I'll be back in town Thursday". This was the least reassuring first day on the job I have ever experienced. I purposely make sure my new hires are never treated like this. When they arrive I make sure their user accounts are set up, their hardware is running, their HR paperwork prepared. Hell, it took them three days to get me a computer and a cube at CASI.

When John got back Thursday it was obvious he was none too happy I was there, but he kept it civil and gave me a bunch of assignments which I completed successfully. Eventually he grew to trust me and would take me into his confidence (give me free tickets to the Yankee spring training games, take me to his favorite bar after work and such) and after about 6 months he made good on his promise and gave me my own group and a couple of good projects. Though I was now an Engineering Manager I had no engineers to manage because nobody at the company wanted to work for me so it was decided it would be best if I just hired new employees who had not already had the pleasure of working with me. John makes me hire Mark (the guy they wanted to hire rather than me, turns out the hold up was money) as my hardware engineer and he gives me an intern, a mechanical engineer named Joe, and he lets me hire a software programmer (though at about $20,000 below the going rate - about a 33% discount). I hired a fellow who was recommended to me from a friend at Ungermann Bass, named Adrian, who worked out well and eventually replaced me as the Engineering Manager, ultimately becoming the Director of Engineering after a company called Rusco bought CASI.

Now I have always been a bit of a hack in everything I do. I play golf, tennis, guitar and I have never taken a lesson. I enjoy playing but not practicing. Its my personality. When it comes to programming, I am what I like to think of as a special ops coder. Kind of like the US Marines. They will take any hill you order them too, just don't be too concerned about the collateral damage. My code can be a bit messy. It can be a bit unstructured and difficult to maintain. I acknowledge that, though usually its a result of the compressed time given to me on most of my projects. I usually get the difficult project, the shit work, and I have made a career out bringing them in on time. So when somebody complains that my code is ugly I don't take it too harshly, especially if I was given the impossible and a week to do it. So when it came time to manage my first project I was adamant we would do it right. As is so often the case when this type of decision is made, we quickly fell behind schedule.

Though John was technically my bosses boss, his hit and run micromanagement style effectively made him everyone's boss and so as soon as he hears my group has missed the first deadline we were given he summons me to his office. "What's the problem Ken" he demands. "I give you three resources and the best you can do is 0 for 1?". So I try to explain to John that we took longer in the design phase because we wanted to come up with a more elegant solution to the problem since we anticipated having to reuse the code extensively in the future. "Let me tell you something" John explains, "I have been in this business for over twenty years and one thing I can tell you is that elegance sucks". "I want that code delivered and debugged and working by the morning for this device for this environment and I don't give a shit if it works for anything else or anywhere else". Such is the way quality decisions were made back in the dark ages. After over thirty years in the business its not clear to me that things have changed much.

No comments: