will look similar to almost a generation ago! Most likely, they will have teams of people build servers and environments by hand. There will be a large team of testers doing manual testing. Developers will just toss the software over the fence to the testers. The testers will do the same and so on until software is in production. Isn’t waterfall great? Now, bring in agile, cloud and DevOps to this type of organization and see what happens. But first, consider this type of IT transformation at enterprise scale.
We have a strategic imperative for a pretty dramatic transformation of our technology capabilities as a company. And this is a transition from being a company with an IT organization or an IT shop to really being a technology-led company. The hardest part of that transition is really a talent transformation. — Rob Alexander, CIO of Capital One
Based on a 2013 Gartner’s IT Metrics report, banking and financial services had an average of 9.5% of IT FTEs to total employees in 2012. So, if you take Capital One, as an example. At the end of 2016, Capital One had 47,300 employees. Taking the report’s percentage and apply it to the number of employees gets a result of 4,494 IT FTEs. These numbers do not include contractors and consultants, which are common in the financial sector. For argument sake, let’s assumes Capital One is close to the average. This is a lot of people and they are accustom to doing work a certain way for almost a generation. Then comes agile, cloud and DevOps along with its new capabilities and a substantial IT transformation.
What Agile, Cloud and DevOps Bring to IT
Agile, cloud and DevOps all bring unique capabilities and impacts on how IT does business. Agile, specifically Scrum, breaks projects into cross-functional teams doing iterative work. Cloud allows for “cloud-native” systems, which breaks an application down to smaller services in a shared responsibility model. DevOps brings automation and a new interaction models between development, operations and other groups. Each one of these has an impact on IT, but they are limited when implemented alone. However, together these three create a huge generational IT transformation.
Moving to Agile in an IT Transformation
Waterfall is great for making people feel in control, especially management. Management comes up with the plan, architects come up with the design and developers creates estimates for everything upfront. This lures people into comfortable feeling of we can do this on time and in budget. The project starts, architects go on to another project, developers work through the design and management tracks and manages the progress. Then reality sets in and there are issues with technologies and the architects are brought back in to “help”. If everything works out, you are over time and over budget. At worse, it is not what the user wants or the project is cancelled. As many times this story plays out, certain people love this process and this where you will have friction moving to agile.
Moving to agile can be a big impact on developers, testers, project managers and others involved in the creation and delivery of software. They have to learn new terms, processes and concepts, basically a new way of doing work. Developers need to do more testing, preferably automated testing, and get away from throwing software over the fence. Managers need to learn new ways to track progress, quality and forecast when a release is possible. Testers need to work with developers and be part of the cross-functional team. This is a big impact on these people, so they need education, mentoring and time, so they can succeed. Now, add cloud to the mix and you have increased the learning curve on these people.
The Cloud Piece in the IT Transformation Puzzle
Before the cloud and virtualization, for that matter, companies dealt with physical hardware when building a software environment. In this situation, people must try to understand the hardware specifications before the software is even built. Then they would order the hardware and wait for it to be delivered. After delivery, they hand-built the systems. Hopefully, they would create good documentation and followed corporate build standards. Altogether, this would take months to deliver to a project and in most cases, it was not right. So, it would go back and forth until correct. With the cloud, this process changes drastically.
With the cloud, a company gets access to Infrastructure as a Service (IaaS) capabilities along with advanced services on top of the IaaS layer. For a company, this is huge! With IaaS, the compute, storage and networking are all virtual. This means a person can quickly build, use and destroy these resources within minutes, if they want. No longer does it take a project months to get the correct environment. The IaaS capability is a great leap from the past of hand-made systems, but there is more!
A number of public cloud providers have added a number of services on top of their IaaS offerings, which is a great enabler for advance cloud-native systems. When moving to the cloud, a company needs to determine if their applications will become cloud-native or remain as-is. This is part of the “6 Strategies for Migrating Applications to the Cloud“. When going cloud-native in these types of advanced environments, architects have so many options to choose from to make their apps cloud-native. Due to the virtual nature of the cloud, the architecture is not set, so architects can iterate to success. However, this just more to learn and it is a complete departure from the old way. Now add DevOps on top of Agile and the cloud, you have a huge mountain of change.
DevOps Brings Big Changes
Before DevOps, software projects required a number of manual tasks to deliver software into production. In the worst case scenario, hand-built software packages were used, basically an end-to-end manual affair. This allows human error into a number of points within the process. So, organizations built solid command and control processes to ensure success. These command and control processes are heavy, which limits the number of releases per year. Then came along DevOps.
DevOps does not have a clean definition, but to me, DevOps is about streamlining and continually improving the Continuous Delivery (CD) pipeline. This higher level definition focus on the overall goal and not the implementation. However, automation and streamlined organization structure and communications lines are critical to streamline a CD pipeline. The automation and supporting technology alone is an extreme departure from the old way. However, the DevOps goal above has substantial impact on an organization and its people. When combined with agile and the cloud, an IT organization has a generational IT transformation on their hands.
Crucial Step in Generational IT Transformation
An IT transformational goal, especially one of this scope and magnitude, is about transforming the people. It is not good enough to just implement agile, the cloud and DevOps with consultants. In this scenario, the consultants are the transformation, not the IT organization and its people. So, if they leave, you fail. This means IT management needs to commit to a long view on such an important IT transformation and get their people transformed.
Mandatory Training and Assessments
People need time to learn and become efficient with new tools and techniques. To get people to an acceptable level of performance requires training, mentoring and assessment. This prepares people with new skills, so they can fill new roles in the new IT organization to come. Remember, this is what a generational IT transformation is all about. It is about getting the IT personnel from one way of doing work to a new way using modern tools and techniques. This requires training and time to accomplish.
It is not enough to just through a few consultants on each project and have them become agile/cloud/DevOps efficient. First, they need to get trained on what is coming. This gets them familiar with the new terms, nomenclature and concepts before getting into concrete examples. Basically, teach them the theory and assess their understanding. People’s skills and interests are great identifiers for their fit into future organizational roles.
Prepare People for Their New Role
By assessing people and understanding their interests, this information can help guide them to one or more good fitting roles in the future organization. Bringing in agile, cloud and DevOps will result in a number of new roles, like:
- Scrum master
- Product owner
- DevOps engineer
- Cloud solutions architect
- Test automation engineer
This is only a few of new possible roles in a generational IT transformation. Once a person has been identified for one or more roles, it is time to give them specific role training.
Once people are on track for a specific role, then train them to do this new role. On-the-job (OJT) is doable, but they require at a minimum the basics before turning on the knowledge firehose. Even better, give them the basics along with some more in-depth training to prepare them to do the job day one. Then back it up with OJT until they are comfortable with the new role. This will have the biggest impact on people getting into their new roles. Personally, I have a little experience training people.
Personal Training Experience
While in the US Air Force, I was in charge of training for my flight of ~70 people. This position required me to prepare people for their certification exams, which were by role. People had many roles, so they had many certifications. The exams were a great assessment of people’s understanding and ability to do the work required of the role.
Each exam consisted of a written, oral and practical portion. The written portion was a multiple choice exam, which was great to show they read the study material. The oral exam was great for getting people to put their responses in to their own words, no rote response allowed here. Then the practical exam showed how the person executed the role correctly by them actually doing the work. This examination process may be too heavy in some cases, but it may be great for critical roles or a toned down version may be better overall. Anyway you look at it, it takes time to training and prepare people for their new roles, so do not assume overnight success.
Take a Long View
A generational IT transformation of this nature requires time and it impacts IT’s ability to deliver at full capacity. Remember, this is a huge IT transformation and it is asking people to do the following in parallel:
- Do their current project(s)
- Learn new concepts, tools, techniques, technologies and processes
- Take on new roles in a new organizational structure
Doing all of these within the IT transformation is going to impact IT’s ability to deliver to the business. Therefore, IT leadership needs to make the business leadership aware of the transformational impact.
It is important IT leadership coordinates with business stakeholders on the impacts to execution speed during the IT transformation. They need to understand, people are going to spend more time training and preparing for the new way of doing work, so they cannot dedicate 100% to current project work. However, as the IT transformation nears completion, IT’s overall speed should increase significantly, which is the ultimate goal of a generational IT transformation.
Sum it Up and Next Moves
Introducing agile, cloud and DevOps to an IT organization using waterfall is a huge shock to the people. It is easy to bring in new tools, techniques and processes, which is going to change organizational structure and introduce new roles. This requires preparing people to understand the new world and how they fit within it, which requires training, mentoring and assessing. Converting people to this new way of work requires time and effort. It is the responsibility of IT leadership to provide this training and time, so people can prepare for the new IT organization on the other side of a generational IT transformation.
Require help with a generational IT transformation? OSG can help plan, train and execute your generational IT transformation. Please contact us.