Although information and communication technologies (ICT) have been important in the last twenty years, nowadays we cannot even think about business and its improvement—or about everyday life—without them.
Humans, both as individuals and as a civilization, have always been innovative, but innovation has been slow and stable throughout history, as well as throughout much of the 20th century. It was mostly exceptional individuals that innovated – think of Tesla, for example – and the public was slowly adopting an idea. The love of society and the public for innovation only began with the invention of the computer, and the real momentum came with the birth and widespread use of the Internet.
Think back to the 1980s, innovation was not necessary for business success. A company could do well only by applying a proven business model. Today, however, the situation is completely different. It is difficult to imagine any business that does not require innovation and constant and persistent improvements of the applied business model. Much of this relies on the innovations that come from ICT. Innovations in information technology result in smarter applications, improved data storage, faster processing, and wider distribution of information. All these innovations increase value, improve quality and productivity.
It is therefore not surprising that IT is one of the fastest growing sectors globally. The last few years have seen a noticeable increase in the number of IT companies, as well as the number of IT departments within companies. On the other hand, colleges and universities cannot keep up with the number of programmers that the market demands. Although companies try their best to train as many staff members as possible to work on large projects through various programs and retraining, such projects do not run smoothly.
During 13 years of cooperating with domestic and foreign companies from various industries, the domestic IT consulting company Serengeti has noticed a growing trend of the need to “save projects”.
For some projects, companies hire developers with about a year of experience. A team like that is usually enthusiastic, willing to take the initiative, eager to work and gather new experiences, and works well to a certain point, where the project just becomes too complex. However, due to lack of experience, such teams will often waste valuable time on the trial and error method. This can lead to such a loss of time and resources that the project needs to be either rescued or canceled. Most often, these projects end up only half realized, but it’s clear that they will not be successfully and qualitatively completed by the deadline.
Just like in everyday life, when we find ourselves in a situation that seems hopeless, we would benefit from someone we can rely on and who knows what to do. The goal is to save the project so that the investment – in the form of both money and time – is not lost. In addition, the initially enthusiastic team needs to be re-motivated and given back their faith in their project. In the development world, the team we can rely on and who knows what to do is called the SWAT team. This team is made up of people who are both experienced and skilled in working with demanding projects.
The SWAT team is a special IT unit composed of development experts whose task is to save the project when it encounters problems like the ones previously described and when it has deadlines that cannot be moved for justified reasons. Experienced development experts identify and remove the so-called friction in development, i.e., all things that slow down developers in the delivery of software – from misnamed files, communication noise, to better architecture by applying best practices.
Such a team truly is reminiscent of an elite military unit in which a specialized, well-trained, and autonomous team performs special tasks, but still has access to all the resources of the organization in which it works.
If we compare these situations with military operations, the special unit has all the autonomy in carrying out the task, however, it can request air support from regular military units at any time. Consequently, a small development team deeply involved in solving project problems should have the support of management and the entire organization, as well as the freedom to seek and obtain approval for the purchase of tools, hardware, etc. to accelerate implementation and direct the project onto the right path – to success. Therefore, large organizations, which are administratively much slower than smaller organizations, should also be prepared for quick interventions that will free the team from organizational bureaucracy.
For the SWAT team to be truly 3-4 times faster, it is necessary to have the following essential characteristics, among others:
1. Rich experience
2. Synergy
3. A large number of existing modules or, for example, server provisioning scripts
4. Ability to spot and eliminate problems that create friction in the project.
5. A diverse team: In military operations you do not need 6 experienced snipers, but a diverse team of special forces, and it’s the same here: every development engineer is a proven expert in their field, no matter if Frontend, Backend, DevOps, architecture, etc.
This all may seem obvious, but precisely because often the obvious things have not been detected and applied, the project runs into problems, technical debts, and the so-called friction on the project prevents the project from advancing at the expected speed.
If we use the lack of tests or source code documentation as an example, a fairly common reply is, “we didn't do it because we didn't have time”. However, the real problem here is the false sense that it is a waste of time. If we have a pre-defined initial documentation structure or experience from previous tests, these two things are not seen as a problem, but as an opportunity. Documentation and tests quickly detect poor code or architecture performance. Repairing them at an earlier stage prevents friction in the later stages of the project.
• It works up to three times faster since it is a professional trained team with enough experience
• Revises the code, i.e., analyzes the code and gives guidelines on what needs to be fixed to eliminate project friction
• Uses knowledge gained so far and ready-made code from its own platform
• Independent, prevents vendor lock-in if unnecessary
The uncompromising quality of implementing an idea within the set deadlines and financial frameworks is what we want to achieve when moving into a project for a client.
In the absence of time, and sometimes experience, it often happens that we move away from this aspiration, making compromises the only other aspects that are left – the quality of the user experience and the quality of the code that runs the application. Because of such compromises, we can lose users or quality developers.
If the decline in quality reaches a critical limit, it may be time for SWAT.