Supporting Agile and DevOps transformation in Santander Bank Polska
A leader in the financial services sector, Santander Bank Polska S.A. (formerly Bank Zachodni WBK), is one of our oldest clients. We have been supporting the bank in projects focusing on custom software development and services related to the Atlassian suite of products since 2008. Back then, Deviniti was the only Atlassian partner in Poland who had a well-developed banking customer portfolio with clients such as ING or Credit Agricole, and the ability to map business requirements to the technical elements of implementation. We decided that it’s high time we shared some highlights from our collaboration to show you how such a long-term partnership works in practice. In this article, we zoom in on two projects that brought tangible business value to Santander Bank Polska during our collaboration.
Boosting problem and release management with Jira (2012-2013)
Our client was looking to replace a legacy project management tool with a new one that would be cost-effective, better adapted to the company’s needs and processes, and included support from the manufacturer. Staying on the unsupported platform presented a risk because in the event of a failure, the entire development and testing process could come to a halt. Besides, the old tools were not integrated with each other and didn’t match the increasing size of the error handling process.
The target tool would improve the management of software development processes and ongoing IT operations. In particular, Santander Bank Polska was looking to enhance its control over reported errors, increase the visibility of changes implemented in a given environment, and boost the transparency of relationships between business projects and their impact on the bank’s IT systems.
Here’s a summary of the complexity of their IT systems and deployments at the moment when we started the project:
Why did the customer choose to implement Jira Software?
- Other teams at Santander Bank Polska have already been using Jira successfully for a while,
- Jira was technologically more advanced than the tool used previously – it is a web app that worked far more efficiently than an application on an email engine,
- Jira can be integrated with virtually any other tool and easily customized with apps or custom plugins,
- Providers of many out-of-the-box systems usually offer plugins for integration with Jira,
- Jira streamlines the communication between business and technical divisions,
- The tool offers accessible reporting features such as filters or gadgets.
Managing software change orders and errors (and the relationships between them) impacts the productivity of the entire software development process. Dealing with this was the first milestone in the implementation of DevOps for the customer. Effective management of IT operations leads to increased throughput of new versions and propagation to systems.
Santander Bank Polska aimed to replace its error handling system in the legacy system’s database with a modern platform, Atlassian Jira. We implemented the new solution to improve the process of handling errors found during software testing with the following features:
- Speeding up the registration of issues (denoting changes or errors),
- Integration with software change orders,
- Integration with an internal application for downloading information about approved project initiatives, including information on the components modified in the banking environment,
- Integration with the CMDB database – obtaining information about the details of systems and their components attached/developed in the banking environment,
- Improving the preparation of the component matrix for the installation of subsequent software versions,
- Enabling on-line reporting at all levels of management,
- Implementation of audit recommendations to achieve compliance.
By migrating to the new tool, the bank would get a modern browser-based service used by thousands of organizations around the world.
We aimed to provide Santander Bank Polska with a functional and easy-to-use system for error tracking and software installation orders. We implemented two key projects in Jira: TEET for error management and IVEC for release management.
The data model looked like this:
Here’s what our team did to support the bank on its quest to process optimization:
- Configuration of the workflow and authorization rules – we ensured that the process of reporting/removing errors and managing installation orders was efficient. Our team also defined the next steps in the defects life cycle and their processing.
- Defining permissions for individual roles – for example, identifying users who have the right to report a new error, can change its status to Repaired or have the right to register a software installation order. This is also where we set the conditions under which a given error can be closed and identified who can change the order status.
- Logging all of the events – the tool offers a complete history of every case, recording the course of events in both the error processing cycle and software installation order.
- Availability of error statistics – this helps teams to examine the application and determine the number of its errors along with other related information, such as their status, significance, priority, and processing time.
- Web-based access to data on errors and installation orders – this brings significant communication improvements within the organization as teams can easily check the current status of the application.
- Access to historical data from the level of Jira – the bank decided to maintain the old functionality for a period of 2 to 3 months from implementing the new tool. We ensured that historical data is imported into Jira and available in read-only mode, with databases kept in the legacy tool that can be easily accessed through sending a request.
Since 90% of the processes were ready on the client side, our main task was to model these processes on the Atlassian platform and implement the right tools. However, we still assisted the bank in analyzing business requirements and mapping them to technical elements – it was an important and long-lasting part of the process. We proposed a solution that can be applied in various processes, workflows, and projects. Jira gave our client more freedom, since we used building blocks instead of creating a solution from scratch.
After the analysis was completed, we divided the work into two segments:
- Configuration of Jira performed by the bank’s employees.
- Customization of the tool carried out by us with the help of plugins.
What did Deviniti do?
Our team delivered about 20 components and a tool that expanded the reporting capabilities in Jira. For example:
- Relational and reference custom fields showing relationships between the objects in various projects and displaying information from other issues in real time.
- Custom reports – for instance, a dashboard for release managers with cross-sections of packages going to environments and systems affected by these changes.
- We also provided the customer with configuration instructions, including examples embedded in the context of the company processes.
- The client received the source code, several SQL scripts to assist in database reporting, and groovy scripts running directly in Jira to perform custom group operations on issues.
- In addition, we built components for importing data from CMDB and the business project database to supply Jira with the data required to describe errors, changes, and packages uploaded to the environment.
The main challenge in this project was maintaining the high performance of the application at scale. It involved the processing of production errors for 300 systems and 100 active projects that engaged 800 users spread across 200 teams. Further on, it would serve 1500 users, and ultimately 2000 users.
A large number of custom fields, users, projects, and issues had a strong impact on Jira’s performance, and back then, Jira Data Center was not available yet to address this problem. Our team carried out performance tests prior to the implementation that indicated such problems, so optimizing some parts of the solution was necessary. For example, in a multilevel structure of dependencies, changing an entity located on top of the tree (on which subordinates depend) generated a large number of operations in the background of the application. We optimized this process to count only the entities that the change actually affected. What’s more, we eliminated double conversions for parallel actions completed by multiple users at the same time.
The potential slow adoption of the new tool presented a risk as well. To mitigate it, we delivered training 2 months before the implementation. We also carried out corridor tests by letting users into test instances easily. The reception was positive and the usage of the tool turned out to be intuitive, so this risk actually didn’t arise at all.
By implementing Jira as the key problem and release management tool, Santander Bank Polska took an important step in its digital transformation by transitioning to a web-based application. Thanks to this decision, the end-users can enjoy easier access to the tool from any location. In terms of processes, the implementation helped optimize release management, change management, and introduced the basics of continuous deployment to the IT organization.
JFrog Artifactory implementation for test and release automation (2015-2016)
Managing the configuration of software packages can affect the efficiency of the entire software development process. This process is implemented through the introduction of a package repository that meets the ITIL recommendation, Ultimate Media Library. By creating such a library, developers can ensure that only authorized software packages are identified as sources for automated software distribution tasks in test and production environments.
In the next step, Santander Bank Polska decided to introduce a new system for managing its software package repository, the artifacts repository, and asked our experts for help.
By implementing a new library, our client was looking to shorten deployment time, ensure proper verification of the installation process, and stabilize test environments by reducing the number of errors resulting from improper installation of binaries. This is a classic case from The Phoenix Project, where an improvement in one place allows a significant increase in another place of the process by removing the bottleneck. Moreover, the automation of deployment and testing processes is critical to effective development at scale.
Our client used a custom artifact management system and IBM Urban CodeDeploy. This setup generated the following problems:
- The client was introducing new software development methods – in addition to the waterfall, teams were going through the agile transformation. This was the direction set for the development of the IT organization.
- The performance of deployment support teams could easily become a bottleneck that limited the performance of the entire IT section.
- Greater application variability and a higher number of releases resulted in the lowered stability of environments.
- The business goals of IT projects were often difficult to realize, and the value was delivered too late or of too low quality.
The deployment process realized the following workload at that time:
- management of production errors for 233 systems in Jira;
- handling of software installation orders for test environments carried out in Jira;
- on average, 1500 installation packages directed to test environments per month.
This figure presents the flow of value from business users to software developers and individuals responsible for application support.
Our team developed a solution that creates a central IT repository where the final software packages intended for installation in both test and production environments are securely registered and stored. Executable files, configuration files, and other files can be recorded in this repository. Then the registered packages stored in this repository can be used to install the software in test and production environments implemented as part of processes such as test environment management and ITIL change management. The repository structure is consistent with the system data stored in the CMDB.
The system provides secure and authorized access to software packages for internal and external suppliers registering software packages, administrators performing package installation, and tools provided under their internal systems. It enables package management for the appointed individuals, allowing them to carry out tasks such as:
- updating packages and introducing new package versions;
- granting access to packages to the right people and applications;
- removing unused software versions.
The introduction of the system expected to speed up the individual steps of the application lifecycle management – namely, the phases of testing, implementation, and maintenance. Here’s how its architecture looks like.
Moreover, the solution facilitates the linking of software packages with task orders for manual and automatic distribution of software to both test and production environments. This is how Santander Bank Polska teams can achieve compliance with the standards set out in an internal handbook.
The biggest challenge with this solution was the relatively high entry threshold. The UI of JFrog Artifactory was not so intuitive for new users, as there was no wizard that had been available in the previously used custom tool that would lead the process step by step. The integration with Jira created by Deviniti helped a lot here, as the need for using the Artifactory’s UI was reduced significantly.
After implementing our solution, the total average deployment time decreased from ~50 minutes to 3 minutes 14 seconds, making the IT teams at Santander Bank Polska far more productive. The implementation enabled continuous deployment at full, combining out-of-the-box functionality through the API available in JFrog Artifactory and some of our original code. The implementation products are also used for manual deployments – the client has clear information about what has been uploaded to which environment in one tool.
Later on, together with the customer, we extended these systems with automatic package delivery to production. It was based on the ITIL change management process in Jira, integrated with the BMC Remedy tool.
Evolving Jira adoption across the company
The project realized together with Deviniti was in fact custom and strictly related to software delivery. However, due to the decision of carrying out the Agile/DevOps transformation across the entire Santander Bank Polska’s IT organization and Jira Software’s support for teams, the tool’s native functionalities are being increasingly used to organize the work of development teams (programmers, testers, business teams).
In 2019, the bank carried out a data migration between instances. The Agile development projects kept on a separate instance were transferred due to the strong connection with the release process implemented by Deviniti. The bank was looking to simplify the process and avoid the need to maintain two large instances.
Kanban has become the standard in the IT Ops organization. The bank is also considering using Jira for requesting work between departments as internal clients.
During the COVID-19 pandemic, other units that weren’t previously covered by the Agile transformation began to use Jira as a tool for organizing remote work. Here Santander Bank Polska faced challenges such as the standardization of processes for automation and building Jira competencies between teams.
Our long-term collaboration with Santander Bank Polska shows that it’s possible to develop a truly strategic technology partnership with an external provider who has the right expertise and approach.
If you’re looking for a partner who has plenty of experience in providing technology solutions to the financial services sector, get in touch with us. Our teams are ready to provide you with the expertise you need to solve key IT problems and achieve your business goals.