Thursday, October 25, 2007

Software Development Manager

For almost a year, now, I've been titled "Software Development Manager" at my job. Now that I've been talking with other companies, I'm really at a loss as far as what this means.

The company I work for is in the business that some mechanical engineers dream of. Huge cranes and ships with 100,000HP that have 3 foot diameter pistons. I was hired as the 6th person to a new group that did systems research. We were all Computer and Electrical Engineers. But, since I had some experience with software, they had me write a few apps in VB. After I cleaned up the vomit, I wrote them in VB, then C++, then Python. When I asked for help when we got a few more projects, we hired a few more people. I needed business cards. My boss said "you can be VP of software if you want". I told him that my position is not fitting for that title. He said "ok, how about Software Development Manager"? I agreed.

Right away, I got into developing our software base. I bought 15 books for the library (mainly O'Reilly Python, C#, and C++ books). I upgraded all servers to Windows 2003, and got Visual Studio 2005 copies for developers. No one wanted Linux at all...even our customers...even though it's cheaper...so I set up two linux servers to do all of the SVN, Bugzilla, Wiki, external support, FTP, and cron jobs we needed. Then I started to run bi-weekly software meetings to complement our specific project meetings that happened every Wednesday. I wanted to make sure we were all working together, sharing our code base, and working on similar projects together and not against each other. Our firmware become componentized (Dynamic C for Rabbits). We collaborated on Windows service installation and remote debugging. We learned Embedded Windows, ASP, and AJAX as a group. Although we're all working on different projects, we're doing it with respect to everyone else.

So I don't really have to manage anyone. I've been on the hunt to understand what a manager actually does. They develop their employees and let them grow. But I spend most of my time writing code and figuring out new technologies...and projects that will make us money and gain some more patents. We already have one in the last few months...how about this other idea I had, boss?

Anyway. I started concentrating on the "software development" and the "development manager" more so than the "software manager" ideal. So, I'm developing software. One of two goals is checked. It's great because people still like it because it works efficiently. It's documented, customers like our APIs, etc etc. The "development manager" seems also to be my role. Whenever I install some new service, everyone gets excited like it's a new Nintendo, and it's Christmas 1986. But, most important to my personal development at this position, I've learned that a manager really doesn't do anything other than direct. The best directors are the ones who get a good script, wrap their head around their own vision, and convince actors to do what they're thinking. When they get in there and say "you're hand is in the wrong spot...say it louder...don't smirk when you move your legs...lose some weight" etc etc...they lose it and it becomes Hollywood garbage.

So, too, must a "development manager" find tools and lay groundwork for "software development" to take place more efficiently, with more grace and with more entertainment value...it's not really work...it's what you like to do!

No comments: