Cloud migration projects have two dimensions.
First, they are short-term sprints where a project team migrates a handful of application workloads and data stores to a single or multicloud. They act independently, with little architectural oversite or governance, and last between two to six months.
Second, is the longer-term architecture including security, governance, management, and monitoring. This may be directed by a cloud business office, the office of the CTO, or a master cloud architect. This set of processes goes on continuously.
Here is the problem. The former seems to overshadow the latter, meaning that we’re moving to the cloud using ad hoc and decoupled sprints, all with little regard for common security and governance layers and any sort of management and monitoring.
The result is something we’ve talked about here before: complexity. Although we built something that seems to work, applications migrated from one platform to another are deployed with different technology stacks. As a result, when they are turned over to operations (cloudops), they are too complex to operate with the current resources. Mistakes are made, systems get breached, or outages become common—all because of iterative migration projects.
This is not to say that iterative or agile is wrong. It’s not. There needs to be some central command and control, such as a solid reference common architecture that provides the basics: security, governance, data, management/monitoring, and all of the systems that span applications.
The lesson is that in the pursuit of best-of-breed and multicloud solutions, we may be missing things that will fully optimize our target cloud solution. The individual projects may also focus on a fully optimized cloud system in the narrow view, but they won’t create an ideal one in context of the thousands of other systems that have little or no commonality.
So, if the question comes to iterative or waterfall, the correct answer is neither. The real answer is to pursue two tracks: the project track, and the common architecture and solutions track. They should be coupled enough so that common technology solutions are leveraged as much as possible, and with the intent that the applications and data stores will be good cloud computing citizens.