/* custom css */
.tdi_4_2a2.td-a-rec-img{ text-align: left; }.tdi_4_2a2.td-a-rec-img img{ margin: 0 auto 0 0; }
As Practice Lead for Software Engineering, I have always seen my role as being a champion for engineering improvement, promoting collaboration and continuous learning among the engineering community in my organisation.
While these foundational aspects are important to organisations that leverage technology as a business outcomes enabler, the continuous pressures of a fast-changing world, exacerbated by COVID-19’s impact on our economy has allowed me to view the relationship between engineering and business success through an additional lens, which I wish to share with you.
As the pandemic unfolded in the past year, I watched as people around me were impacted by the economic downturn and I couldn’t help but wonder how many jobs-losses, salary cuts and/or poor financial performances could have been avoided if organisations ran Lean, efficient, and productive landscapes.
/* custom css */
.tdi_3_727.td-a-rec-img{ text-align: left; }.tdi_3_727.td-a-rec-img img{ margin: 0 auto 0 0; }
Look, truth be told, maybe it would have been the same, but this was the first time that the efficiency of running Lean and reliable had an economic lens.
Further exploring this, I could now see that the costs are the losses in revenue because of inefficient planned or unplanned downtime, reducing any buffer they would have been able to have when unprecedented events like this occur. I saw the costs of being too clunky to respond to changing markets and client needs, and of losing your most talented individuals as they burn out, get frustrated or leave for more attractive organisations.
So, as I reflected, the impact of COVID-19, gave me a perspective to view the drive for automation as more than just a cost and time-saving effort but a mechanism that maybe could have given more organisations a little more breathing space as wave after wave hit us. What if the increase in productivity that results from operating a Lean and Agile business is seen as a job saver, a way for you to weather another unexpected cycle of unprecedented change and disruption?
One of the ways business are driving efficiencies and cutting costs is through DevOps. DevOps allows us to have a high delivery spend while still delivering high quality by combining software development and IT operations.
At Standard Bank, we have implemented a CALMS DevOps approach, which is a principal-based DevOps framework. It stands for Culture of Learning, Automation, Lean, Measurements and Sharing of Knowledge.
The CALMS framework is used as a means of assessing whether an organisation is ready to adopt DevOps processes, or how an organisation is progressing in their DevOps transformation.
The principals work as follows:
Culture: The Founder of the Society for Organisational Learning Peter Senge said: “The only sustainable competitive advantage is your organisation’s ability to learn faster than the competition.”
Research from Deloitte into high performing learning organisations reveal some interesting trends.
First, 92% of learning organisations are more likely to innovate in their industry and 58% are more prepared to meet future demands of their industry.
A culture of learning also has an indelible impact on employees, with 94% of employees saying they would stay in a company longer if it invested in their development and learning and 42% of employees claiming development is the most important factor when deciding which company to join.
At Standard Bank, we have created a culture of learning, where employees take responsibility for their training and the business creates an environment that not only encourages learning but facilitates it.
Automation: A DevOps approach means automating as many menial tasks as possible. This allows for faster more consistent delivery of services. It frees up team time to solve more interesting problems and it improves work quality, reliability, and consistency.
What we at Standard Bank have learned about implementing an automated approach is to start off solving your team’s problems and to keep the big picture in mind.
It is also integral to success that you share your learnings, experiment regularly, leverage open source and standardise practices.
Lean: According to SonarType: “Development teams are making use of Lean principles to eliminate waste and optimise the value stream, such as minimising work-in-progress, making work visible, and reducing hand-off complexity and wait times.”
We have adopted the SMART method when it comes to implementing our Lean approach. That means our objectives are Specific, Measurable, Attainable, Relevant, and Time-based.
We are always asking how we can improve, and we always strive to implement the seven principles of a Lean approach.
- Eliminate waste
- Build in quality
- Create knowledge
- Defer commitment
- Deliver fast
- Respect people
- Optimise the whole
Measurement: Measurement is critical if an organisation wants to understand its current capabilities and look for ways to improve. To keep track of how we are improving, we created a DevOps dashboard that provides a data-driven method to track improvement in engineering practices across the group.
Our measurement journey continues but here is what we have learnt so far.
- Measure for improvement
- Have an engaged and involved the community
- Keep communicating
- Design and build for change
Sharing: The data which we gather from our DevOps process is then shared across traditional platforms such as guilds, masterclasses and dojo events and non-traditional platforms including, mail campaigns, video testimonials, case studies, video tutorials, podcasts, and playbooks.
Technology is integrated into various areas and dimensions of our daily experience. When it works, its power is subtle and often goes unnoticed. In stark contrast, failures because of unavailability, malfunction or breach have the potential to expose both the user and the provider to the risk of human, financial and reputational loss.
In engineering an important way in which we negate failures or malfunctions is through Site Reliability Engineering (SRE).
SRE is an extension of DevOps and was developed at Google. They loosely define it as what you get when you treat operations as if it is a software problem.
In essence, it is a discipline that incorporates aspects of software engineering and applies them to infrastructure and operations problems.
SRE takes the tasks that have historically been done by operations teams, often manually, and instead gives them to engineers or ops teams who use software and automation to solve problems and manage production systems.
There are seven key principles to SRE:
- Embracing risk
- Service level objectives
- Eliminating toil
- Monitoring distributed systems
- Automation
- Release Engineering
- Simplicity
Importantly SRE is about eliminating toil through automation. This is especially valuable when outages happen in large organisations where it can be difficult to get from what the user is experiencing all the way down to the line of code that is causing that issue.
With SRE we can speed up the time it takes to fix an outage and, in the process, save organisations invaluable amounts in both time and money.
Today businesses can ill afford to have their operations slowed down which intensifies the need for practices such as DevOps and SRE. Because, while they lead to efficiencies and time saving, in a COVID-19 world they take on an even greater role, helping to ensure business continuity in a time of uncertainty.
In the future, I believe this role will continue and extend beyond a crisis period. To realise these benefits however we must think of technology beyond the context of engineering and understand the impact it has on the broader business.
We must realise that the power of being Agile and Lean extends beyond time and cost savings and that, in the future, they could help to save jobs and even drive business success.
By Natasha Anderson, Practice Lead: Software Engineering Standard Bank Group.
/* custom css */
.tdi_5_84d.td-a-rec-img{ text-align: left; }.tdi_5_84d.td-a-rec-img img{ margin: 0 auto 0 0; }