Senior Developers, Network Admins, Virtualization Architect, Security folks, and more – in the world of skilled labor in IT there sometimes seem to be more common boxes we like to place people in than most other fields. These boxes exist partly due to the fact that the CFO/HR/recruiting folks need nicely written job descriptions to map resources and maybe a little bit because of how people assume these position – through the fires of a limited education systems and bootstrap-yanking from the bottom. Regardless of why, we organize skilled people into buckets in much the same way everyone else is world is either an accountant, attorney, marketing expert, business analyst, or any specialty therein.
What is interesting about the intra-IT delineation of suspect proficiency is that the ever-shifting world of technology and its self-evolving nature lead to new roles, terms, and sudden expertise in a constantly changing landscape. While the COBOL programmers were a hot item back when I was in diapers, most of those folks evolved to fit other roles as time marched on (but not all).
This evolution of new boxes to put people in can be driven by market dominance demanding new silos of expertise. Being an expert in Microsoft, VMware, Oracle, Cisco, EMC (obligatory plug) and many more can be directly linked to the success in the product’s dominance in some facet of the market. And to that extent we all should admit that the further you develop and professionalize yourself for a silo product, the more invested you are in their success.
The scope of this can also be driven by the degree of depth needed. Disciplines driven by deep foundations (such as the Cisco CCIE program) or some of the requirements for being an expert in intimidating tech (like Linux Kernel development) lead to highly paid fur-lined boxes for specific needs. This is based more on a technology skill being a bottleneck, or maybe we should say enabler for the needs of an organization. It can be argued either way whether this is more prevalent in software development or infrastructure circles.
Though the finely tuned and specific box for the Exchange guru, or the Oracle database master, and the C# event-driven wizard is easy to understand, well-defined silos are not the only type of stereotype to apply. Many individuals out there claim the *generalist* title and claim it well. They possess broad abilities to understand software stacks from multiple vendors as well as (and maybe even more importantly) how to layer and integrate vendor components together. I see the root of this type being based on critical troubleshooting and analysis skill sets. Those with the ability to understand and consume a tech quickly and then offer immediate value eventually learn that this has demand. These titles usually fall under more generic names like Network Administrator or Senior Systems Engineer. And when these generalists grow up they can develop into nicely titled generic boxes like Infrastructure, Software, or even Cloud Architect(my new favorite). These boxes are a loose analogue to hold this individual to a semblance of definition for their broad ability to connect and understand dots.
The real question is, how the paradigm changes for our somewhat newly evolving cloud constructs will affect these definitions? How will we slice ourselves into containers and how will existing skill sets migrate to them? In my mind I see the effects being completely different depending on where you start.
Let us start with an example of a powerful Infrastructure Architect. In their current world, value for them comes from an innate or trained ability to assemble layers of hardware and software stacks into consumable services. Whether as an internal role or as a service sold to a business as a consultant, they can take the complex and varied and produce a result. They do not need the ability to debug a kernel or write a endpoint for a service bus to accomplish their job. What is interesting is how the new infrastructure or platform as a service models(IaaS, PaaS) affect them. Suddenly organizations are being presented the option to purchase stacks that come pre-built for internal use or offerings that provide the required services and frameworks immediately as an instantiated third-party platform.
Now we have an issue for our generalist. While the adoption of these new *aaS models will take time, steadily and to some degree his or her value proposition will become diminished. Why does a business need a smart and savvy architect to align the stars to make our services work if we can buy them for purpose and on demand? Maybe they might have a role in evaluating new service platforms; but in itself this might be limited and a conflict of interest. With IaaS (public/private) for hosting of vertical applications like Exchange, SAP, Oracle, and more becoming solution-based offerings on a menu. And with PaaS services now offering enterprise architects and developers the ability to demand and develop on their own, where does our infrastructure expert move to next?
I think the answer is two-fold. In reality the demand for a person with broad skills and maybe even more importantly, possessing a broad-mindset, does not actually go away. Rather, it just relocates to be more aligned with the newer model. If the consumer of platform and infrastructure services no longer has to assume the responsibility to build and create them, then the demand moves to whomever now provides that service. As time moves on and business start expecting an IaaS or PaaS service to meet their needs, the demand for these providers will grow. This new galaxy of platform and infrastructure suppliers will need highly skilled and broad-minded generalists to help them build a better mousetrap.
And while we are on the subject of mousetraps, this becomes an important driver also. As adoption of IaaS and PaaS develops, demand for different levels and specializations of an *aaS will surface. Some services will spring up that need to meet specific demands by verticals such as healthcare, government, or even really narrow ones like insurance providers. Now providers we are in a position where expertise in these fields in building broad platforms while understanding the basic tenant needs will be valuable. And now, our infrastructure architect with 10 years experience in the healthcare industry suddenly is valuable again. She or he is now a critical asset in helping shape an *aaS that meets demands. They become an important cog in building the better mousetrap for our business consumer. The same skills in understanding vendors, layers, and models are just as important for a provider as they were as part of a business consumer.
And I would venture that this creates an even more specialized role for a broad skilled individual. In a previous life, they may have had to deal with business demands that led to environments with nice clean lines of separation between infrastructure and development zones of control to make things work. But in an *aaS world, things may naturally be more focused. Providing a well-defined and measured service is critical to the success of a cloud service. The greater the ability of our architect to have in-depth understanding of selected codebases and deep integration levels, where maybe they were not so deep before; the better equipped they are for their business goals. Now we have an interesting situation where broad skills could possibly evolve into more focused experience in delivering value. This also makes an interesting case for why something like DevOps is becoming a hot topic in the convergence of operations and development silos.
Perhaps our generalist does not necessarily lose value after all with cloud constructs. Their value migrates in the new model. And maybe in the end the broad abilities become more narrow and specific in a quest to deliver that better mousetrap.
Now let us switch back to our focused expert, our development guru in .Net or our data analytic expert. It is much tougher to predict how cloud models will affect an individual with highly specialized skills. Really, the same rules apply above in many ways. You would expect some roles in networking, database or development silos to remain in demand and just slowly merge across service-consumer and service-provider lines. But in the end, some may always remain within medium to larger orgs. It is likely that some will also phase out as technologies begin to be replaced completely by cloud offerings. This of course means people in those roles may have to migrate to a newer way of doing the same thing; which is something that has happened many times over in the past.
But what is more interesting at a choice level is how things like PaaS enable more options around platform choices. A good example is recent announcements around .Net enablement of formerly primarily open-system focused language PaaS platforms like Cloud Foundry (see: Iron Foundry and Uhuru). Which opens up interesting thoughts on whether that changes *how* developers are specialized.
Lets say I am a developer that has used and abused .Net since C# was barely a twinkle in Anders Hejlsberg’s eye. I work for a banking institution that has moved from building applications in-house and hosting them on infrastructure managed by an outsourcing firm, to using a newly minted PaaS provider with a focus on banking vertical. In my previous life I would find a way to solve a problem using my core codebase. But now, my new PaaS provider not only has great options for using the .Net framework- they also offer options for Ruby, Node.js, Scala, and other frameworks. Instead of limitations because of integration and build hurdles by the outsourcing firm(expense/time) and even my own feelings of safety by remaining on my core knowledge-base; I am now presented with easy avenues to utilize codebases I never had before. And because the path is easier, my excuses for not using the best-of-breed development solution for a given service model or core component become fewer. It presents an interesting question whether the new multi-codebase PaaS cloud service eventually causes developers to become more broad in the way they look at attacking problems. If I can use the same development toolkit to deploy .Net, C++, Ruby, or Scala to the same PaaS platform without having to worry about obstacles normally inherit in internal enterprise solutions, how does that change my personal development?
It presents an interesting idea of the multi-disciplined developer who uses any given framework available via his PaaS provider(s) depending on the core need. They could approach module building differently than the old paradigm by using Scala for building resilient APIs, C# for data presentation, Node.js for Map/Reduce streaming, and Ruby for user portal creation/extension or any other permutation. More than this, exposed constructs around normally infrastructure-based terminology can be used by developers in modern IaaS/PaaS designs for cool orchestration, isolation, and metrics in a new way (one barely out of the gate example).
As the languages, models and more become consumable by internal development teams and the walls dividing languages and frameworks break down- we are left with an interesting scenario for our silo-trained experts. And while it is impossible to predict outcomes, I predict many individuals branching out into new tech and new ways of doing things. No longer is their proficiency domain sacred in this new world. I offer no other proof than the simple example of how Microsoft themselves both helped the development(iisnode) and released Node.js on their Azure platform recently. I think this speaks to the wisdom of looking at languages and frameworks as tools and the viability of multiple codebase options with PaaS as a model.
And what we are left with is interesting if we step back. The narrow-focused expert may end up broadening how they apply their efforts in building value. It may no longer be about how to be the best with a hammer since it is the only tool you can bet on. It may be about knowing the difference between the hammer and the nail-gun. And even more importantly, knowing when and where to use each.
The key to either change is that responsibilities may move but in the end people are still required. What I personally find fascinating is how valuable individuals with curiosity for knowledge and passion for communication will have the opportunity to excel. A Infrastructure Architect who spends his/her time really understanding the needs and constructs of a vertical-focused PaaS could be a boon to a new startup. There are opportunities in these new worlds for ideas to provide major innovation and market value. Especially around stuff like DevOps integration(process & toolchain), infrastructure automation/modeling for IaaS, and fast-to-market development frameworks for PaaS.
Another interesting thought is how this may affect vendor-focused specialties. Someday being specifically an expert in a single vendor may be less useful than being an expert in the application of the common model used. I think advanced training and hands-on experience with a leading vendor’s technology will always be valuable, especially ones that stay current with cloud adoption and model their own products accordingly. And as always, this is usually controlled more by the market dominance and success of the vendor than anything. But, this is definitely something to watch as time goes by for whether it morphs into something different.
Having said all that let me get to the point of this blog post and say this directly to you. If you are a person that fits in a box like I described above and you are wondering where you fit in the crazy world of change- take heart that this is more of an opportunity for development than a dead end. Nothing changes overnight, and much has yet to be proven and produced. Because of this, there is going to be a massive demand for individuals that are capable of evolving into new roles for cloud models. There will be a need a combination of strong foundations in technology and forward-thinking mindset to attack the impossible in a new way. Or in a more concise and less dramatic way of saying it: technology will always need good people.
I believe that critical mass is reached where several of the IT containers we have placed ourselves in start to converge and evolve through the need for communication, common understanding, and the enabling technologies like IaaS and PaaS. Some see cloud as a threat to their career development paths. Some see it as marketing labels and hot air. I see it as the next evolution of how IT defines itself. A reordering of roles and ideas. Nothing new, just the next evolution of technology. And I for one, welcome our new cloud overlords.