IT Role Spectrum
Someone noticed, when reviewing my work experience on LinkedIn, that over my tenure, I’ve had the opportunity to manage both IT infrastructure teams and IT software development teams. They posed the question of what are the differences between managing the two different teams. This question got me thinking. People that focus on infrastructure compared to software development do represent potentially opposite sides of the IT engineering spectrum. Further more, I believe there is a middle of that spectrum. There is a role for individuals that integrate disparate vendor software products on top of infrastructure to create a technical service provided back to the organization. I am not sure there is a universal name for this functional team of individuals, but I’ve heard them referred to as integration engineers. I have also had the opportunity to manage an integration engineering focused team as well.
Note: Check out Part 1 for an excellent interview with Jim Shelton, Executive Recruiter; Information Technology for MRI North Canton to get his perspective on the differences he sees in MidWest IT managers looking to hire infrastructure versus software development resources.
“IT Role Spectrum” or Differences between the Three Engineering Teams
The most striking differentiation between the three teams is the reliance on vendor technology versus custom built technology. At one end of the spectrum is the infrastructure team which is 100% reliant on vendor technology. I can’t imagine any MidWestern company in the present that is ordering individual PC components and assembling their own PCs or servers. Even when I was first introduced to corporate IT infrastructure back in the very early 1990s, companies were buying complete PC and server solutions from vendors, not building their own. At the complete other end of the spectrum is the software development team that will use a programming language that may involve some separately licensed third party components, but primarily is completely custom building technology with every detail of what is being built known to the team. Even software development third party components are designed to automate some aspect of the software development process that every piece of software needs, such as displaying information in a table or rendering an image. Since the components are destined for a team that demands customization and flexibility, the components by design are extremely flexible in nature with significant transparency on what functions they perform so the development team still is in complete control of the technology.
Thus you have what I am calling the “IT Role Spectrum”:
As you slide from the left to the right, your hardware focus shifts to a software focus and your vendor management/dependency goes from exceedingly high on the left to practically non-existent on the right. Thus, as an example, integration teams need a bit of knowledge and experience from both sides of the spectrum.
Managing Different IT Engineering Teams
Now, finally on to answering the original question of what are the differences in managing these teams? Let’s start from the left side of the spectrum:
Infrastructure Team Management
It has been awhile for me, but thinking back, the first thing that stands out is the likelihood that your team is made up of more junior level folks. Individuals that are starting out in their career based on tinkering at home with computers and networks and Internet connectivity, finding it interesting, and getting into the work force motivated by those interests. Or, if not their first IT job, possibly their second coming into an infrastructure team from a company help or service desk function. These individuals are that guy or gal that builds up their skill set providing technical assistance over the phone and wants to keep learning by becoming more hands on. Depending on the size of the organization, these may be formal cross department job transitions or a job change within an existing team. I am certain there are probably other motivations for individuals to want to get more hands on with technology, but the theme I recall is a tendency for aspiring IT engineers to want to continue to get more hands on with technology. Similarly, with low barriers to entry comes propensity to join, reach a learning plateau and then move into another role outside the team. Thus, turnover is a challenge for an infrastructure manager.
This tendency for more junior resources puts an additional burden on a manager. As a manager, you have probably been exposed to a number of business-isms that dictate patterns of service behavior. Examples such as the larger the office, the higher priority that should be applied to corresponding requests. Priority is kicked up another notch if the office has a door, or a couch, etc. Administrative assistants need additional priority above and beyond the “a level 4 ticket is a 2 day response and 5 day resolution SLA” standard. Additionally, certain individuals, regardless of rank or file, require a higher level of service because they have direct lines of communication to important people or your management. Thus, these people need high touch service even though the rules and SLAs don’t indicate that they should. Inquisitive junior resources need extra coaching from their manager to help put these business-isms into a context they can understand.
Additionally, infrastructure as a whole is constantly been squeezed for cost efficiencies. Infrastructure teams aren’t growing in size and service catalog in proportion to other areas of IT. Thus, more coaching and context setting for junior resources is needed to explain why the workload is increasing and yet the staffing support is not. Plus, infrastructure is ever increasingly viewed as the same as turning on a light switch. It is just expected to work. Corporate email systems are the perfect example of this. I bet if you get a hold of your contingency planning or disaster recovery strategy documentation, email is listed as not a mission critical service to restore. Customer systems come before most corporate systems. But anyone with infrastructure experience knows that massive panic and dooms day scenarios erupt when corporate email is offline for even a few minutes. Infrastructure is just expected to work all the time without fail.
This pressure to have constant 38 nines uptime for infrastructure services makes it challenging for a manager of an infrastructure team. The biggest hurdle I see for new managers is to choose between empowering team members to do the work or take on the most critical changes and service outages yourself. The later seems like the easiest. Based on your wealth of experience compared to your team members, just roll up your own sleeves and take over the hard stuff. That way, you can avoid the disaster that is the failed infrastructure service or maintenance change that results in blowing up something senior management can’t live without, even for two seconds. Sure, it seems risky to delegate to a more junior team member to implement that patch or update, thus just do it yourself and you know it will get done right. But is this really the best approach? [Look forward to more on this topic in Part 3 of this series]
Infrastructure Management Summary
- Junior resources = more management coaching/mentoring involvement
- Cost reductions = continually pressuring staff to do more with less and justify requests with data (ROI, etc.)
- Focus on up-time = little room for error, thus need to balance do it yourself with staff empowerment
Back to answering the original question of what are the differences in managing these teams? Let’s go to the right side of the spectrum:
Development Team Management
If one could imagine an IT team that is a juxtaposition of an infrastructure team it would be a development team. Instead of a heavy reliance on vendor products, you have a heavy reliance on internal knowledge. Instead of having to build up a knowledge base based on usage and vendor interaction (infrastructure), you have the knowledge built up from the development team along with the software and applications as they are being constructed. Instead of having to reverse engineer how the user base is interacting with the technology, you have some level of uses cases that were part of the design effort to build the applications and software so the user base can actually use it. Instead of “I don’t know, let me open a ticket with the vendor”, you have “I don’t know, let me look at the source code”. Instead of “we can’t do that until the vendor provides the next version next year”, you have “we can do that, should we fit that into the current development effort as a requirement?” Hopefully you are getting the picture of the differences in approach due to the total reliance and total lack of reliance on third party and/or vendor components within the technology between the infrastructure and development teams.
Thus, one of the first challenges you have is to manage the scope of work requests. Since you have no perceived vendor or external limitations, given enough time, your resources can develop anything. Thus, in managing a development team, you have to have some methodology to blend requirements, resources and time. Thus, you also have to mentor and coach your team to work within these parameters. If not, you may have a bunch of “hey, we can do that” adding up to over promising features that can’t be delivered within the time frame needed.
Another challenge is leveraging some mechanism or methodology to assist in prioritizing development requests. If business product owners have a direct line of communication to a development resource or team, they will most likely drive the prioritization. Thus, as a manager, you need to constantly coach your team to redirect requests back through some sort of prioritization process to ensure appropriate visibility. I’ll cover more on this concept in a future article, but lack of attention in this area will lead to problems in over architect-ed solutions as well as minimalistic point solutions that don’t scale to handle minor tweaks in the supported business process. All of these combine to frustrate your team since they aren’t seeing their work being received well by their end users.
A third is constantly looking for ways to get your staff to share what they are working on and how others can avoid reinventing the proverbial wheel by developing a solution to a need that has already been developed by another individual. Thus, a manager is challenged to constantly look for ways to get team members to collaborate and share what they are working on, etc. At the same time, balancing the value each individual contributor makes with their personal goals and professional aspirations. Finding a balance increases efficiency both in development and testing. It also reduces maintenance costs by not having to maintain fifteen different ways to do the same business function. Lastly, reaching that balance finds your team members more engaged and more positive about their overall work.
Development Management Summary
- Creative resources = need to be coached to drive all feature/requirement requests through the project methodology in order to avoid over promising
- Resources working on correct work = resources need to be coached to only work on feature/requirements that come out of a formal project or prioritization process
- Resources need to collaborate yet be recognized for individual achievements = need to manage resources to share what they are working on and use common solutions to problems rather than invent your own and at the same time, balance their individual achievements against the combined achievements of the team
Back to answering the original question of what are the differences in managing these teams? Let’s go to the middle of the spectrum:
Integration Team Management
In MidWestern companies with considerable vendor product deployments, there are teams that are not 100% infrastructure focused and not 100% pure software development focused which lands them somewhere in-between the two teams above. I’ve labeled this middle as “integration teams.” In managing these teams, a manager has to juggle the same challenges as both a development and infrastructure manager.
You may find yourself managing junior resources and thus have to invest time and energy in coaching and mentoring them on business-ism as well as drive junior team members to document more what they are doing as well as follow instructions from senior members in order to achieve consistency. Having “Bob” be the only one on the team that can install product X on a particular operating system is not scale-able. At the same time, having “Bob”, “Sally”, and “Joe” each install the same product on the same operation system three completely different ways makes for a propensity for defects or issues as well as a troubleshooting nightmare in the future when “Bob” needs to solve a problem on a system “Sally” originally installed. At the same time, a manager needs to divvy up the work so that junior resources get some challenging work rather than it all go to the senior members. Throw in deadlines and the risk of a junior resource “learning on the job” and you have quite a balancing act going on all the time.
You also have to manage requirements and feature requests with a similar level of vigor as in software development and keep your resources all on the same page with these requests. Sure, the vendor may have a feature called “auto-enables the coffee machine to start brewing when the first person comes into the office” but until the product is installed in your company’s environment and the feature is turned on a tested, there is no guarantee it is going to work as all stakeholders think it should work. Thus, a manager has to coach team members to be cautious about promising features without the appropriate caveats of testing prior, supportability, etc.
Another challenge is in managing creative team members. Similar to software developers, if a vendor feature doesn’t quite work as desired, an energetic resource might break out the vendors API* and start developing the desired functionality. Once promised and or deployed, now one has to maintain that customization through patches, fixes and version upgrades. What seemed like a great benefit to the team member has become a cost and maintenance nightmare. Thus, appropriately coaching resources to avoid making customization commitments without your full support is critical.
Integration Management Summary
- Junior resources = more management coaching/mentoring involvement, focus on consistency across multiple resources yet keep challenging each resource safely to keep all engaged
- Creative resources = need to be reminded to drive all feature/requirement requests through the project methodology in order to avoid over promising as well as include testing/verification of all features
- Resources working on correct work = resources need to be coached to only work on “approved” work in order to avoid driving up costs with maintaining custom enhancements
Hopefully, after reading this article, you have a greater appreciation for management nuances between the three teams I’ve presented along the “IT Role Spectrum”. Building on the points present in this article, part 3 in the series will offer some helpful tips aligned with each team’s unique management challenges. Look for part 3 to be available soon.
*API = An Application Programming Interface (API) is an interface implemented by a software program to enable its interaction with other software. It is similar to the way the user interface facilitates interaction between humans and computers.