Cloud-technology is a tool
To project hardened seniors reading this, what would resonate in the manner to get you chills.
You know the feeling, when things really click. Your peer colleague succeeds in difficult project or the architecture comes together.
To us, who have experienced dozens of projects and clients, we tend to know the direction for the chills for success.
Meaning, we have created models from the past experiences. These models are formal structures explaining the world around.
If we master and understand the models, it improves our communication, enables us to explain difficult scenarios, reason and cooperate with our teammates, predict the outcome from a solution and furthermore explore different options.
When our thinking is logical, consistent and based on past experiences, we are more likely to make wise choices. No matter if we speak about development team trying to implement difficult business case or just us cooking for our family.
The same is true, when a salesperson tries to find out what a customer truly needs or when we are implementing the next cloud-enabled solution for the customer.
It is all about building value. Is the food you prepare the value or is it merely a tool for you to have energy to play with your children?
Nevertheless I’m sure each and everyone of us have made up models, how to build value and get the chills in different situations.
Good architecture and implementation is crucial, but we should not forget to put the customer to the spotlight.
Do we have a solid business case and most important where is the value? We should not ask what the customer wants, but what the customer needs.
Try 3 whys the next time you’re thinking of making a big decision:
“Why we are building the infrastructure to the cloud?”
“We need to grow our capacity and we need to be highly available and resilient”
“Why it is important to improve scalability and resilience?”
“The old infrastructure can not handle the increased traffic”
“Why the old infrastructure is not enough anymore?”
“We have analysed the platform usage. If we get more capacity on the rush hours, we can serve more customers.”
All right! We are convinced the customer needs the cloud migration and start working with the implementation.
Solita has productised the whole cloud journey, so we can quickly get into speed.
Ready made instructions, battle proven implementations and peer-support from earlier projects will help you up to speed.
Technical solutions follow a model, meaning there are few ways to provision a database, few ways to do networking in the cloud, few ways to optimize expenditure.
When we do not plan and develop everything from scratch, we build value.
According to study published in the book Accelerate: The Science of Lean Software and DevOps, to be productive, everything should be in version control.
For sure the application code is already in the version control, but also system configuration, application configuration and scripts for automated build, test and delivery should be in version control.
The study revealed, keeping configurations and scripts in the version control correlated more to the software delivery performance than keeping the application code in the version control.
When building for cloud, the infrastructure must be defined in code. And the code should reside.. in version control!
This enables us to move faster without trade offs. We can recognise modules, implement them once, create automated tests and then re-use the codebase in customer repositories.
Every time we are able to do this, we build value.
Humans are erroneous. This is an experience based model. When computers handle the repetitive work, it enables people to solve problems.
We know from experience, automation requires investments and should be implemented from day one. Investments done here will result smaller development lead time, easier deployments and more quality code.
In cloud, we describe our infrastructure as code. This goes hand in hand with automation. Based on this model, we choose to automate recurring tasks such as building code, testing and making the deployments.
As a result we speed up the feedback loops, have repeatable results each time and enable developers make quality code and automated tests. We test our infrastructure in the pipeline and once again build value.
Deliver continuously in small chunks is an experience based model.
You most surely want to have your piece of code tested and delivered to production before you forget, what you were doing.
Short lived branches or Trunk-Based Development predict performance. Failures in small changes are far easier to fix.
Also test automation is key part of continuous delivery. Reliable automated tests predict performance and improves quality. Diagram below is from the book Accelerate.
High Performers who had adopted the Continuous Delivery model spent far more time on new work than in unplanned or rework.
Although unplanned, emergency and refactoring work is a necessity, value is built when implementing new features.
Software Delivery Performance
Measuring software delivery performance is difficult. An incorrect productivity metric can easily lead to poor decisions.
If you want to deliver the feature as quickly as possible without trading for quality, one key metric is development Lead Time. This is because code not in production is a waste.
For example Software Delivery Performance can be split to 4 topics:
- Lead Time (from starting implementation to delivery to production)
- Deployment Frequency (more often results smaller changes)
- Mean Time to Restore (how to recover from failure)
- Change Failure Rate (how often the changes cause a failure)
According to the study made by the authors of the book Accelerate, these are the measures from different types of Organisations:
Past experiences makes us what we are. Stop and think the models you have crafted. Challenge yourself, interact with your peers, find out new models for building value.
Together with the team and with the customer, you’ll will find the best solution for the opportunity at hand. Remember the actual implementation is only a fraction of the whole journey.
On pure technical aspect, we should re-use as much as possible and we should automate as much as possible. When talking about cloud migration, infrastructure must be described as code (IaC).
Does your organisation understand and use the models?
Does your organisation productise and re-use the codebase?
Let’s build value!