The universe is change; our life is what our thoughts make it. (Marcus Aurelius)
If you have a job in IT (and who among my readers hasn't?), then it is going to fundamentally change soon.
In my own job, I see the full spectrum from where IT innovation is created to the very last laggards who are still depending a lot on mainframes and other ancient technology. Some things in IT are new (like, every week there's a new startup/technology/trend that is shaking up the industry), and some things are just repetitions of stuff that has happened before, albeit in slightly different colors.
So now, the world of IT as we know it is changing (again) and this time, change will impact organizations, roles and jobs.
Let's dive a little bit into what's happening. Don't worry, change is good, but only if you prepare for it.
There are three trends that are hitting the IT landscape right now. They are more or less independent, but they also complement each other:
Trend #1: Climbing Up the IT Stack
Information technology is just a stack of technologies. In its simplest form, we see hardware at the bottom, and software at the top. Over time, the stack has diversified into a more complex building where IT is composed of:
Applications and Services
For each of these components, every IT department needs to decide whether to build something from scratch, or just buy a pre-engineered solution.
A long time ago, IT shops built their own storage and server components, or they built their own databases and middleware, but that was very quickly delegated to IT vendors. Today, IT shops build systems out of components.
But that is changing:
When was the last time your team built a file server? Right. Home-grown file servers today are obsolete, the network attached storage industry is doing that now, and IT shops buy ready-to-use NAS-devices.
Engineered Systems are doing the same for database and middleware servers: Soon, there won't be a lot of motivation to build yet another database server cluster from scratch or yet another web farm etc. Even if you leave out Oracle's Engineered Systems, there are other vendors now catching up with their own versions of “building blocks” or “integrated systems”, all with the same goal: Do the hardware integration for you.
So if your job/role/task has been to evaluate host bus adapters and their compatibilities with individual servers and SAN components, chasing down storage firmware patches so your server's OS doesn't hiccup too badly when confronted with a certain type of disk or if you run a test lab that regularly evaluates storage, server or networking components, then it's time to rethink what you're doing and whether this is going to continue being a good use of your time.
The trend here is obvious: Smaller parts are more and more integrated at the factory level, bigger parts are delivered to IT organizations, the point of deployment and integration is rising up the stack over time.
Today's part granularity is the rack, not the component. And if racks are too much of a hassle for you, you can get rid of all this hardware stuff altogether by using cloud computing.
Trend #2: Disintermediation
Ultimately, the whole purpose of running IT is to provide business services: A credit card billing service or maybe a blogging service or even an online dog food store. Every such service is composed of components across the whole IT stack.
Unfortunately, this creates a lot of dependencies: If you want to upgrade your storage, you need to plan for it, otherwise your credit card service would suffer, if your server needs a patch, you need to make sure the blogging software running on top of this server is moved elsewhere first, if you're running a consolidation project, you better schedule a few meetings with your dog food store department to make sure the transition is accurately planned, managed and executed without disrupting your service and so on.
But: The more stuff is dependent on more other stuff, the stiffer your organization is, the longer stuff takes time to complete and the more errors can happen along the way. Agility suffers.
The solution is disintermediation:
Volume managers helped storage admins disintermediate their work from their server colleagues so they can manage storage without being dependent on their server departments. Server people liked that, too, because they could "get a new volume" by just calling their buddies from the storage department without having to wait until new hardware is rolled in and connected to their servers.
The same thing is happening in server-land through virtualization: Running the hardware is now becoming more and more independent from running the OS on top of the hardware. OS admins now request a new server in much the same way server admins request some new storage. The physical hardware layer can now operate separately from the OS and all the other software layers above.
And disintermediation is hitting again, this time thanks to Engineered Systems and cloud computing. Whether you're operating a private cloud (based on Engineered Systems or not) or you're using a public cloud, your IT operations are now more and more independent from your IT services:
No more coordination between departments for hardware consolidation, faulty hardware replacement or hardware modernization.
Processes closer to the hardware level are more automated and require less manual intervention.
But on the other side, developers, architects and other people closer to the IT service are now doing more and more operations work: They are now responsible for the OS within the VMs that they get from IT, they have to come up with the golden images that IT ops runs, they have to design scalability, durability and the whole service lifecycle in the virtual world that IT offers them. Or they simply plug together and run their own service, out of PaaS components.
While IT ops is focusing more and more on running a private cloud infrastructure that is application agnostic (or maybe their company has decided to entirely offload IT into the cloud), the remaining pieces of IT that are closer to developing and managing IT at the application/service level enjoy more independence, more control but also more responsibility for their services.
This trend has been known as “DevOps” for quite a while (and I highly recommend Ben Rockwood's blog posts on DevOps, or this piece by Adrian Cockcroft of Netflix). Werner Vogels, Amazon CTO put it into his now famous words: “You build it, you run it!”.
What does this mean for your job? Well, if you're working in IT and you're now evolving into a more cloud based model, you need to decide whether you want to be part of the cloud operations bit (which is going to be much more automated and hence will offer less room for creativity), or maybe it is time to huddle up closer with your developers and service operators: They now have a need for some operating system and HA and network savvy guys that help them do this “you run it” thing, now that the cloud is here.
Trend #3: There's a Lot of New Stuff to Learn!
With all this change (from assembling components by hand to automated data centers, from silo IT to cloud computing and so on), there comes a lot of new opportunity: New stuff needs to be figured out which requires creativity, new tools and technologies emerge which need to be explored, new roles and responsibilities are created almost daily.
Here's some food for thought:
The web is reinventing itself almost every year: If you thought Blogging, Podcasting, Facebook and Twitter was something new, think again. The new kid on the block is now Pinterest and I still have to figure out what it may be useful for (at least to me...). Try to stay on top of current web developments and learn how they play the game of popularity, influence and monetization.
The rules of work are changing: Mobile tools like laptops and mobile phones have enabled a more mobile workforce in the 90's. Today, the workplace is entirely virtual: Offices are no longer assigned to individuals, instead we now see flexible offices and drop-in centers almost everywhere. Not to mention work-from-home, which has become a great way of increasing productivity while promoting work-life balance. Other ancient rules of working are challenged as well: As older companies downsize and lay off employees, they learn how to become independent contractors while an entire new generation is growing up to be small to medium entrepreneurs instead of joining a regular job. On the other hand, innovative employers try to attract talent through workspaces that look more like living rooms than offices, relying on self-organization vs. hierarchies (have you seen the Valve Employee Handbook?) and even letting employees choose how many days of vacation they want. The more open and flexible you are about work concepts, the better you can adapt to change. Try to be more unconventional.
New programming methods and languages are emerging, almost on a daily basis. Whether triggered by the need to better leverage the web, cloud computing or simply by playing around with new concepts. Three years ago, I would never have thought of becoming a mobile sensor network that feeds Big Data or using a client-side scripting language to program the cloud. As automation hits data centers and services move into the cloud, high-level scripting has emerged as a new "must have" skill. Even the rules of programming and scripting have changed: Learning how to program today is much more about learning patterns and concepts, while individual languages can vary by taste, requirements or simply whatever environment your cloud provider currently offers. Try to learn a new programming paradigm, API or language at least every year to keep your mind fresh in terms of what the software world has to offer.
As new IT concepts like virtualization, Engineered Systems, Cloud Computing, DevOps, new services, patterns and languages emerge, they force IT organizations to re-think and adapt roles, responsibilities and jobs to the new reality. Change is a constant in IT, and the current times are likely to see a lot more change than we have seen before.
Try to climb up the IT stack towards places that are closer to where your company creates value, and where your creativity makes a difference, as commoditization, automation and outsourcing in the industry climbs up behind you and is now hitting the system integration level.
Re-think how your company's value creation processes map to business processes and ultimately IT processes and how new ways of disintermediation affect your processes and your architecture methodology. If DevOps is the new ITIL, what would a new version of TOGAF look like?
Finally, try to learn something new from the rapidly changing web culture, be it a new way to look at work, a new scripting language or a new API.
Nobody knows how the future is going to look like, but the more you dig into new stuff, the closer you'll be to whatever the winners of the future are.
Useful Stuff to Read
Here are a few books that may be interesting, helpful or just fun to read as you re-invent your job (and yes, these are affiliate links. They help me pay for hosting costs and they'll cost you nothing, we both win!):
(If you don't see anything, then you have an ad blocker enabled. Trust me, at least this time, it'll be ok to switch it off :).)
What changes do you see in your organization as your IT department evolves?
How do you prepare for change?
What other tips, resources and books do you recommend to stay on top of changes in IT?
Share your insights in the comments!