DevOps is basically a term for modern software engineering practices that focus on delivering software solutions faster and better. Similar to most buzzwords, DevOps is claimed to be important and needed, but not necessarily understood – Why? In this article, I’ve simplified the FinTech DevOps partnership, and explained why it is essential for modern FinTech development projects to incorporate DevOps.
What is DevOps?
DevOps is a mindset, a philosophy, and a set of practices that brings together Development and Operations teams, with the goal of enabling software delivery at high velocity and also to improve products at a faster pace.
In typical software development environments, the Development team (Dev) constantly pushes changes. These teams continuously come up with new ideas, write codes and test them to fix any defects before production. The operations team (Ops), on the other hand, deploy the new features and changes. They are predominantly responsible for system stability, which they make sure is achieved through server management, scaling, security, and backups.
So when one group pushes changes and the other group prefers stability, it causes friction between both, which leads to a slower software development lifecycle. This is the issue DevOps solve. As stated before DevOps is not a specific kind of coding, it is instead a mindset, a culture, and a development approach that enables Dev and Ops teams to work in sync.
DevOps Origins and Principles
The early footprints of DevOps can be found between 2007-2008 when Patrick DeBois, an IT consultant with Agile Methodology expertise, found himself frustrated with the silos that existed among Agile development teams and operations teams. He met Andrew Shafer during the 2008 Agile Conference, where both decided to form the Agile System Administration Group.
The group was aimed to facilitate cooperation between development and operations teams. Later, in 2009, John Allspaw and Paul Hammond showed how Flicker could perform 10 deployments a day by just breaking down the silos between development and operations teams. Given the significant credibility of the concept, DeBois created his own conference named, DevOpsDays. Later the term was shortened to DevOps.
So far it is clear that the primary purpose behind DevOps was to break down the silos between Agile development and operations teams. However, the scope of DevOps isn’t limited to Agile; it is indeed applicable to the waterfall approach too.
The principles of DevOps are quite abstract and may seem hard to nail down. But the following three ways will help you understand the DevOps principles better.
- Shared Responsibility – this approach means that in addition to their core responsibility, the operations team will care about how the code is built and tested and the development team will care about production performance. It underlines that no one is focused on their silo only. Instead, the entire team will take a collaborative approach to speed up delivery.
- Amplification of Feedback Loops from the right (operations teams) to left (development teams) facilitate ongoing improvement.
- Promoting Learning & Experimentation – a culture where risk and learning from mistakes are promoted will eventually lead to a more resilient system.
Moreover, there are several practices that are common in the DevOps environment. They are as follows:
- Automation of everything including CI/CD (Continuous Integration and Continuous Delivery or deployment) and Continuous Monitoring
- Infrastructure as Code (IaC)
- Configuration Management
- Adoption of DevOps Tools and Cloud-Native Technologies
FinTech and DevOps Together
Several large-scale banking and financial service providers have adopted DevOps practices to improve their deployment velocity, keep up with the changing customer expectations, and stay immune from a new breed of FinTech challengers. Julienne McLean, agility lead at JPMorgan Chase, believes that speed is the cheat code for survival in the tech-agnostic financial service space.
As due to Covid-19 pandemic, customers expect to receive banking and financial services digitally, companies have started to identify their long-standing issues. Keeping up with customer expectations requires financial organizations to speed up deployment. However, the digital infrastructure also has to be equipped with robust security and compliance management. Hence, both FinTechs and traditional players are making use of DevOps methodologies to speed up their software deployment. The following are the known benefits of DevOps in FinTech:
1. Increase Deployment Velocity
A report from DORA and Puppet Shows claimed that organizations which made use of DevOps in 2017, were able to deploy updates, changes, and improvements 46 times more frequently. Also their change failure rate was 5 times lower and their failure recovery rate was 96 times faster than organizations that didn’t embrace DevOps. DevOps practices require IT teams to implement a standard code of responsibility, where both development and operations teams are responsible for the entire software development lifecycle. This boosts team morale and improves deployment velocity.
2. Help Manage Security and Compliances
Regardless of initial pushback of adopting DevOps, organizations that have dived into DevOps culture are realizing that these practices allow them to identify and address threats more quickly and efficiently. This is the reason that more and more FinTechs are implementing automation practices to enforce security and compliance management. In 2021, banking and financial organizations consider DevOps as a tool for security and compliance management.
3. Reduced Downtime to Zero
IDC estimated that large enterprises have to bear $100,000 per hour due to infrastructure failures. Another report by Ponemon Institute states that the cost of unplanned outages in the financial services industry is the highest among all the industries. In today’s competitive environment, financial service providers cannot afford such infrastructure failures. Hence, there is a need for a new approach to reduce downtime.
The modern approach to reduce downtime is a part of DevOps practice. This includes making use of a microservices architecture, which allows organizations to develop FinTech applications as a suite of independently deployable modular services. Such a development approach allows organizations to achieve zero downtime deployment, which mitigates the hassle of maintenance windows and deployment delays.
4. Cloud Readiness
Gartner reports that banking and financial service providers, which haven’t implemented DevOps into their digital infrastructure are more likely to leverage Agile product engineering. DevOps isn’t something you can think about today and implement tomorrow. It is a cultural shift that needs the right guidance to become a reality. DevOps is very favourable to cloud environments, where deployments are done very frequently.
Myths About DevOps Implementation
Myth #1 – DevOps is all about changing the way IT teams operate. Successful DevOps implementation doesn’t solely focus on the software delivery, it actually considers end-to-end organizational processes as its scope. The idea is to transform the isolated organizational process into a synchronized and collaborative procedure. Hence, DevOps brings together more than the Dev and Ops teams. It’s scope includes infusing agile into compliance management, change management, and even financial budgeting.
Myth #2 – There is no need for project management. It is a common misconception that after DevOps implementation, there will not be a need for documentation and communication among teams. However, the reality is quite different. As software development and deployment includes several moving parts, each in a constant flux, it gets virtually impossible to get every team member in sync. DevOps approach promotes using a centralized work board (i.e. Kanban board), which keeps track of every task that has completed or is in process. This helps project managers to visualize the whole project to identify and manage the gaps, bottlenecks, and dependencies. Hence, it is vital for project managers to be involved directly with the dev & ops teams and project sponsors.
Myth #3 – DevOps cannot benefit security and compliance. Many believe that the DevOps process only emphasizes speeding up the development process by facilitating collaboration among development and operations teams. However, the reality is that DevOps promotes security into the software development process from inception. The project managers make sure that information security issues standards are followed and the issues are ratified in the early SDLC stage.
Myth #4 – DevOps is a ready-made solution that fits all. Although it may seem a straightforward approach to implement DevOps to automate the software development process. One would argue that by using several tools, it is an easy task to automate the process. Although there is ample material information and tools available for DevOps implementation, there is no off-the-shelf solution available till now. DevOps implementation varies as per the team size and structure. DevOps is a journey not an instance.
How DevOps Complements Agile for Fintech
Agile product engineering overwhelmingly focuses on the development aspects of software delivery, leaving operational aspects disappeared into the background. The Agile process can be made more effective by integrating the teamwork offered by DevOps.
Organizations that are already making use of the Agile framework, can implement DevOps to break down organizational silos to create a continuous delivery pipeline (CDP). The integration of both can optimize the development lifecycle and customer satisfaction. Moreover, the following can be accomplished with the DevOps and Agile integration:
- Streamlined released process and better product offerings
- Improved collaboration
- Fewer risk and more value with each release
- Lesser bugs and quicker fixes
- Increased transparency
However, companies often encounter pitfalls while implementing DevOps to Agile product engineering. The following are the recommendations to avoid them to make the integration successful.
- Improve Teamwork Flow. The team members including the scrum master and the project managers will have to consider not only development but also delivery and maintenance as their scope of work. The entire team should be trained to understand release, service, change management, automation and tools, environment provisioning, and product deployment.
- Involve DevOps in Sprints. Agile development divides the projects into several sprints. Integration of DevOps will require strategizing accordingly. It is recommended to involve the DevOps teams in sprint backlog planning and daily scrums.
- Automation Is the Key. Workflow automation is another crucial element of DevOps combining with Agile. The entire code scanning process should be automated to avoid potential vulnerabilities. The automation should be done entirely so that the end-to-end goalposts are the only possible place where anyone would check for issues.
- Utilize the Right Set of Tools. DevOps implementation requires more than a cultural shift. Using the right set of tools is the key to a successful implementation of DevOps in Agile frameworks. Organizations should make use of configuration management tools to create or replicate infrastructure using the IaC concept.
- Measurement and Analysis. In order to keep track of the development process after the implementation of DevOps into Agile, organizations would have to establish metrics to measure its effectiveness. These metrics can be:
- Percentage increase in the number of releases
- Percentage of on-time releases
- Percentage of non-functional requirement met
- Defects related to support/platform requirements
Indeed DevOps brings endless opportunities for FinTech organizations to speed up time to market. Most of the FinTech development companies are familiar with Agile development methodologies, but haven’t yet adopted DevOps.
We, at NimbleAppgenie, have FinTech development teams that are sound with DevOps methodologies. It has become our standard practice to build products faster and efficiently.
Jermaine Trotman is the co-founder of Nimble AppGenie, a company renowned for its bespoke mobile app development and web development in e-wallet app development and fintech development.