The DevOps movement has focused the IT industry on breaking down silos and increasing collaboration across the different IT functions. There are popular commercial constructs that did a great job in the past but which are not appropriate for DevOps aligned delivery models.
In this post, I want to discuss how to change the popular Develop-Operate-Transition (DOT) construct.
Let’s look at the intent behind the DOT construct. The profile of work usually changes over time for a specific system and idealized looks like this:
During Development the team needs to be large and deal with complex requirements, new problems need to be solved as the solution evolves.
During Operate, the changes are smaller, the application is relatively stable and changes are not very complex.
At some stage the application stabilizes and changes are rare and of low complexity.
And then, the lifecycle finishes when applications are being decommissioned. (We are not really good at decommissioning applications, somehow we hang onto old systems for way too long. But for the sake of argument, let’s assume we do decommission systems).
As an organization it is quite common to respond to this with a rather obvious answer:
During Development, we engage a team of highly-skilled IT workers who can deal with the complexity of building a new system from scratch and we will pay premium rates for this service.
During Operate, we are looking for a "commodity" partner as the work is less complex now and cost-effective labor can be leveraged to reduce the cost profile.
As the application further stabilizes or usage reduces, we prefer to take control of the system to use our in-house capabilities.
So far so obvious.
If we look at this construct from a DevOps perspective, it becomes clear that this construct is sub-optimal as we have two handover points, and in the worst case, these are between different organizations with different skills and culture. I have seen examples where applications stopped working once one vendor left the building because some intangible knowledge did not get transitioned to the new vendor. It is also understandable if the Develop vendor focuses on aspects that are required to deliver the initial version and less focused on how to keep it running and how to change it after go-live. While the Operate vendor would care a lot about those aspects and rather compromise on scope. Now we could try to write really detailed contracts to prevent this from happening. I doubt that we can cover it completely in a contract or at least the contract would become way too extensive and complicated.
What is the alternative you ask? Let’s look at a slight variation:
Here the company is involved from the beginning and is building up some level of internal IP as the solution is being built out. In a time where IT is critical for business success, I think it is important to build some level of internal IP about the systems you use to support your business. In this new type of arrangement, in the beginning, the partner is providing significant additional capabilities, yet the early involvement of both the company itself and the application outsourcing partner makes sure all things are considered. Everyone is aware that trade-offs are being made during delivery of the initial project. Once the implementation is complete a part of the team continues on to operate the system in production and makes any necessary changes as required and any additional smaller enhancements. If and when the company chooses to take the application completely back in-house, it is possible to do so as the existing people can continue and the capability can be augmented in-house as required at this point. While there will still be some handover activities, the continuous involvement of people makes the process a lot less risky and provides continuity across the different transitions.
Of course having a partner for both implementation and operating is a much better proposition as this will further reduce the fraction. I have now worked on a couple of deals like that and really like that model as it allows for long-term planning and partnership between the two organizations.
Most people I spoke with find this quite an intuitive model, so hopefully we will see more of these engagements in the future.