This is no longer your mother’s coding space. Over the last 10 years and specifically in the last 4-5 years the practice of coding/developing applications, solutions, and products has flipped over in a pretty big way. Disruptive is the word that comes to mind, and in my opinion, disruption is where innovation lives. So what does the leading edge of the coding world look like?
Imagine being at a company and your development team is comprised of members representing the sponsoring business team, PMO, development, test, quality assurance, operations and security. The team has guidance they follow on what they can do and what they cannot do, a bucket on money and the freedom to organize and deliver in the manner they think will best achieve the desired business outcomes. The measure of success is that the outcomes satisfy current business needs, and the current needs may change between the start and end of the project cycle. The team owns designing (within the governance as mentioned above), developing, testing, delivering, and maintaining what they create to the quality level agreed to with the business sponsor, as well as to the level required by organizational governance. That is the notion of DevOps and many organizations are heading in that direction for certain systems.
Using a DevOps approach provides a technical team the ability to flex development efforts close to the same speed as changes to business requirements. For instance, a business will know they need something. In DevOps environments, a team works to capture and understand the business outcomes desired, creates a high-level design, determines what a minimally viable product (MVP) would be, and then gets to work. Typically the business expects the MVP delivered within no more than 9 weeks. Work continues on the deliverables with the highest priority and customer feedback is captured. The feedback is reviewed and features/prioritization shifts based on the new insights. If the business outcomes need change, that also impacts what is developed next and could even put a stop to the project.
Along with the evolution and practice of DevOps has come the evolution of systems definition. Systems of records (SOR) versus systems of engagement/interaction (SOI) and bimodal governance models are the more current terms used. Is that the third time I have mentioned governance?
Not every solution or system is a good candidate for using a DevOps development approach. Typically larger organizations will break IT systems into two groups and set up different principles and governance models (bimodal governance) for each. SORs are the authoritative (or single truth) source of information for the organization. SOIs are the systems that access the SORs and integrate with other service-providing systems to quickly deliver focused information to the right people at the right time in the right format.
DevOps works because the principals and governance set by the IT organization allows SORs to be developed and delivered using techniques that extend the delivery time and reduce risk. SOI can use DevOps practices for quick delivery and typically don’t present as much risk to the organization if the solution fails. SORs are more expensive, harder to change, don’t change as often, and will put the organization at greater risk (arguably) if they are not done correctly.
As a DevOps developer you will find that knowing and following the rules of object orientation and service orientation is critical. Additionally, since the systems being connected may not be as reliable as closed loop environments, expecting failure at every integration point of the solution is critical.
Want to work in IT for the next 10 years? Know these things and enough about the systems, network, security, and services you will integrate with in order to start down the DevOps path. Perhaps scripting an application in Python that pulls information from 2-3 Internet services to provide a consolidated view of information is a good start. For instance, maybe an app that pulls information on your location and displays all bookstores within 5 miles of current location on a map, and overlays the weather and available transportation services to get there. Or, if that is too big a step, go to Programmable Web and look at the available APIs.