Saturday, 23 February 2013

The Perils of Application Development. Part 2: Building the new team.


Some six months after I had moved into application development I, essentially, had a clean slate. The two who had originally developed the product were gone: one quit; one I fired. I had no database manager and my frontend team had been reduced to one woman on maternity leave and one mid-level programmer who had promised to deliver a bug-free database loading program. I wrote bug-free code, so I thought it reasonable to expect the same from other programmers. You define the goals of a routine and make sure that those goals are achieved and nothing else. You do it by limiting the scope of your variables and procedures to make certain that there are no unexpected side effects.  Yes, it is possible to make a careless mistake, but that’s what testing is for—to catch those mistakes before the code is put into production. I never understood the policy of throwing hastily written code into production mode and expecting the paying users to do the debugging for you. Well, that might work for Microsoft, but it didn’t work for me in my little shop. The six-week bug-free special was not as bug-free as one would hope, and, as debugging continued, the six weeks turned into six months.

Meanwhile, I had a team to assemble. First, I hired a database manager. I found a woman with twenty years’ experience as a database developer and manager. In the interview she seemed well-grounded and professional—just what I wanted. I was nervous, though, about her salary expectations, thinking that with her background she’d be asking for a minimum of $75,000 and possibly pushing into the $80,000 range. I could have jumped for joy when she said firmly that she could not possibly consider anything less than $50,000. I kept a poker face however, and told her gravely that I thought we might be able to meet that.

The programming position was more difficult to fill in that there were simply so many applicants who thought that they qualified. You can’t fake data management experience, but, when it comes to writing code, anyone who put two lines of code together without crashing the system thought they were more than qualified. I received over two hundred applications. On my first pass, I set aside all those who clearly did not meet the basic qualifications in my ad. Those who said, in effect, “I know I’m not qualified, but I learn fast.” That doesn’t work when you have more than a hundred applicants who do meet the basic qualifications. I then winnowed out all the ones with glaring spelling and grammatical errors from the remainder; a programmer has to pay attention to details. If he can’t be bothered to spell-check his resume, then I don’t want him on my team. That still left about 30 that I carefully reviewed. Those I sorted into two piles: those I was definitely interested in talking to, and those I would take a second look at. I gave the ones in the first pile to the personnel manager and asked her to arrange for interviews.

Greg, who headed the CD development team, was interested as he was keeping his eye open for possible talent as well. I listened to his comments and considered them, but I kept in mind that it was my team I was building, not his. One of the people I interviewed was a mathematician from China. However, his accent was so thick that I could not understand a word he said. Besides I was more interested in finding someone with more practical than theoretical experience. Greg gave me a hard time about my rejection of that candidate, pointing out that he had a PhD in math and would be able to develop algorithms that could transform our product. Maybe he could, but how could I work with someone I could not communicate with? One candidate talked himself out of a position by stating up front that he expected to be earning $75,000 after six months with the company. Mid-level programmers, like him, were earning in the $40,000 - $50,000 range at the time. As a senior programmer and project manager I wasn’t making $75,000.

I finally narrowed my choice down to two people. One was a recent emigrant from Russia with the equivalent of a Master’s degree in engineering and had worked for the St. Petersburg water works for a couple of years. Her English was very clear and understandable and she had just completed a six month course in mid-level programming, especially in the languages I was looking for: FoxPro and C.  She presented as a composed professional. The other also was just completing a six month course similar to the one the Russian woman had followed. This one’s prior experience was working in a car dealership, so she had some familiarity with the material in our catalogues, giving her a leg up on other similarly qualified candidates. I talked the situation over with Greg who suggested that I hire both of them on an initial three-month trial basis at a much lower initial salary than someone with their experience warranted, promising a salary review at the conclusion of a successful three months. It turned out that both were winners and were kept on with a substantial salary boast at the end of the three months.

When my other programmer returned from maternity leave, my team was complete. The fact that I had one male and four women working for me caused comments in other quarters about “Ron’s harem,” but they were all exceptional programmers. I set up a routine with a regular staff meeting every Friday morning at which I supplied muffins and coffee. I would pass on any news or directions I had and then we’d do a round table, reviewing each person’s progress and discussing any problems they had encountered. I have worked in some groups where competition between employees made such meetings unworkable, but, with the group I had, it worked brilliantly. Everyone in the group was anxious to help any other member experiencing difficulties. I would add a theme to each meeting, such as bringing in the personnel director to speak about the company’s vacation policies. One day I unexpectantly discovered that three of them spoke fluent Russian; my database manager was Polish and the woman who had been on maternity leave was from Bulgaria. So, now they could bond through jokes and comments that were private to their group. They planned in their secret language to surprise me with a Russian-style cake on my birthday. (Eastern European pastries have much less sugar content than their North American counterparts; the cake was wonderful.)

One thing I did not tolerate was my lone male’s constant harping on the subject of the CD development group. Greg had expanded his group to five people. They acted as a group, always together. They arrived together in the mornings, often not until 11:00 am and left together, rarely staying past 2:00 pm. They spent their time closeted together in an office apparently playing games. Their showed distain and contempt for everyone else in the company. My approach was to let them hang themselves while my group carried themselves like professionals and delivered results. Complaining about them was not professional. I would listen patiently to my employee, but was careful to neither agree nor disagree; nor to give him any encouragement.

A problem with my approach was that Greg was being fed a constant stream of gossip about the fact that members of my team were complaining about him. He asked me to meet with him and told me he wanted such talk stopped. I assured him that it was only one disgruntled employee and that I would speak to him. It did no good; the complaining and the gossip continued and Greg held me responsible. I was not going to stoop to playing games with him. I told him I had spoken to the person involved and that was as far as my involvement was going to go and suggested that he should speak to his source about getting her facts straight about who was saying what. We left it at that. But, the divide between the two groups was apparent and when Greg’s group delivered their long-promised CD, I silently cheered when Peter, the president, furiously complained that it didn’t work and that the client was livid.

Next: The End

No comments:

Post a Comment