Abstract
The rapid
pace of software development presents significant challenges, which the Agile
Methodology has effectively tackled. This approach emphasizes flexibility and
collaboration, enabling development teams to respond swiftly to new updates and
changing requirements. As a result, it allows for quicker delivery of product
enhancements and updates to customers, ensuring their needs are met promptly
and effectively. However, this situation can present significant challenges for
start-ups and new product development. While some subject matter experts may
have a clear understanding of the project requirements, the developers on the
scrum team often have numerous ways to implement the initial version of the
product. This can lead to unnecessary research and prolonged discussions about
the approach to take for product development, creating obstacles in the
process. In today's software development world, there are countless options-development
kits, tools, and packages-to solve a problem. Often, valuable time is consumed
discussing which approach to take, even when there are no significant
differences between the options. This situation poses a real challenge,
particularly for dynamic Scrum teams. The Arch-Agile (Architecture-Agile)
Methodology builds upon traditional Agile practices, offering a robust
framework that guides teams in initiating the development of new products on a
focused path to meet the goals. This approach provides structure and identifies
a clear path toward successfully completing the product development.
Keywords: Agile methodology, Data, Arch-agile, Software development process
1. Introduction
The
Arch-Agile Methodology2 enhances the
principles of Agile methodology, offering an increased focus on expedited
development of a sellable product. While it retains the core execution
components typical of Agile, such as the formation of scrum teams, the
execution of sprints, daily stand-up meetings, and retrospectives, it
introduces significant enhancements in story planning and backlog management.
Arch-Agile's approach to planning user stories is a more strategic alignment
and transformation of ideas from the product owner to design stories. So
technically, the design backlog is the critical entity in Arch-Agile. This way,
the sprint backlog will evolve and mature in the early stages of product
development, enabling teams to prioritize tasks more effectively with
technically sound user stories with more clarity and detail. This methodology
aims to streamline workflow toward product development, enhance collaboration,
and drive the development on a good path without deviating from product goals.
2. Agile Methodology for Software Development
Figure
1: Software Development using Agile Methodology.
In Agile
methodology2, refer to (Figure 1),
few key individuals or team entities drive software development; these roles
are critical. They are mentioned below:
●Product Owner (PO)3: At a broad level, the
primary objective of the product owner is to ensure that the developed product
provides value to customers, users, and the company. To achieve this, the
product owner is responsible for managing the product backlog and adding stories
that align with this vision.
●Scrum Master3: The scrum master's duty is
critical to the scrum team's success. He facilitates conversations between team
members and other internal and external entities to resolve conflict, channel
knowledge, and improve collaboration. He also manages impediments so that the
scrum team can focus on executing stories at the expected pace. The scrum
master also coaches the team to self-manage.
●Developer4: This is not just a software
developer. The scrum team developer refers to people who help create a valuable
product for the customer. The developer's duties include planning the sprint,
helping to build the sprint backlog, and implementing the stories.
The project
uses the Agile methodology's sprint cycle for execution. A sprint consists of
user stories planned for execution within a short time frame-usually one, two,
or three weeks. The goal of each sprint is to achieve specific objectives that
further product development. In software development, a user story typically
goes through the stages outlined in (Figure 2), from sprint planning to
review and closure.
Figure
2: Lifecycle of a story from sprint planning to the sprint
completion in software development.
The figure 2 illustrates Agile methodology in a typical software development environment, assuming the use of a version management tool like GIT to manage product development artifacts. It's important to note that story implementation in Agile methodology is not limited to software development or version management. During a sprint, the story goes through several straightforward steps: first, it is planned and incorporated into the sprint backlog; then, one of the developers picks up the story and implements it. After implementation, the developer demonstrates the work to the team and the product owner, who then reviews the story and ultimately closes it. This process is simple and effective!
3. Problem Description
If Agile
works well, what issue are we trying to solve? We appreciate the principles of
agile work; however, developers often have an overwhelming array of techniques,
software solutions, and packages. This can complicate key product development
strategies and hinder implementation progress on new product development,
especially in a start-up company. Sometimes, every developer has multiple ideas
for implementing a story because of the wide range of technology and tools
available in the market. Consider a set of user stories that define product
features, where there is only one clear path to achieve them. In this case, the
developer is aligned, and the project will likely proceed smoothly. Now, let’s
explore a scenario where the same set of user stories can be implemented in
five different ways. While everyone may agree that the choice of approach won't
significantly impact the outcome, we often create an additional story to
determine which method is best. This can lead to debates over the results,
complicating matters further. These discussions can consume extra sprints. If
this situation occurs for most of the features of the new product, it can
result in significant delays in project execution. By the time the product is
completed, it may not meet market demands and could become very costly. So, how
can we handle this situation? Arch-Agile to the rescue.
4. Solution - Arch-Agile Methodology
Architecture-agile
methodology, or Arch-Agile Methodology, works by making the stories in the
sprint backlog more technically deeper, with clear implementation guidelines
and no ambiguity before it surfaces for sprint planning. For this Arch-Agile
Methodology uses an extra role called Architect and a special backlog called
design backlog. The role of the Architect is critical in this. He is expected
to have experience designing similar systems and be very knowledgeable about
the product domain or similar domains. His responsibilities include the
following:
·Come up with software and system
architecture.
·Identify software development
packages and tools.
·Identify and resolve project
dependency
·Define the product development
environment and Agile framework integration.
Figure 3: Arch-Agile Methodology.
The Architect is responsible for managing the design backlog. At the beginning of new product development, the stories from the product backlog are not moved to the sprint backlog. Instead, the Architect collaborates with the Product Owner to convert stories from the product backlog into design stories that are listed with priorities in the design backlog. During the sprint planning session, the Architect, Product Owner, developers, and Scrum Master work together to identify which design stories can be transferred to the sprint backlog for the next sprint execution. Since the design stories provide clear instructions on what to implement and how to implement it, they typically offer greater clarity and technical detail compared to stories in the product backlog. This level of detail can also facilitate more accurate story estimation. Once a design story is complete, the architect marks the corresponding story in the product backlog as complete. This way, the architect can ensure that the product is developed based on the system architecture and aligns with the product owner's vision. Practically, this approach is excellent for starting a product development to quickly achieve the first version of a sellable product.
Typically,
companies don't have many architects available to support all product
development. Therefore, it’s advisable to use Arch-Agile to create the initial
version of the product and then transition to Agile for subsequent enhancements
and updates. Figure 4 illustrates the entire product development lifecycle.
Figure
4: Complete Product life cycle with Arch-Agile and Agile.
5. Conclusion
Arch-Agile methodology is an
excellent process framework for starting a new product development and
streamlining the development through a clear technical path to achieve the
swift completion of initial product development. In this framework, the Architect
plays a vital role in setting up the platform for the developers with tools and
accessories that can help the developers work on the stories. The Architect
also designs the first system architecture and identifies the development
environment and packages. Design backlog is another entity added to the Arch
Agile methodology. The design backlog contains technically rich user stories
that the architect derives from the product backlog. When following the
Arch-Agile methodology, sprint planning is done based on the design backlog and
its priorities, not the product backlog. The sprint execution, sprint review,
and retrospection activities in Arch-Agile remain the same as those in Agile
methodology.
6. References