How IT architects work – our examples and tasks

An architect is an indispensable specialist in creating or auditing complex IT solutions. Its tasks are to lay the foundation of the project, provide flexibility and reduce risks, and ultimately – provide the business with rapid development and independence in the future selection of contractors.

Architects are especially needed in large IT companies that lead many projects and choose the optimal technological stack for each, taking into account the long-term development prospects, pluses and minuses of each option.

We at SimbirSoft are developing our own architectural committee – there are already 54 experienced developers in it. We share our experience with what architects do and on what projects they are needed.

Tasks of an IT Architect

Architecture is the technological base of an IT product. An IT architect, or systems architect, is, above all, an experienced developer. He knows when it is useful to use a certain technology, and most importantly – when it does not need to be done and what are the risks.

His tasks:

  • Ensure a balance between development costs and solution flexibility to quickly implement future requirements.
  • Justify the choice of technology: for example, a monolith or microservices, a boxed or combined solution.
  • Monitor the implementation: lay the framework of the system and carry out architectural supervision.

Speaking of good architecture, they usually mean:

Flexibility

The ability to adapt the product to new business requirements, even if at the beginning of the design process they were not fully known.

For example, when creating boxed solution for insurance companies, we initially laid down 4 main types of policies, while providing for the ability to quickly add any other necessary policies.

Conformity

Adaptation to system limitations and compliance with technical and operational requirements: on the technological stack, work with personal data, Big Data, a large number of integrations.

Quality

Ensuring during the development of the architecture of the optimal values ​​of product quality attributes.
Consider several situations in which the development of IT architecture is necessary.

When you need an IT architect

As the product develops, new requirements often arise, and old solutions are no longer enough.

It also happens that a small house-team works within the framework of one technological stack, but to solve business problems it is necessary to integrate or develop new functionality and at the same time choose the optimal implementation technology. For this, developers may need help, because now technologies change every six months, it is difficult to be aware of everything at the same time and have expertise in all languages ​​and areas.

In such situations, they usually turn to an experienced team of architects, which is “on fire” with their own business, accumulated versatile experience and continues to develop competencies in various technologies.

As a rule, a business orders architecture development in an IT company in the following cases:

  1. It is necessary to develop software taking into account the requirements of the law.
  2. It is necessary to develop software from scratch, while reducing the risks of errors, failure to meet deadlines, and increasing the cost of implementation.
  3. Requires increased system flexibility.
  4. The system does not meet the requirements of scaling, load, security.
  5. There are no resources for the development of IT architecture.

How to choose an architecture

When choosing an architectural solution, many factors are taken into account, including the expected time and cost of development, support, and product development. In this case, the pros and cons of each option should be considered.

Boxed or custom solution?

Custom development from scratch takes time and careful planning. “Boxes” – for example, such as “1C: Accounting” – are suitable for companies with simple and standard business processes, but their development opportunities are limited. If you need further customization, the box can be even more expensive than developing from scratch, immediately tailored to the needs of the company.

Monolithic or microservice architecture?

  • Monolith

The optimal solution for prototypes and simple web applications (for example, CRM, intranet portals, business card sites), allows you to quickly launch a new product on the market and, if necessary, gradually rewrite its individual fragments. You can read more about this in our last article.

Risks: with increasing application functionality and the number of active users, the monolith may cease to cope with the load, and the delivery time for new features will be long.

  • Microservices

Suitable for large IT systems that serve to solve a large number of complex and diverse tasks (for example, marketplaces, social networks, mobile banks). Isolation of small services allows you to issue releases more often, flexibly scale computing resources while increasing the load.

Risks: the complexity of the development entails additional requirements for the qualifications of employees. For microservices, the presence of CI / CD is a prerequisite. Development time will be higher than when working with a monolith (provided that the architectural structure of the monolith allows you to quickly make changes).

Implementation example

One of our client banks used a boxed system of remote banking services (RBS). Add new features (and even move the buttons) was possible only with the help of the vendor. So, firstly, releases were rarely released (once a quarter), and secondly, all the expertise was concentrated by the vendor, and not by the bank. In addition, due to the complex balancing of monolithic architecture clients, the application crashed. Because of this, the bank turned to us to work out a new solution.

The solution was the development of a new microservice architecture of RBS, in which each microservice has a separate database, ensuring the availability of the application at any time. Results – 5 times fewer crashes at the start, the ability to release several releases every week. Moreover, maintaining the expertise on its side allowed the bank to further develop the product on its own or with the involvement of any contractor.

How the architectural committee works

Different IT companies have their own ways of working with architecture. In small monoproduct teams, specialists have the opportunity to directly consult with colleagues who are experienced in certain technologies. And when there are many projects, there is a need to accumulate expertise, because when switching employees from project to project, valuable technical context is lost. By building this process, we reduce the risk of errors and non-optimal solutions.

We have dozens of projects under development in parallel, and we strive to support the internal community of experts and the exchange of experience. To do this, we created an architectural committee – a separate group with its leader.

Architectural Committee Is a team that includes the most experienced developers of Backend, Frontend, Mobile. Now we have 54 such specialists, their number is gradually growing.

We already wrote on Habré how we analyze incoming requests and estimate terms of development. We will tell you how architects participate in this.

Work stages

  • Requirements analysis

At the start of the project, we collect functional, non-functional, system and business requirements.

  • Architecture design

The architect, together with the project team, selects the best technical solution in accordance with the product and business development plans.

  • Internal control

Additional verification of the selected solution by 3-5 participants of the architectural committee. If necessary, refinement of the solution taking into account the recommendations.

  • Customer Presentation

The architect responsible for the project forms a document with architectural diagrams, a description of the interactions and other necessary materials, justifies the chosen solution.

During the video presentation to the customer, the architect talks about the result of his work, and the customer in real time asks all his questions.

  • Architectural supervision during development

At the initial stage of the development of each project, the architect helps lay the framework of the system and oversees the architecture.

Following the scheme of work described above, in each decision we take into account the experience gained by the architectural committee in the implementation of previous projects.

Several members of the SimbirSoft Architecture Committee

Conclusion

With the help of the architectural committee, we have already worked out more than a hundred projects. According to our observations, this approach to architecture provides IT companies and customers with several important advantages:

  • Reducing the time to market for an MVP (Minimum Viable Product)
  • Reducing the time to release new features (time-to-market).
  • Independence of the customer: the ability to choose any contractor or conduct development independently.
  • Minimizing the number of failures in the product.
  • The ability to find the optimal solution for each problem and the flexibility in introducing new functionality.

Thank you for the attention! We hope you find this article useful.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *