Forced Management

We have a quick turn around release coming up next month. The project manager provided the high level schedule to everybody. That was a good move. I am looking out for myself. The scheduled time for development is coming up quickly. But I had not seen any preparation done for this task.

The work had not been divided and assigned to developers. The plan for configuration management of the changes had not been hashed out yet. I gave my team lead some time. But nothing was going down. So at a manager's tech meeting, I started asking some questions.

I asked one of the leads how the configuration management was going to be done. We figured that out during the meeting. Then I asked my team lead when he was going to do the assignments. He said it was already done. I told him that nobody on the team knew what their assignments were. Essentially I informed him and the group that nothing was done. We also hashed out the assignments during this meeting. The meeting ran an hour longer than normal. But we got the essential decisions for the next release done.

Should I have waited until the last minute, allowing none of these things to get done? No way. Then me and the team would have been working nights and weekends. Should I have taken the team leads aside individually and told them they needed to get their act together? Perhaps. I could have made the decisions get done. But then I would end up having to do this for every release. I figure I can embarrass the guys a bit by calling them out in a meeting. Perhaps the next time they will be proactive without prodding from me. Maybe not. But if the next release comes around and this work has not been done, I will have to get even more forceful. I will have to call my own special meeting with the big bosses and inform them that some people are not doing their jobs.

Yes I might be a pain. But this is pain with a purpose. I want to make sure planning is done before it is too late and I suffer. The rank and file developers love me because I am looking out for myself and them. The responsible team leads don't like getting called out. But I make it easy. Do your job and I won't bother you.

Grunt Work

A few weeks ago I got an e-mail from a manager in my company. He wanted to know the status of a printer he bought for our office. I heard the thing was dead. So that is what I reported to the manager. This seems to infuriate him as he thought the thing had been in use during the past year. Now it was my job to get the thing running.

Here is the problem. I am the senior guy on my project. That means I deal with a lot of emergencies from the customer. This keep me at work for long hours every day. How can I make time to get a broke down printer working? I like to apply balance to everything. And I also count the costs of choosing different tasks over each other. After a while I was spending too much time explaining why the printer was still not working to the manager. Thus I made it a priority to fix it.

I went to the local computer store to get some parts. Then I found some documentation online on how to setup and debug the printer. Doing these chores meant that I had to skip some meetings where I normally provide all the information. Let's just say those meetings did not go well today. I had a good excuse though. A high level manager wanted his this printer up and running. Finding the printers drivers was not that hard. It was tricky to figure out which things I needed to rip out of the printer to ensure prints went through fine. This is just part of the drudgery of being a developer. People assume you can do sys admin or help desk work. Since I am technical, at least I can. The printer is printing fine now.

Career Programmer

Got a gift card from Barnes and Nobles book store. So I decided to buy at least one technical book. It was The Career Programmer by Christopher Duncan. This one is not technically a technical book. It tries to help you navigate the politics and such of software development.

I must confess that after reading the first 4 chapters of this book, I was bored as hell. But I invested the cash to buy the book. I needed to get something out of it. Then it hit me. I would start reading the chapters from the end of the book toward the beginning. And this is working for me now. It might get boring again when I get to the middle of the book.

The themes I have read so far are simple. Understand that companies are about business. If you can arrange to make your boss look good, and further your goals as well, you win. I will fill you in when I complete reading of this beast. Right now I cannot recommend that you purchase this book. There has to be better material out there.

True Understanding

Recently the customers informed us that their most important problem had not been fixed. My manager called me to appease the customer. I took a peek in the production environment. Yes the data was messed up. I guess the last fix did not do the job.

My boss was worried that the customer was going to continually think that the problem was unresolved. So he had me meet with the customer to define and document exactly what they wanted. I speak their language. So it was clear to me. I just wrote down all the unwritten and unsaid assumptions that I comprehended.

In the end, I came up with a 4 page document. We met to ensure this document was correct and complete. My boss asked that the customer and I agree on any unusual boundary cases. So I discussed and documented what my data correction script would do if it ran into unexpected scenarios. The result was still 4 pages of documentation.

Now most of this documentation was just regurgitating the basic information that I and the customer know. The reason for this document was that none of the managers or executives know the basics. The testers for the most part do not have a strong understanding of the basics either. I was reminded of this as we entered testing of my script. However they did get a solid tester on the scene. He just needed to learn some of the business rules before he could make heads or tails of the testing required. Our team loaned him a developer to assist him, but this guy needed more help to get through all his tests. Luckily this was a high priority task. So I was directed to make time for it.