When I was in high school and college, we had to do a lot of group projects and I always loathed them. In part, it was because I like working on things by myself. But it was also because I knew I would end up leading the group and probably doing more work than anyone else. That’s not to brag, it has more to do with the fact that I didn’t trust anyone else to do a good enough job. In the years since, I’ve learned two important things.
- People on your team are going to be better at things than you.
- People on your team are going to know things you don’t.
As I moved into professional life, I finally realized what all those group projects were trying to tell me. As an individual contributor or someone in a leadership position, you are almost always going to be working in a group setting. And that’s because groups are more effective at getting things done than a single human — except for all you mythical 10x engineers out there.
You may have heard some folks in IT say that “tech is easy, people are hard.” That was the theme for episode 101 of Day Two Cloud with Andrew Wertkin from BlueCat Networks. That’s not meant to belittle the technical side of things. The challenge of properly architecting a modern environment in the cloud or on-premises is not to be underrated. The point of the phrase is to illustrate that compared to working with people, even something as challenging as technical architecture is comparatively easy.
Developing and maintaining a solid operational environment should not be the job of any one individual or specialized group. At the application environment level, it takes a team of folks from multiple disciplines working together to identify all the factors that go into a stable and secure environment. It can’t just be cloud engineers, you also need to bring in SMEs from the world of security, application development, and networking. That’s sorta the idea behind DevOps isn’t it? Take folks who have specialized in different areas and smoosh them together in a single team in an effort to smooth out the workflow from application inception to deployment to maintenance.
That process works well at the application level, but there is a larger environment in which the application must live, sometimes referred to as a platform. There is going to be a raft of other applications all connecting to each other, and a shared services environment that provides things like DNS and IAM. That larger platform needs to be crafted with thought and input from a team of diverse specialties as well. That might take the form of a Cloud Center of Excellence, a dedicated Enterprise Architecture team, or increasingly from a dedicated internal platform team. This group helps set the standard for the application teams to follow and provide the shared services that other teams rely on.
As part of the episode, we discussed a report BlueCat commissioned to look at some of these challenges. The key takeaway is that many organizations do not feel they are successful in the cloud (75%) and the organizations who feel they are most successful also have a high level of collaboration across their teams. Of course, correlation does not imply causation, and further study is certainly warranted from an academic level. But I will say that other respected reports like the Annual State of DevOps report seems to corroborate the idea of a platform level team that also follows DevOps practices to support multiple application teams. It’s no surprise that these platform teams are composed of folks from the different specialties that make up a platform, and they aren’t afraid to collaborate and share ideas.
Whether you are a one-person platform team in an SMB or a individual contributor at a major organization, the principles of group work and collaboration remain valid. And it also turns out that working in a group setting makes the tech part easier. Team work makes the dream work indeed.