Interview: We address real, rather than imaginary, client needs
We meet with Prem Górecki, CTO, and Michał Lisiecki, Head of Digital Now Unit at Altkom Software to chat about their inspirations for modern app development, the most important solutions, technologies and methodologies employed by Altkom Software in its projects and their effects, as well as the BPM Camunda platform and the project management framework called “Software as a Journey”.
The watchword of the 100th issue of “Itwiz” is “inspirations”. Could you share yours, especially in terms of software development?
Michał Lisiecki (M.L.): The key, I think, is to properly understand the cloud and its applications. We need to stop seeing it only as infrastructure, sold within the cloud computing model. Rather, it should be viewed as a platform that allows one to create new apps by providing easily available, ready-to-use elements.
To give an example, we have recently completed a project for a well-known bank – in a matter of just two weeks. Thanks to ML solutions available in the Microsoft Azure cloud, this is the time it took us develop a new solution for classifying client transactions, which helps them analyse their expenses and better manage their household budget.
The cloud allows projects to be quickly developed but also to phase them out. We often take advantage of ready-made functionalities. We pay to use them. Say, we test a new solution or a specific functionality. If it works, we deploy it into production; if it doesn’t, we give up the project, along with the infrastructure behind it.
Another technology that got me fascinated when I was still working at an insurance company is Camunda Platform, which belongs in the category of Low Code solutions. It includes a workflow engine in the Business Process Model & Notation (BPMN) standard and a decision engine compliant with the Decision Model & Notation standard.
How is the Camunda platform used?
M.L.: When I worked at that other company, we had to deal with lots of processes, and they were really sensitive to the regulatory environment. The recommendations of the FSA often meant they needed an overhaul. Unfortunately, at that time we weren’t yet using a process engine. Each process had to be coded by programmers. We had a large team so we thought we were up to the task. But a project of this kind took 2, 4, sometimes even 6 months. And then client feedback often meant we had to make more changes and enter a recoding stage.
When I was signed on by Altkom Software, I discovered new solutions that it has used in similar projects, e.g. for leading Polish banks, where it employs the Camunda process engine. My first question when I took over a team here was: “Why didn’t you approach me with this six months ago? You would have saved me a lot of time” (laughs).
So what are the advantages of a BPMN workflow engine?
M.L.: First, a BPM platform, such as Camunda, makes it really easy to introduce changes in response to new regulations. Second, thanks to DPC extensions created by Altkom, you can also generate forms sent out to clients in the WYSIWYG mode. This generates an Angular code. At my previous company, each such form had to be coded, tested and showed to the Product Owner, who was often the CEO, and wanted, for instance, to change the order of fields.
Bt contrast, the DPC allows these forms to be designed almost in an online mode. The project, then, is created as you go, in cooperation with the Product Owner. It can also be immediately deployed into production. The cost of recoding approaches zero. This greatly boosts the efficiency of app development.
It also helps us address the security issues involved in sharing these forms with end users, session ID sharing, validation, etc. Everything is done by experienced programmers who create these generators. The security of our solution has been confirmed by, e.g. pentests ordered by our clients, financial institutions. The DPC includes, among other things, the Camunda engine, a process management and control module, a form generator and an API gateway.
I am also a fan of the Agile and Scrum methodologies, but when used comprehensively, rather than selectively. To be able to work in accordance with the Scrum framework, it is important to build trust in the client-provider relationship, but of course you should monitor each other anyway to ensure full transparency. The client can see the incremental growth of the product at every Sprint and checks the performance of the Agile Team and its progress. It is worth adding that the latter can also be followed in Jira via successive release dates, based on data introduced every day by developers.
Without this, you can’t really make use of what technology can do. Without trust, even the best technology and the best teams get stuck.
Przemysław Górecki (P.G.): Talking of inspirations, I would like to go up a level. Michał has already gone into detail about projects. What I would like to add is that we are also inspired by our clients. Our clients sometimes take us to unknown places. What we’ve managed to create at Altkom Software is an entire project framework. For our own purposes, we have called it “Software as a Journey” or SaaJ. It starts from Product Discovery, i.e. the client’s business need and leads all the way to the system maintenance phase. The entire process and approach to individual stages is based on our experience.
So, at the outset, we have identified various risks, based on our experience in several hundred successful projects. This allows us to anticipate which risks may occur at any given phase of a project. For instance, in the Discovery phase, this may be a half-baked product. In the design phase, there might be errors related to performance, security, lack of scalability, etc.
This allows us to monitor certain risks from the get-go and mitigate them throughout the project. There is now practically zero risk that we will fail to deliver a solution on time and within budget. This gives our clients the confidence that we are a reliable partner. We usually go through the whole SaaJ process, but you can also use it selectively, e.g. in the Discovery phase, where we create what’s known as a backlog, or at the stage of system design.
How exactly do you use Software as a Journey? How does that framework relate to specific elements of your solutions?
P.G.: SaaJ falls under the software development model known as Modern Application Development (MAD). It has several different aspects that are worth highlighting. One is the cloud, which requires not only appropriate infrastructure but also proper app design. The system must consist of microservices, which should also be able to communicate with one another. The app must be reliable, transactional and secure. Microservices should be containerised so as to not depend on the hardware layer.
From the point of view of the cloud, it is also important to automate repetitive tasks, including the idea of Infrastructure as Code (IaC). This allows the environment to be launched from ready-made scripts in an automated and repeatable manner.
Another aspect has to do with artificial intelligence. Any modern company today should base their business decisions on data. On the other hand, decisions at the level of individual clients, such as which product to offer to whom and via which channel, are supported by AI/ML algorithms. This allows us to automate the process. And this is why we use ready-to-use computing cloud services.
Importantly, Modern Application Development involves the integration of microservices. Each of these is an autonomous application that goes through its own development cycle, has its own API and messaging systems which should be used for communication. Information should be disseminated by events. Processes of this type are also perfectly supported by the cloud with all its readily available tools.
Another aspect has to do with data, which are stored in cloud databases. This gives us a nearly unlimited storage capacity, quick access to data, security and independence from programming languages and frameworks.
We should keep in mind that security issues must be looked at at different levels. One is the code; another is the software delivery and setup pipeline; another still, the environment in which it all works; and last but not least, we have the data. The security of the source code, for instance, is validated in two ways, using automated tools such as SonarQube and Checkmarx. Interestingly, ready-made scripts can embed a code that is “green”, i.e. optimal in terms of IT resource use. The tools I have mentioned also support this. This gives us a perspective on green software development, which fits in perfectly with the ESG strategy of our clients. SaaJ also allows us to reduce our carbon footprint by optimising the manufacturing process and the effective use of human resources.
Last but not least, system maintenance. In this area, we also try to automate processes as much as we can, including the monitoring of our final solutions, both on the level of services and infrastructure.
To what extent can code be optimised in terms of resources?
M.L.: To begin with, I need to add that we have delegated the Performance Engineering mentioned by Przemek to a separate team.
We often deal with situations where, e.g. the app’s Customer Experience is patchy. Moving from screen to screen takes ages. The first advice in the IT world is to “buy more hardware”. This, in turn, requires more licences. Off-the-shelf software is often installed without changing any standard settings, even though the producer recommends it should be customised to meet individual requirements. And yet it is enough to improve the layer of the app server, virtualisation, network or database to significantly boost app performance.
In our projects, three days were all it took for our Performance Engineering team to generate 6- or 7-digit savings. Today, this is important, because companies are looking for savings, including in IT budgets. On the one hand, they need to grow, because we are competing for IT specialists, and not even locally anymore, but globally, but there are also areas where we can try to optimise. This goes, e.g. for infrastructure and licences, but also cloud computing solutions.
You could describe our Performance Engineering team as “efficiency detectives”. The IT world is so complicated today that you need to specialise in selected aspects of it.
What are some of your most interesting recent projects?
M.L.: Again, I have to mention the application of ML cloud components for classifying client transactions in a well-known bank.
Another very interesting project we have completed recently involved Camunda-based Low Code solutions. In just 2 months, we developed a new tool for an international logistics company working in sea, land and air transport. Based on ready-made cloud elements, we created a new freight management solution.
A challenge we had to address was that every country required different types of documents and different freight-related actions for different types of transport. The complexity of these processes created a lack of transparency. Now, that has changed. You can now immediately see where to give that extra “push” to expedite shipment. The project was carried out during the pandemic, which helped during the cascade of supply chain problems.
We also provide Camunda-based solutions to a leading bank on the Polish market, which hired us for one of our most interesting projects. When the government passed special support mechanisms for entrepreneurs, the ability to quickly modify or reuse previously-implemented processes turned out to be of paramount importance. Thanks to earlier DPC deployment, preparing an application took just 48 hours. This shows that a well-structured environment can give you a significant edge in business.
The last project that comes to mind is the hospital insurance sales system we developed for one of the major healthcare service providers. We built it using the infrastructure of Amazon Web Services. As far as I know, this is the first deployment of this type in Poland. It was not only a challenge in terms of technology, but also a regulatory conundrum, because the system handles sensitive data in the public cloud.
We were able to pull off this project easily, not only because we had all the necessary tech skills, but also because were also able to understand the requirements of the industry, including its security issues. Today, developers need to know what can be done and how, so that the client doesn’t have to face any extra costs, but can still get a solution that meets all the security standards and regulatory requirements.
P.G.: I would list two projects. One was commissioned by Prilo: a platform to support vehicle transport services, which connected carriers to clients. The project followed along the SaaJ framework, from the design stage to product maintenance. What I found particularly interesting was the discovery phase, which involved several of our client’s divisions. It is owned by a South Korean company, and because of the pandemic, the whole project had to be done remotely.
Another project I want to talk about shows the whole potential of the cloud. We were hired by the National Fryderyk Chopin Institute. Every 5 years, the institute organises the famous International Chopin Piano Competition. In between these competitions, their website is practically inactive. It receives several thousand queries per month at most. But during the event, the figure suddenly jumps up to several million per day. The institute doesn’t have the infrastructure to handle this without excessive rescaling.
What we did was we adapted the institute’s solution to the requirements of the cloud, with full automation that enables independent up- and down-scaling. Everything is based on the Infrastructure-as-Code model. This allows the right scripts to be launched, which, during the competition, recreate the whole website in the cloud from a local copy.
We also support clients in their digital strategy implementation.
M.L.: And this all comes coupled with Scrum methodology, with its full transparency and openness. Scrum allows us to act much faster. For instance, negotiations with the logistics company I talked about earlier took only a week and the only change had to do with payment deadlines.
We no longer need to waste precious time. If we follow the Scrum methodology, the very first Sprint will show what we can do and the client can decide whether to go forward with it or not. This creates the conditions for complete openness and transparency.
Sometimes we like to joke that my teams optimise the client’s budget more than ours (laughs). But this is exactly the point, we need to apply solutions that address real, rather than imaginary, needs.
The interview was brought to you by: