Flow is about making things as frictionless as possible, taking the path of least resistance and prioritising value. The speed of software development or product delivery is based on the sum of the parts and, back in the day, the final mile of deployment into production created more challenges than one would prefer. That’s why the DevOps model or Flow Teams are favoured and when coupled with the Cloud, it takes delivery to an all new level. Something which in my opinion is vital in order to avoid your current business model being disrupted.
However, rather dismissively, some people refer to the Cloud as someone else’s Computer system and maybe in the early days that was the case. But Cloud today, with its myriad of new services, is so flexible that it can no longer be ignored by any Enterprise. And, in the right hands, it is the Swiss Army knife of modern day computing.
In fact, not many Companies have yet to embrace services such as Serverless Cloud but when they do, it will open up even more flexibility in terms of zero configuration and agnosticism from the actual service provider. This will be game changing in the future and make Flow a necessity.
The importance of Cloud within Flow cannot be underestimated, especially with its positive impact on lead-time and cycle-time (the time it takes to create a task, to when it actually starts and then to when it’s actually completed). These measurements are key to tracking the delivery of new functionality but all too often, one needs to wait for a server to be created or an environment to be provisioned.
In the world of on-premise resources (the phrase most used for describing physical data centres), teams of people procure & install hardware, whilst others configure & install system software and applications. All is ok if the capacity is available but more often than not, there is a lead-time to purchase which has a direct impact on the flow of work.
Some Companies manage this demand quite well but equally many do not. But for those who do, one could argue that they have servers and resources sitting idle until the day they are required which is not only an inefficiency but it also impacts costs.
Something As A Service
Flow is optimal when automation is abundant and hence the obvious alignment with the technical side of DevOps. This method of working is centred around the tools and techniques which can automatically create entire end-to-end systems.
At this point, it’s worth talking about the “Something” As A Service phenomena. Most people have become familiar with Software as a Service (SaaS) which includes things like Salesforce.com or Workday whereby everything is managed for you, from the Application to the Hardware. You use the application as is without any customisation except for some configuration.
For those looking for more flexibility, and to deploy their own applications plus data, one can choose between Infrastructure as a Service (IaaS) or Platform as a Service (PaaS). And this is where you need to be aware of the differences between the two because they can both be Cloud services.
Infrastructure as a Service lets you control more of the layers of technology below the application (e.g. the operating system) whereas Platform as a Service means that you only care about the application and associated data.
So why is this important? Well, the more control you retain, the more tasks you have to do and this potentially leads to a less efficient flow of work. In fact, if you do control more in a Cloud environment, then it “does” become someone else’s Computer!
The following table shows an overview as to the various options:
Controlling the Cloud
Many Enterprises control their on-premise data centres with a vice-like grip due to their security concerns. And quite right too.
However, when an Enterprise adopts a Cloud strategy, all too often they employ the same approach as an on-premise environment. By which this means that they like to retain total control over their Cloud service because they do not trust the provider or even their staff. Hence, they build in their own security, certificate management and logging which in turn prevents them from achieving the ultimate Could flexibility that they had expected (like the ability to scale on demand).
Within Flow we can work with any type of environment be that on-premise, IaaS or PaaS but Platform As A Service is the optimal approach because it abstracts away all the complexity of the Infrastructure, including the need to do any system software upgrades or security patching.
But many technical teams prefer the IaaS approach or even keeping everything on-premise so that they have absolute control whilst attempting to keep a role within the dying world of in-house managed infrastructure (be that Cloud or not). But remember, the more control you keep, the more it costs and the less flexible it becomes.
As far as automation is concerned, using a Cloud Platform with Flow, for a continuous deployment of application functionality, is nirvana. And the more efficient in which you can make the automation delivery process, then everything one builds benefits from it.
The key thing is to embrace Cloud, go with PaaS, keep things as simple as possible and automate the hell out of everything.
However, many IT people will disagree with us and say that Cloud is much more complex than we have outlined. But with Flow, we believe in simplifying, descaling and debunking the old ways of thinking so that your business can rise above those who still think that the world is flat.