Wednesday 13 July 2011

Paintball

There were some new faces on the team at Fjord systems: Lars, Srinith and Sven. Lars was quiet and earnest. Sven was a punk rock hacker just out of high school. Srinith was the only one on the entire team who gave any feedback on my documents or my code. The code looked really good, he said, but he asked me to justify some of the most basic assumptions that went into the design. I was pleased that somebody was thinking about it and I was just as pleased that I was able explain them to his obvioussatisfaction: a young, talented coming into the project without any preconceived ideas about how it should work.

Sven was now in my chair in the office with Tyko (formerly seat of Åke the Genius), so I was shunted to a spare desk in a room with some marketing guys. That was fine; my main business would be conducted in the conference room, which I requested for an hour every day.

Finding the correct hour was a problem. Not because the room was booked, but because the team took the notion of 'flexible hours' to extremes. We couldn't start before 10:30 because that was the earliest some of the team members would arrive. We had to wrap the meetings up by 1:001, because that was when some members liked to go to the gym. And so on. Nobody was willing to budge.

I got on with it. I presented the essays I had written, which had been available to everyone for feedback for months. It got the usual cool reception, but everybody was nodding and agreeing and nobody was shaking their head. The main thing that bothered me was that the senior guys... Anders and his crew... were not attending most of the meetings. They were working hard on the current release, they said, which was indeed due out right about then. I remembered Tyko's explanation that they were the only ones who actually did any work, so I left them to it.

I didn't see or hear much from Tyko at all, but someobody reported to me that he'd had a look at the infrastructure I had written and declared it to be 'quite good'. "That's great," I said. "Pike, you don't understand. That's huge. Tyko never says anything good about anybody's code." I remembered Tyko's admiration for Åke the Genius and decided that I would let the matter drop.

I started to present the code I had written formally; showing how everything worked and how the pieces would fit together. The version that Anders was working on shipped and they started to join the meetings in time for me to demonstrate how the system would run, end to end. The code was there for anybody who wanted to play with it; I wanted to keep no secrets.

There was no dissent, so it was time to divvy up work for the functionality build-out; to design the components that would sit inside the framework. I had laid out some guidelines for this, but I wanted Anders to step up and do this part: it was his team and he had the most experience with the existing code, which we would be cannibalizing for this purpose. He'd said he was in, but I wanted to see him put his keyboard where his mouth was. I wanted to let him show that he was indeed the team lead.

These meetings went as before. Nobody contributed much and I found myself working through fresh designs on the fly, on the whiteboard. Anders would say nothing at all. But once I called an end to the meetings, the room would suddenly fill with discussion in Swedish. I was the only person in the room who could not speak the language, and the Swedes had actively discouraged me from trying to learn any.

Chucky arrived with his wife, and they were set up in a hotel suite a few doors from mine. I had companions to dine with now, people to hang out with on the weekend. I was excited. Chucky and I conducted extra sessions for the team so that they could learn about how the drivers would work and discuss what they would do. It was decided, as expected, that I would do the integration with the drivers. That was fine by me: it was delicate work and I'd done it before.

I met with the UI team. They had been building some kind of a fancy framework upon which they were going to build a brand new interface for 'my' version of the product. They'd been working on it for years and did not at that point have a single line of code in production. I asked for a demonstration of what they had been building and they showed me a form with a single, very beautifully-rendered button on it.

I asked Anders if we could count on them to deliver a full-blown UI and he shrugged. Nobody paid attention to the the UI team and they had no idea as to how capable they were or were not. As far as I could tell, they'd spent years inventing a button that I could have had in 15 seconds using the existing Microsoft framework. I decided that if the worst happened, we could whip up a UI quickly, so long as the team understood my messaging system. So I devoted some time to that.

Meanwhile, Anders and his cronies began to have closed door meetings. After a few of these they called me into one of these and told me that they wanted to offer me an 'alternative design' to the one I had been working on for six months and had now spent weeks bringing the team up to speed on. They'd put probably three hours of discussion into it, and they had no diagrams or documents.

This 'alternative design' was a giant black box that looked exactly like the old design, which Anders had earlier told me that he hated. When I asked how he would solve the specific problems I had been trying to address with the redesign he waved his fingers dismissively. "Oh, we'll just do some special magic," he said. Every time I raised a specific problem, he offered Special Magic as a solution.

What he meant was, he and his trio would hack it all together in way that would lead to exactly the same disaster I was now trying to fix. I argued as politely as I could, and then a bit more savagely when it was clear that they weren't listening. In the end they had to concede that my design offered solutions and theirs did not. I took Anders out for lunch to try to smooth over any hurt feelings and I believed that I managed to do so.

Chucky got to see all of this firsthand. "I just work on the drivers," he said. "And I'm happy to stay in my box... but I'm glad it's going to be you who integrates them. These guys are idiots."
"They're smart guys, they're just not used to being able to..."
"Pike, they're idiots. This is going to end badly."

Chucky went back home to the States to work on the drivers. My stress levels were high. I couldn't sleep. I was bored and lonely, shut up in the hotel room by myself, but I found that most nights of the week there was some crew from the office (seldom from the development team and never from Anders' crew) going out for drinks. I went with every chance I had. Suddenly I was drinking as much or more than I had been during my last year at ATB Software.

We started to nail down some designs for the new components. We assigned some of the work to the humps that Tyko had warned me about and found that they actually delivered some good ideas. Anders and his guys didn't do a damn thing, as far as I could see. Tyko was wrapped up in some research projects of his own that were supposedly far too technical for anybody else to look at. Nobody wanted to talk about Jacob, working by himself in Vegas.

Sven had become very interested in the infrastructure I'd written. I wanted somebody to help me maintain it as it came under strain from having real components integrated with it, so I spent a bit of time training him up. Then one day he came to work one day with a new haircut. The same haircut that I was wearing. I had an apprentice.

Sven reported some bugs in the communication system that I had written. I looked into them, knowing that the comms layer needed work, but I found flaws in Sven's code that fixed all of the bugs I could duplicate with my testbed apps. Sven claimed there will still problems, and I was sure he was right... but I was running out of time. I would have to sort them out when I got home.

Somebody organized a paintball session for the final weekend of my trip. I showed up hung over and ragged, but I figured that I had to. Sven demanded to be on my team, but I was finally running out of patience with him. "Sven, you don't have to always be on my team."
"Dude, it's paintball, and you used to be in the Special Forces."
Again with the special forces. Where was this coming from? "Sven, I was never in the Special Forces." "Well, you know. The Marine Corps."


"Sven, I'm from Australia. We don't have marines. I was never in the army."

He went to the other team, but it was clear that he didn't believe me.

Hangover paintball was absolutely no fun at all. I came out of it exhausted and covered in bruises. In fact, it felt like just another day at the office, chasing people around and dodging pot shots fired from under cover. But that was okay.

I was done in Sweden for the moment, and I was about to take four weeks of holiday. The team had all agreed to their various tasks and we had the roadmap all sorted out, right up to the release date. The worst was behind me, I thought. Now we just had to put our heads down and work.

No comments:

Post a Comment