Organisations that want to disrupt the business market in which they operate, or at least steal a march on their competition, are increasingly recognising the importance of agility. It's no longer safe to maintain the status quo (if it ever was). Sit on your laurels for too long, and you'll be caught in the dust cloud as your competitors streak past.
Cloud Native is one approach that organisations can use to speed their response to market changes and it's something we're passionate about at Container Solutions. And, whilst defining Cloud Native is not an exact science, there are some things we can confidently say about it: It involves transforming organisations, not just technology. Cloud Native needs alignment with strategy and culture to succeed.
This shift in thinking and practice needs to engulf the whole organisations. If pockets of staff don't sign up to the journey, then problems are going to surface sooner or later. The journey needs to be understandable, inclusive, and participatory.
Part of the challenge in Cloud Native adoption comes down to education, which needs to touch every functional entity within the organisation. That is, not just the engineers who deal with Docker, Kubernetes, Istio, or other Cloud Native tech. . If an organisation is going to change in such a fundamental way, the purpose, means and process needs to be universally shared and adopted.
That's why I firmly believe that Cloud Native training is for all and not just engineers. Leaders need to know how to lead their organisation in a Cloud Native transformation, whilst the wider company needs to understand the essentials associated with a Cloud Native approach. It informs them of how the approach will affect them, what their part will be in the process, and how the organisation will ultimately benefit from delivering better quality software features more frequently.
On many occasions I've witnessed significant inertia and resistance to change, all due to poor communication, lack of inclusion, ‘not invented here’ mentality, and so on. Education meets this challenge head on.
Putting a whole organisation through a training program, however, can be a complicated logistical exercise. It would be tempting to devise a training program that merely gets everyone through the education they need at some point in the journey. But, if the education isn't delivered at an optimal point for the learner, the success of the transformation can be put in jeopardy.
Whenever I get involved with new clients, I like to recommend that as many staff members as possible are exposed to the essentials of Cloud Native as early as possible: to learn its purpose, its concepts, and its vocabulary. This serves to promote the cause, provides a shared purpose and responsibility, and removes barriers to change. It's not a cast-iron guarantee that things will work out perfectly, of course, but it will significantly improve the chances of success.
Whilst the linchpin of Cloud Native is technology, it doesn't necessarily follow that adopting technology wholesale from day one is going to bring immediate untold benefits. Nothing could be further from the truth; it's likely to introduce many more problems than it fixes!
It's important to learn how to walk before you learn how to run, and there are many different factors that need to be considered when embarking on a Cloud Native journey. Does the organisation use Agile to manage its software development lifecycle? Has it started to migrate its architectural style to the microservices pattern? Does it deliver software using a robust, continuous, automated pipeline? And so on.
This suggests that different technical skills are going to be needed at different times by different teams. There's no point in learning about service meshes if you don't know the basics of container orchestration, for example. And, there's no point in learning about GitOps workflows if you haven't already mastered continuous integration and delivery.
Also important: , technical skills should be acquired just before they're required for use. A regular refrain I get to hear is, ‘It's great that I'm learning Docker in this course today, but when will I be able to use it in my day-to-day job?’
Skills acquired in a short, intensive training class can all too frequently be lost if they're not put into practice right away. How this affects our ability to retain knowledge has been known since the late 19th century, with the experiments of German psychologist Hermann Ebbinghaus, which led to his 'Forgetting Curve' hypothesis. He showed that 75% of newly acquired information is forgotten after just six days if it isn't applied in practice.
Additionally, does everyone need the same training, and in the same depth? It might be appropriate for testing teams to be trained in the essentials of containers, but not in the art and craft of authoring application container images. It pays to think carefully about each individual's training needs, so as to ensure they get the right skills for their role, at the right moment in time.
By itself, a training program is not going to make a successful Cloud Native transformation. But a poorly constructed or executed training program may well break a Cloud Native transformation. It's so important to get this right, with the correct mix of soft and technical skills, made available to all who need it, right when they need it most.