Increasing growth and complexity brings about distinctive roles in an organization. Let's take a tour of an established information technology division's roles:
Business Analyst
The end users have an idea of what data they want to input and what they want either coming back or going out another end. A business analyst assists end users in defining exactly what those inputs and outputs are and strives to describe the interactions with completeness and consistency.
Infrastructure
The infrastructure team provides places for inputs to go to. It starts with physical machines that need to run in a temperature and humidity controlled environment. Sizing the data center and redundancy are primary concerns. And then they put a layer on top of all that, so that hardware resources can be divided or shared as they please.
Networking
A network engineer makes sure the places that inputs are going to can be gotten to. They logically divide the data centers into layers of connectivity. It's closely tied to security - the data center having it's own firewall, and each division of the data center having an internal segmentation firewall. Publicly exposed HTTP endpoints may also be placed behind a web application firewall. Certain network segments may be accessible via a VPN connection.
Developer
A developer writes instructions to take in input data and turn out output data. Usually transforming the data along the way. That's pretty difficult to do with a stream of 1's and 0's, so developers added layers of abstraction and automation and established shared standards. Layers upon layers, increasing productivity and efficiency. And then rewriting it all.
Operations
Events need to be triggered at certain times, in a certain order, at regular intervals - that's enterprise workflow. The operations team is known for having to make late night calls to support teams when processes fail to complete. They need to structure the workflow responsibly, so that the company isn't overwhelmed when multiple teams want their jobs running at exactly midnight and they all fail. There aren't too many enterprise workflow software suites out there - BMC's Control-M, Automic's UC4, IBM's Tivoli Workload Scheduler, and CA's Workload Automation are the big ones.
Update: In response to feedback I'd like to clarify that by "Operations" I mean a team of Operators and not the more general term "IT Operations" that, at best, has a nebulous definition.
DevOps
The DevOps team drops the developer's input/output instructions into the places that the infrastructure team set up. They set up build servers, integrate with source control, set up deployment scripts. As builds pass inspection they get promoted, eventually to production. It's like development, it's like operations, but it's not either.
Quality Assurance
A quality assurance analyst will get a series of inputs and ensure that the outputs are what is expected. They need to get inputs that cover all use cases, as well as inputs that are known to be invalid, to verify that the product they're testing delivers the proper outputs. It's important for the analyst to be able to judge what is appropriate coverage when testing to balance testing efficiency against the release changeset.
Security
Security has applications at all levels. There is physical security, for example meeting PCI (credit card processing) standards with a locked, 24/7 monitored data center. There are tools that are placed on the network so that the only inputs and outputs that happen are the ones that are there on purpose. There is additional application security and encryption standards, and then there are users. Users and social engineering traps are believed to only be combated by education. The security team focuses on risk management - danger level and probability - and work towards minimizing risk.
Data
All the data being put into IT needs to be saved for later retrieval. Saved data needs secured, backed up, made to be redundant, processed regularly, adjusted for performance, moved around, archived, extracted, transformed and loaded. It's a full time job.
Data Analytics
Who needs a visionary leader when you have predictive analytics? Applying statistics to large data sets can reveal previously unknown behavioral patterns (that you can profit from). This really makes academics irate because it doesn't prove causation. But that isn't a concern for the data analyst because randomized controlled trials are a) expensive and b) take too long.
User Support (Level 1)
With some tools, training and a knowledge-base, a first-responder user support team can address the majority of support incidents from users. With time, a user support technician develops relationships and becomes a go-to person for many users, who find that a personal understanding of their level of computer knowledge greatly enhances the efficiency of IT.
Application support
Internally and externally developed applications need maintained and supported.
Application support technicians, in comparison to level 1 user support, have greater permissions and working knowledge of specific applications. Should the technician be unable to solve an issue, they become the contact team member for the vendor (or development team) that can ultimately repair or extend the application.
Media Support and Production
In the case where the company wants to produce a video and stream it to dozens of conference rooms - Media Support and Production can handle this. Admittedly, it's likely less frequent of a request than producing a polished video or supporting a microphone system, but an exciting opportunity nonetheless. They have expensive equipment and they know how to use it.
UX designer
There are some smart people out there who will tell you that user experience means everything. A user experience (UX) designer could be employed anywhere in the company with great effect, but in terms of IT their focus is on a product's interface and workflow. If the product isn't a pleasure to use, it needs work. They focus on intuitive design, human-computer interactions, information architecture.
Designer
The only time aesthetics can be overlooked is when you plan for no one to ever see it. Graphic design is a joy to practice and challenging to master, and a regular task for the designer. The real challenge is getting the company to follow a consistent aesthetic strategy that can enforce brand identification, and produce assets for consumption across all forms of media.
Compliance (Legal, Accessibility)
Compliance can tell you what the boundaries of the law are, and whether or not you're outside of them. Frequently, they need the help of security to ensure compliance, but will cover many topics outside of security - privacy policies, service level agreement (SLA) contracts, acceptable use, user agreements, do-not-disclose (DND) contracts. There are grey areas, and in that case they stress that you show good intent. Do you ever see the legal disclaimers at the end of an email? Not enforceable, but show intent.
I don't want to miss mentioning accessibility. A lot of work goes into support for blind/low vision, deaf, amputees, paralyzed users and others - and those users' participation in the process is greatly appreciated. Compliance can be the driving force behind accessibility support.
Architecture
Responsible growth planning, exploitation of synergies and mapping business needs to IT solutions are the architect's bread and butter. They want a high level view of what is going on to ensure business needs are met while avoiding reinventing the wheel, having efforts duplicated, or starting something now that will be obsolete before it's finished. Depending on the scope of the architect, they may be tackling enterprise-wide problems like "the digital workplace" or looking to extend an existing solution to benefit a separate business unit.
Change Control
Change control is said to be like herding cats, at times. Disparate yet highly integrated teams need to communicate changes to avoid collisions and conflicts and Change Control establishes a structured venue for that to happen. Like many aspects of IT, this is a process for risk management. Has it been tested? Will there be downtime? Is there a communication plan after the change is made? We want to know what is happening in the organization ahead of time, why emergency changes take place, and how we can avoid them in the future.
Project manager
A project manager is another cat herder, who needs to track all of the moving parts of a big change and stay one step ahead to pull the stops that would otherwise halt progress. They like estimates, burn-downs, Scrums and time tracking software. With that high level view of progression comes an obligation to manage morale as well.
IT Manager
IT Management primarily looks after people - people who need tools, budgets, career progression, and to work with other people on the same team and with other teams. In some ways they're like an architect, one eye to the horizon and the other on today. Often they'll be the final say on how work is prioritized, and be able to tell you who needs help when.
Honorable mentions
- Language translation services - frequently outsourced or outside of IT, but kudos to those who translate resources files or JSON in the IDE.
- Product Owners - who are the final say in a Business Analyst's grey area, are welcome in the IT division, but have at least one foot firmly planted in the business side.
- Content Managers - They may as well be members of the IT department, setting up analytics and social media campaigns and having thorough knowledge of content management systems.
Thank You
I'd like to personally thank the people who fill these roles - Thank you. I apologize if I missed anyone, misrepresented your role or lumped your responsibilities in with someone else's.
Top comments (4)
Nice write up.
I think it would be interesting to differentiate between junior, senior and lead roles and where they can be (like in a developer team), same for mobile, frontend and backend developers.
As well, QA could be split into manual testers, automation testers and QA management.
Another important roles could be agile coaches/scrum master,although seems more a specialization of PM.
In my experience the simpler the layering between dev roles the better. I currently work in a multi tiered environment where we have developers ranging from 1-3, Senior and Leads. The difference between the first 3 roles is tiny if any at all, it's really just a way to mark there experience levels. I find the lead roles have the biggest contrast in responsibilities because i have worked with very active leads, who commit a lot of code and leads who basically act as middle managers and spend most of there time planning and managing expectations.
I don't concur with these definitions. In particular, all of these roles are part fo software development, thus they are all software developers. The role you label "Developer" is better labelled as "Programmer".
"Quality Assurance" is about total processing management, what you describe here is "Quality Control" or "Testing".
UX Designer/Designer are not solid distinctions. A UI consists of usability and aesthetics.
The separation between networking, and operations doesn't make a lot of sense. Any company organized that way is likely to have a crappy network. As would any company where the hardware (infrastrcuture) people are not a part of, or tightly bound to the operations team.
"Architect" is an artificial role. Admins and programmers must work together to come up with an architecture. Any company that has a specialist who is not on one of those teams likely has a garbage architecture.
You can have an IT division that doesn't develop any software at all and still require all of these roles outside of programming. I chose developer to identify programmers/engineers because the people who fill that roles most readily identify with the title "Developer": insights.stackoverflow.com/survey/...
Not sure what you mean about QA and total processing management.
You're right that UX Designer/Designer is vague distinction, but that's how they're known. A designer may choose a color scheme, a UX designer ensures that the use of color is meaningful.
I've gotten a good amount of feedback on Operations. My best guess is that it's understood as the more general term that includes anything that is not application development and support. I've never met a network engineer or systems administrator who refers to what they do as Operations. I have seen Network+Infrastructure groups with a separate Security group, Network+Security groups with a separate Infrastructure group. How I distinguish the Operations team is as a group of Operators (who manage and monitor scheduled jobs, and do not do networking, infrastructure nor security).
I wouldn't agree that Architect is "artificial". Individual teams aren't expected to have that enterprise-wide viewpoint. For an IT Division that does not believe in in-house development, an architect may ensure that vendor products aren't functionally overlapping or point out vendors that have solutions at a marginal increase in cost vs a new vendor contract.
As a closing note: there is bound to be a serious amount of variation, role compression and/or segmentation in any particular IT division. What's important is an organizational structure that works to the benefit of the company and it's people.