
The Alliance development team is responsible for bringing product development to the customer.
The team consists only of developers, of which there is only one different position “Technical Leader”, in charge of coordinating requirements from the product.
Team members
The team is made up of twelve members (backend developers, frontend developers, database administrators and full stack), of which there are two roles “Technical Leader”, in charge of coordinating requirements from the product and making technical definitions for the development team.
Functions
- Development and maintenance of the technical part of the product.
Methodology
The coordination team is in charge of directing control over what is done and how it will be done.
The coordination team sends requests to the development team, which receives them and distributes them internally, but the team does not establish commitment in the solution of requests.
When there is a technical and product concurrence, the coordination team sends two types of requests which are sent to the development team, these requests are managed by the team leaders, and they come in two types:
- Short developments (They do not have a date, and are solved as long as they do not interrupt the dates of the long developments). They are communicated by the coordination team. These developments are coordinated internally by the members themselves, who acquire the objectives they wish to achieve.
- Long developments (similar to a project). These are communicated by the development leader to the team. These developments are coordinated through daily meetings on the objective to be achieved. Analyzing the acquired commitment and the possible delivery date.
Every Wednesday the team sends an email informing about the progress of the requested requirements.
Communication channels
The team uses the following communication tool provided by the IT team.
- Trello.
In addition, the development team uses the following tool:
- Discord: For internal communications.
Development tools
- Git: Used for version management and code repository.
- Continuous integration (Focused on integration with GoCD).
- The tools to develop are free and depends on each member, because the developments are made in containers.
- Programming languages: Python, javascript, etc. are used (Several languages are used because there is no restriction).
Architecture
Alliance is built on an automated architecture (DevOps).
Backend: REST is used.
Frontend in web and app: MVVM (Model-view-model view) is used.
The architecture is based on solution layers:
- Authentication layer: Used in Checks and Alliance products.
- Authorization layer: Handles all authorizations for all services.
- Services: Solves particular functions.
- Automatic processing layer: There is a way to perform automatic processing within the Alliance equipment.
Architectural safety
The layered model is not thinking about security issues, it is thinking about responsibility, one component is responsible for another component, of which two layers of security are implemented, independent of each other.
- The first layer is in charge of identifying the user in the system.
- The second layer is in charge of verifying what permissions the user has.
They are usually modeled together, which can cause problems in assigning permissions to users, with the risk of giving more permissions than necessary to clients. For this reason the layered model is not thinking about security issues.
Infrastructure
At the code level, the service is available to everyone, but when the layers are implemented, access is closed as if it were a firewall. In other words, any user is allowed to access all the resources of the product, but the layers are in charge of restricting access to different resources of the product.
CLASSIFICATION: INTERNAL USE
Any printing or digital copy of the document is invalid. The user of the document must ensure that it is current before using it. This can be checked with the person responsible for the ISMS.