GOOM uses a SCRUM methodology in its projects, which allows an agile and secure development based on progressive iterations that allow to build and validate the functional requirements of the companies in successive short phases, and thus to have results in production(Quick Wins) in short periods of time.
In addition, for greater assurance, security and speed of development, we use a continuous development method based on Azure DevOps.
Therefore, in terms of methodology we use:
- SCRUM as a project management methodology.
- Azure DevOps as a software development methodology (software engineering).
The principles on which we base the methodology to be applied:
- Our top priority is the early and continuous delivery of software that delivers immediate value.
- We strive for technical excellence and good functional design.
- There are no interruptions, we work at a constant pace indefinitely and until the total project is in production.
- Frequent deliveries, between two weeks and two months, with preference given to the shortest possible time period.
- We attach great importance to communication, which is why we promote face-to-face meetings.
- Putting into production, after validation, is the main measure of progress.
- We strive for simplicity.
- A good integration architecture of systems, applications and functions is very important.
- Continuous reflection on how to improve, be more efficient and cut development and delivery times.
- A focus on the end user is vital. We facilitate change management and monitor the proper use of the software.
SCRUM methodology
It is a list of known objectives and requirements of the final solution to be delivered. The product evolves as the product and the environment in which it will be used evolve.
It is the set of Backlog items + a plan to realise:
- As new work is required, the Development Team adds it to the Sprint Waiting List.
- As work is performed or completed, the estimated remaining work is updated. When elements of the plan are deemed unnecessary, they are deleted.
- Only the development team can change its Sprint backlog during a Sprint.
- Sprint Backlog is a highly visible, real-time picture of the work that the development team plans to do during the Sprint, and belongs only to the development team.
The Increment is the sum of all Product Backlog items completed during a Sprint which is added to the incremental value of all previous Sprints.
Activities
- Iteration planning (Sprint Planning).
- Execution of the iteration (Sprint).
- Team synchronisation meeting (Scrum Meeting).
- Demonstration of completed requirements (Sprint Review).
- Sprint Retrospective
- Refinement of the list of requirements and changes to the project.
Each of the iterations and blocks will contain the following tasks:
- Functional analysis and consultancy (including definition of tests to be carried out).
- Development
- Validation
In the projects, we make a dedication of a team consisting of:
- The dedication of a senior functional consultant who has a good understanding of the overall business process and who can design an entity-relationship data model and process definition.
- The dedication of a senior architect to make sense of the entire tool, including integrations with other current applications.
- Development team specialised in the application(s).
Azure DevOps
With Azure DevOps we make use of an agile methodology for the development and implementation of technology projects, which guarantees:
- Control of the different versions of the developments.
- Creation and allocation of tasks between the different work teams.
- Risk reduction.
- The customer gets value faster.
- GOOM will quickly obtain feedback on the development of the solution.
With Azure Boards as an Agile tool we allow you to plan your work, discuss it and track each task online.
We use kanban boards, to-do lists, team boards and customised reports to keep track of work in real time.
It allows flexible tracking of work items with full traceability.
Quality and development assurance
We pay special attention to a methodology that guarantees the correct development of the solution in the shortest possible time.
With Azure DevOps we manage to streamline the work of the team, saving effort and giving greater focus to the work of developers, however, it is more challenging in terms of team communication and communication management to avoid unidentified test cases that cause further additional work.
We also use the TDD or Test-Driven Development technique. Through this technique, first the tests (test cases) are defined and from these the functionality is developed, repeating the cycle repeatedly. As new functionalities are added, new tests are added.
The steps to apply this technique are as follows:
- Take a requirement or software feature clearly defined and approved by the SCRUM Master.
- Write an initial set of tests for that requirement.
- Develop code necessary to pass" or "pass" these test cases.
- Test cases are checked and marked as passed.
- New test cases may emerge from the review as a result of the refinement of the product definition, additionally, tests of new functionalities received from the product owner are included.
- Develop more code or refactor existing code to pass the additional test cases.
- The process continues until no more test cases can be devised.
This technique ensures that we write just enough code to meet the requirement, while meeting the client's acceptance criteria.
In the traditional model, a significant amount of time is spent on fully designing the logical and physical models before development, with TDD, the design is derived in functionality testing and parallelised with development.
Therefore, this technique (TDD) aligns very well with the iteration approaches defined in agile development and Scrum.
It should be noted that as a premise of TDD, continuous integration and refactoring of development must be performed, as well as the automation of as many tests as possible, in order to speed up testing and development under the high demands of the agile iterative approach and Scrum.
Therefore, when applying this technique it must be taken into account that it is vital to use AZURE DevOps for test tracking and the know-how of the team in the developed application or group of applications.