You may have heard the term DevOps and may wonder what it is and why you should even care? If you are (or want to be) in IT you need to understand what it is and how it impacts the skills you have or are growing.
Traditionally, application development delivery and operations have been separate functions. For instance, a business analyst or business architect works with the business sponsor to determine what a solution needs to be able to do. They would pass it to a development lead who would work with the development team to design and start development on the functions that make up the solution. A test lead would work with the test team to create tests to make sure the needed capability was working as expected. There would be a quality assurance group that would make sure the solution met the needed quality bar and a security team that would make sure the solution met security requirements. The solution and any changes required over time go through a change management process, are reviewed and delivered into the production environment.
With devOps, the functions for all of the roles are meshed together so the team working on the solution has representation from each of those groups. The production environment always remains pristine and is not modified. Rather, when a change to production is needed, a new production environment is stood up, traffic is shifted to the new environment and stays so long as it is operating properly. Governance is used to provide the resources and guidance needed to coordinate efforts and the team that creates the solution owns the solution soup-to-nuts. The production environment may change 100 times each day so learn how to automate everything you can and expect failure. As part of that, if you provide a service that other application reuse, make part of your test routine testing to make sure the functions reliant on your service are tested so you don’t break them.
Why is this happening? Each handoff between function adds a delay to delivery of whatever is being delivered. The delay is caused because at each point the solution has to wait in line with other things the person has to do before they can address your request. As people get busier, the delay gets longer, and as more stops are added, the delay gets longer. By having a team that represents all of the stops from business (or operations) requests and focused on the same bit of functionality together, the delays are limited.
Since each function gets into production quicker, development teams can get feedback from the customer (or user of the feature) to measure the effectiveness of the feature and to inform future changes. You end up delivering the needed capability quicker and get validation that the feature is providing the expected business outcome.
What does that mean to you and why should you care? As a person in any portion of the IT lifecycle, you have to know about the whole process and be an expert in your area. Not only that, you have to know something about the business you are supporting and the customers (or users) of whatever it is you support. You have to also know how to integrate with other services needed to deliver your function.
- Do learn a generic lifecycle and when you get a new job, apply that to how that organization runs.
- Do become an expert in a specific area you are working on and actively participate in international communities for that area
- Do expect failure and think about how your feature will react as pieces of the solution you are part of fail
- Do not focus only on your part of a solution and take the stance that the rest of the solution and meeting the business outcome are not your responsibility – they are
Last, consider creating something you own all the way through that uses other resources, such as the ones available through the Programmable Web. Your solution can be an application made available through a store or can be used to service a website you stand up. There are plenty of free services you can take advantage of to play and learn. Don’t worry about the money you will make from the solution; rather, think about what you will learn from the experience. As you get better there will be plenty of opportunities to become the next millionaire success story. You need to learn first.