Tuesday, February 26, 2013

What do I do as an IT Manager?

So you might be wondering what it's like to be the IT manager.  Maybe you're looking to change careers or you're a programmer, network administrator or PC repair person and you're wondering what it is that an IT manager does.  While the IT manager job description is very broad, there are certain aspects of the job that are the same across the board:

1. Even though it's a management position, it requires knowledge of a technology field.
2. The technology is always changing and an effective IT manager must keep up.
3. When everything is running smooth, you're almost invisible, when things break, everybody knows who you are.

I work for a small company (less than 50 people), so I'm more than just a manager.  I am in charge of the entire infrastructure of the company.  I establish the annual IT budget and prepare 5 year budget projections every year.  I'm involved in deciding what hardware we'll use.  Should we standardize on one platform?  Purchase warranties on hardware?  What software license plan should we use?

Our company has an inventory database that tracks both hardware and software.  Due to end of year capitalization requirements, our database also tracks purchases made.  I have a full-time network administrator on staff so he handles all the PC repairs, network troubleshooting, server configurations, security checks, firewall updates, tape backups, etc.  I still need to know what his job is and my company has documentation that he must update to help me do his functions if he calls in sick.

Currently I have only one programmer on staff.  I'm looking for another advanced C# programmer.  The list of enhancements authorized by the CEO and COO stands at about 32 items as of this writing.  It amounts to about 3,500 man-hours of programming in total.  This list grows at about 12 items per year, so we're sinking fast.  Hence the reason I'm looking for a second programmer.  If we get too far behind, I'm going to outsource some of it to a local programmer shop.

I do the software design work for our company.  Most of our software is my vision.  I collect ideas from a lot of people and I jot down notes every time someone comes by with a suggestion (or drops it in my email, sticky-note, hand-written sheet in my mail-box, etc.).  We typically have an enhancement prioritization meeting with the CEO, COO and others about twice a year (or sooner if I run out of authorized tasks).  The authorized enhancements must be designed and I have to provide an estimate. 

I also do some programming.  A little less than 50% of my time is available for this task.  I have to throw in my time whenever I can to move the development effort along.  Many of our current tasks will cut down on the manual labor it's taking our production people to enter data into the system and print reports.  The sooner this software is available, the more money we can save and the faster we can get our customer data in their hands.

I attend bi-weekly operations meetings.  These are only tentatively related to my department, but I have to keep an ear to what production issues are brought up and many times I offer solutions (and that folks, is why the enhancement wish list grows!).  Normally, I'm required to provide a rough estimate for each project on the list and sometimes it's just a wild guess, since I don't have a design created yet.  These man-hours are used for the justification phase of each project.  For enhancements that are going to make our operations more efficient, we need to know how much time will be saved and who it will save time for.  This can be used to compute the payback time (sometimes measured in years, mostly measured in months).  Our management tries to pick the best bang for the buck using this analysis.

Some enhancement requests come directly from customers.  When we acquire a new customer, we have technical people who teach the customer how to use the web site to access their information.  Our customer might be interested in seeing their data sliced or presented in a different manner.  We normally drop what we're doing and put priority on making that happen.

In addition to all the above, I am responsible for the functioning of our company's entire computer system.  I have to plan ahead for everything.  Sometimes I have to think on my feet.  What if the building burns down?  Do we have the customer data protected?  What about the source code to our software?  How would we re-construct our system if everything were lost in a flood or fire?  What if our site gets hacked?  Do we know if someone is trying to hack our network right now?  What if our network provider has a regional failure?  What if the electric company has a regional power outage?

Oh the stories I could tell....

But that will be the subject for a future posting...