4 key aspects when developing mission-critical applications
What are mission-critical applications? They are extremely important and high-impact applications whose performance is, needless to say, critical.
An application that is the
backbone of a country’s vaccination system in a pandemic
; an application that will process hundreds of thousands of business transactions, or one through which sales will be made; or an application that manages the passage of ships through a canal, such as the
, are just a few examples. If these applications do not work, the consequences can be very dire for organizations, businesses, individuals, or society.
When faced with the challenge of developing a mission-critical application, we will have to address technical and conceptual aspects that are essential. However, I believe that these 4 aspects are the basis for the future success of this application:
1 – Team and roles
What team will I have, and what roles will have to be filled to build this type of solution?
To develop a mission-critical application, we will need to include these profiles: business analysts, UX (interaction design, visual design, and the design of the architecture itself), writers, developers, security experts, and testers.
A diverse and clearly defined team is essential to build a robust mission-critical application.
2 – Processes and automation
What construction processes involved must be automated? How efficient are these processes going to be?
Interaction among roles comes into play here: SecDevOps and/or DesignOps. Some decisions are made, such as: Will micro services be used? What type of database? What type of services will be exposed? Which cloud provider will be used? And so on.
3 – Understanding the background story of the need for the App
What stories about needs lead us to build the mission-critical system?
example, we asked ourselves what we would need to give the user. One story was: “
We don’t want users to spend hours interacting with the system to get an appointment for a vaccine.
From the world of users, stories emerge that have to be taken to the world of solutions (and not the other way around).
Users will provide stories that will be key for building a mission-critical system.
4 – Data and information management
Most likely, a mission-critical application will involve a “data intensive
” system, with intensive data management.
Relevant factors are how information is handled, how it is accessed, how it is stored, and how it is displayed, as well as what the quality of the data is and who owns it.
is crucial here. I may be using the best data providers and a remarkable architecture, but if I don’t do good data modeling, my mission-critical system has a high chance of failing.
In short: having a good team, understanding the users’ stories, modeling the data, and modeling the processes are, in my opinion, the most relevant questions and considerations to be made. In addition, they should come long before we think about what architecture we’re going to use, whether we’re going to be using a microservices architecture, or a macro or monolithic architecture, or whether we’re going to make the system scalable or not.
To further explore these and other important aspects, such as execution speed and scalability, APIs, architecture patterns, and other technical considerations that allow for deployment in record time, you can watch the following video.