Software Delivery: Our Road to Excellence
By: Gerard Mcmahon
Tags: Innovation, Software Development, Fidelity Investments, Culture, Continuous Delivery

As described in my last post on the 5-stage software maturity model, our team journey is focused on embracing the challenges of continuous improvement.

When looking at the attributes of a Stage 5 level on the maturity model, we determined that we needed to pursue excellence and craftsmanship in how we do things, how we build things, and how we operate things.

“Delivery Excellence” is a key component of our team culture and is supported by these three pillars:

Agility Excellence.

Engineering Excellence.

Operational Excellence.

Agility Excellence: Transforming how we do things

We transformed our teams into fully autonomous and empowered teams, eliminated specific roles within the team, and adopted the full DevOps model. Each team came up with their own principles to describe how their team culture would focus on continuous learning and improvement.

We looked at our physical spaces and removed all physical barriers, like desk partitions, to promote an open and collaborative workspace. We created visual team radiators which enabled us to “work out loud” and express our culture. This created an environment which promoted inclusivity and an open invitation for anyone to join and participate in conversations and collaboration. The benefits realized by operating in this model, is that the team become closer, create that sense of belonging and really trust in each other. Working in the open, invites others to join and participate which includes more thoughts and ideas leading to improved and greater outcomes.

Engineering Excellence: Transforming how we build things

Each of the 5 maturity levels has fundamental transformations to the application technology stack and SDLC process required to increase maturity.

We had to look at adopting cloud and application modernizing using the 6R Migration Strategies as the framework for our cloud migration.

“Go Faster, Go Local”

The team’s new motto is about how you can truly shift left, to optimize the local development setup with leading edge tooling and frameworks to provide a seamless experience for the team. It also provides instant feedback, thus increasing productivity and accelerating development and delivery.

For accelerating high quality software delivery, the team has developed the skills of adopting:

Advanced engineering practices.

New architectural and design patterns.

Advanced deployment strategies.

Fully automated pipelines all the way to production.

Operational Excellence: Transforming how we operate things

It is impossible to deploy on-demand and many times a day without observability of your application as it operates in production.

Three pillars of observability

Observability has emerged as a key component in the successful management of distributed systems. The requisite capabilities that observability must offer include

Metrics

Logs

Distributed tracing

These are integral to the ability to have a high performing DevOps team and a high-quality application. It has allowed the team to innovate and experiment real-time, gain real-time feedback from customers and allowed the innovations, experiments and feedback to drive the evolution of the product.

Teams should be actively monitoring the health of their applications and looking at automated self-healing mechanisms, leveraging AI/ML for powering broader and deeper anomaly detection.

Chaos Engineering

Another advanced practice of operational excellence is chaos engineering, which provides a structured approach to helping us understand how our applications behave and react under different situations leading to higher quality software that will delight its customers.

As the team focused on the 3 Pillars of Delivery Excellence and building the team culture, innovation has been at the core.

The “Ditto” Framework is one innovation that emerged from the work done in Engineering and Operational Excellence. While creating their API’s, the team saw an opportunity to codify the engineering and operational excellence using open source frameworks. Now it’s much easier for teams to scaffold their application with a high level of Software Delivery maturity, standardize on the application and operational infrastructure and allow teams to start developing the business value quicker.

In the previous article, I shared the below quote that I love. The team has embraced the pursuit of perfection and this has led to a greater sense of inclusion, a greater level of collaboration and the culture of continuous learning and improvement.

“Perfection is not attainable, but if we chase perfection we can catch excellence.” — Vince Lombardi

#fidelityassociate