An Agile Squad executed the analysis, writing, and refinement of requirements for a Britânia system
Client
Area
Summarized Problem
Summarized Solution
Results
Visionnaire's team took care of all aspects involved in the analysis and requirements
refinement, such as identification, documentation, and validation of the needs and expectations regarding a system in development.
Thus, all relevant requirements were addressed and understood by everyone involved before the development stage itself.
The extensive work resulted in a detailed system vision document as well as a business
requirements document, where the needs for the requirements gathering for Britânia, more specifically for the company's
Human Resources team, were collected, analyzed, and defined.
In short, Visionnaire provided Britânia with increased productivity and cost
reduction through a highly specialized software development team focused on delivery with agile and cloud-based processes,
as well as the use of Scrum and weekly Sprints.
Technologies
Visionnaire has long used (and still uses for many clients) the Unified Process, following
PMI PMBok project management concepts, more recently adapted to Agile and Scrum processes.
In recent years, agile development philosophy based on Scrum has gained traction worldwide,
and Visionnaire has been implementing this agile development philosophy in its processes. For most cases, being a software
factory and adapting to our clients' development processes, Scrum is not used, but we recommend it when possible.
For systems analysis and design, we use the entire UML (Unified Modeling Language)
philosophy of the OMG (Object Management Group), using both open-source tools and IBM/Rational tools (Visionnaire is an IBM
development partner and has all the tools).
As version control software and configuration management, we use Git-based platforms
like Atlassian Bitbucket, GitHub, or GitLab. For Scrum projects, we use Atlassian Jira integrated with Git (using Sourcetree,
GitKraken, or command line) for configuration management, planning, and project management.
For documentation, we use Atlassian Confluence. For other development process activities,
we use Atlassian Wiki. For administrative tasks/activities, we use Trello and Jira. We use communication tools like Slack
in all areas.
For prototyping, we use Balsamiq and Mockflow (in addition to prototyping tools in
some IDEs like Xcode for Apple systems). As IDEs (Integrated Development Environments), we use Eclipse, Visual Studio, Visual
Studio Code, Sublime Text, Xcode, among others.
For system monitoring in datacenters and Application Lifecycle Management (ALM), we
use New Relic. For datacenters in Visionnaire-developed systems for clients, we use AWS (Amazon Web Services), Google Cloud,
Azure, Weblink, Emmex, and our servers (choosing the most suitable solution for each case). Especially when using advanced
cloud platforms like Amazon's AWS, Visionnaire leverages the platform's advantages such as developing systems in microservices
architecture (Serverless philosophy), distributed databases, and system integration through REST APIs. AWS is one of the best
platforms available for this purpose, providing load balancing for microservices, powerful databases like Redshift and Aurora,
and the ability to run code without provisioning or managing servers with AWS Lambda. Google Cloud Platform is also heavily
used for some clients.
For clients more advanced in CI and CD (Continuous Integration and Continuous Delivery)
concepts, we use GitLab and extensive process automation via YAML scripts, with heavy use of micro-virtualization with Docker
and Kubernetes.
However, it is important to emphasize that, in all cases, we prioritize adapting to
our clients' needs and tools, as we are a software factory with nearly three decades of history.
Detailed Problem
In early 2020, Britânia was developing a performance management platform and
needed consulting for software requirements analysis, writing, and refinement for the project. Requirements analysis, writing,
and refinement are crucial stages in software system development, fundamental to the success of a software project, ensuring
that the final product is functional, high-quality, and aligned with stakeholders' expectations.
Requirements analysis involves identifying, documenting, and validating the needs
and expectations of stakeholders regarding the system to be developed. This stage ensures that all relevant requirements are
understood and any ambiguity or inconsistency is resolved before proceeding to the design and implementation phases.
Requirements refinement, on the other hand, is the process of further detailing and
specifying the identified requirements during the analysis. This can include decomposing general requirements into more specific
ones, defining clear acceptance criteria, and prioritizing requirements based on their importance and impact on the project.
Refinement is an iterative process that can continue throughout the development lifecycle, adapting to changes in stakeholder
needs and business conditions.
The importance of these stages lies in several factors, including:
- Risk reduction: requirements analysis and refinement help identify potential problems and conflicts early in the development process, reducing the risk of rework and unmet user expectations;
- Clarity and communication: these processes promote better communication between stakeholders and the development team, ensuring that everyone has a common understanding of the system's objectives and functionalities;
- Development efficiency: well-defined requirements facilitate the creation of a more precise design and efficient implementation, as developers have clear guidelines to follow;
- Product quality: a system developed based on well-analyzed and refined requirements tends to be more aligned with users' real needs, resulting in greater satisfaction and better usability.
Detailed Solution
Following Silicon Valley's best practices, Visionnaire offers:
- Specialized software development team to meet clients' professional talent demands;
- Agile and cloud-based process focused on delivery;
- Use of Scrum and weekly or bi-weekly Sprints to accelerate projects;
- Integration of Development (Dev) and Operations (Ops), delivering a complete DevOps solution to our clients;
- Use of 100% digital cloud tools for project tracking;
- Use of modern software technology such as Microservices Architecture, Virtualization, Continuous Integration, and Continuous Delivery;
- Over 28 years of experience in developing and delivering successful projects with modern technologies;
- All this allowing increased productivity and cost reduction in clients' projects.
The importance of Agile Squads in software development lies in their ability to increase
flexibility, speed, and collaboration. They allow rapid adaptation to changing requirements, ensure continuous value delivery
to clients, and promote a sense of ownership and responsibility among team members. This approach leads to higher quality
software and more efficient development cycles.
Visionnaire quickly appointed an Agile Squad for this project, a multifunctional team
that worked collaboratively to meet Britânia's needs. In Visionnaire's Agile Squads, each team includes members with
various skills, allowing them to handle all aspects of the software development process, from planning to deployment.
Visionnaire's team had frequent contact with Britânia employees, including face-to-face
meetings with users of the system in development, which was crucial for conducting a thorough analysis and producing a comprehensive
and detailed document.
This project had a hybrid scope, a balanced approach that combines the best of traditional
and agile methods, promoting both predictability and control, as well as flexibility and adaptability. Concepts from traditional
and agile approaches were combined for project scope definition and management, leveraging the benefits of both methodologies
to better meet the specific needs of a project.
Thus, following a closed scope approach, an initial detailed planning was carried
out to define the main functionalities and system requirements, providing a clear view of the project's objectives and expectations
from the beginning. At the same time, following agile approach concepts, the initial project incorporated short and iterative
development cycles (Sprints) so that parts of the scope were adjusted as the project progressed, allowing adaptation to client
needs changes and new technical discoveries.
The hybrid scope also allowed incremental deliveries of functionalities, providing
continuous feedback from stakeholders and enabling quick adjustments. It combined strict change control practices with agile
flexibility, ensuring that scope changes were managed in a structured manner without compromising adaptability.
Brochure
Presentation