Sunday 26 June 2011

Storm Lord

I didn't think I was going to make it to Vegas.

Even getting the new laptop proved to be an ordeal. I bought it online from a Sydney retailer and, in order to expedite the process, I said I would pick it up from the depot at the airport as soon as it arrived. The individual who designed the traffic infrastructure around Melbourne Airport was surely a Genius Programmer in a previous life: the only way to get to the airport  is via the Tullamarine Freeway, and if there's an accident on the road you're shit out of luck.

There was an accident Laptop Day; a jack-knifed semi trailer. I sat in traffic for three hours until I finally reached an exit, whereupon I turned around and went home.

I went again the next day and picked up the laptop. I spent the entire following day setting it up, and then I got on the plane and flew to Vegas. Amount of code I had to demonstrate to my new boss: zero. I did have plenty of reading for the flight, though: two expensive textbooks.

Jacob collected me at Vegas airport and dropped me at my hotel. I had a shower an we copped some lunch, and then we got to work.

Jacob was--and is--an ideas man. I don't mean that in a derogatory way: he has a list of patents as long as my arm and he has a genuine talent for finding new angles on the problems of the sector. Jacob can write code and will often built proof-of-concept prototypes or small routines to  speed up difficult tasks, but he is not an engineer or an architect, and he'll tell you so. That was what he needed me for.

It didn't matter that I couldn't demo anything yet, because Jacob had a new idea of his own. If it worked, it would massively reduce the memory footprint and increase the speed of the software in a particular process that has always been an industry bugbear. We spent most of the first week working through the maths of it. Could it work? What were the limitations? The concept was great, but would it scale?

While I was there I also got to sit in on Jacob's daily phonecalls from HQ in Sweden. Management told him that the development team was in chaos. They had a deadline in March (this was just prior to Christmas) and nobody even knew what work was going into it. The team leader stepped down. Blood was raining from the sky and the Frost Giants were waking from their sleep beneath the ice.

I suggested to Jacob that, if nobody knew what needed to go into the release, there shouldn't be a release. He  himself was still coming to grips with the organization and it spoke volumes about his predecessor that the team had no idea what they were supposed to be working on. There had to be a release; but management didn't know or care what was going to be in it. Jacob very sensibly set the bar low: some cleanup and a couple of small features.

As for the supposed 'chaos'... well, the team leader had, indeed, stepped down, but the rest of it was hysteria. Jacob told me that the team had been fine when he'd seen them, two weeks ago. He appointed a new team lead and set them to work. It would take ma about a year to fully understand how the team could seem calm and organized to Jacob while the rest of management saw them as a pack of insane chimpanzees flinging faeces around the office. Both views were correct.

The second week I was in Vegas, an engineer named Tyko flew in to join us. Tyko was young, although it wasn't obvious due to the ZZ Top beard he wore (in retrospect he was probably going more for a Storm Lord kind of a look). He was quiet and thoughtful and clearly very smart. Tyko was a dyed-in-the-wool hacker, but, judging by the books he was reading, he was building an excellent engineer's skillset as well. Jacob had selected Tyko to join us for a good reason.

Tyko wasn't much interested in Jacob's new idea, but we were all interested in improving the product. I grilled Tyko on the codebase and I got more than I bargained for.

The drivers didn't work, and hadn't been maintained in years. The main application service was a resource hog, and nobody quite understood how it worked. The core of the product was a nightmare kluged together out of seaweed and snot. The database was a set of flat files that were loaded up into STL containers without any concern for paging or caching, and these themselves were copied all over memory over and over again.

Into the bargain, Tyko didn't think much of the team. He named three good developers, but he claimed that the rest of the group were humps. The smartest guy on the team, in Tyko's opinion, was Åke--who had just turned in his notice and was going across to work for the competition. Tyko said that Åke was not a good engineer, but he was apparently a genius hacker who was brilliant at solving tough but discrete problems. The 'g' word again: without having met him or seen his code, I was glad that Åke was leaving.

Tyko's words boiled down to this: the product was a pile of shit, and the team didn't know what to do about it.

I said I would take a look at it if somebody would give me access to the source code. The competing product I'd built at ATBSoft was reviewing really well, usually ranking in the top 3 products of its kind, so I was confident that I knew what I was doing.

My hope then was that I could suggest some quick fixes that the team could then refine into a plan to fix the product. My job was to be Jacob's research adjutant; I wasn't really a part of the team and I didn't want to overstep myself... but  if the product was as bad as it sounded, the brilliant and fancy ideas that Jacob and I was supposed to be building for Jacob were worthless.

At the end of the week Jacob took me and Tyko back to the airport to catch our respective flights. Jacob wasn't sure exactly what would happen next: he was trying to sell his family home so he could pick up his things and relocate to Sweden, but the US housing bubble had burst and there were dozens of brand new, unoccupied places in his town going cheap. We'd meet again in Sweden the following January and really get things moving.

Once Jacob was gone, I walked Tyko to his departure gate. My flight wasn't for a couple of hours yet. Tyko looked at me and said: "It's not going to work out."

Tyko and I had been staying in the same hotel, and we'd gone drinking in the casinos a few times after dinner. Tyko, I think, was trying to set a new benchmark for Scandinavian impassivity, but he was a smart guy and I came to trust him. This was not what I had expected to hear from him.

"You mean Jacob's matrix ideas?"

"No, I don't think Jacob is going to work out. I think one skilled developer is all he has to bring to the table." I was a bit stunned. Jacob was somebody I admired and trusted him. I knew that he wasn't much of an engineer or a leader, but he was a very sharp predictor of technology and he knew the industry inside out and he was well-respected for it.

There was a strain of naked pessimism in Tyko's tone that I'd never heard before, but which I would become very familiar with over the coming months.

No comments:

Post a Comment