Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
26 views

Agile Development

agile development notes
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views

Agile Development

agile development notes
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

Agile development model

• In earlier days Iterative Waterfall model was very popular to complete a


project. But nowadays developers face various problems while using it to
develop software.
• The main difficulties included handling customer change requests during
project development and the high cost and time required to incorporate
these changes.
• To overcome these drawbacks of the Waterfall model, in the mid-1990s
the Agile Software Development model was proposed.
• The Agile model was primarily designed to help a project adapt to change
requests quickly.
• So, the main aim of the Agile model is to facilitate quick project
completion.
• To accomplish this task agility is required. Agility is achieved by fitting
the process to the project and removing activities that may not be essential
for a specific project.
• Also, anything that is waste of time and effort is avoided.
Actually Agile model refers to a group of development processes. These
processes share some basic characteristics but do have certain subtle differences
among themselves.
Agile SDLC models:
• Crystal: Crystal Agile methodology places a strong emphasis on
fostering effective communication and collaboration among team
members, as well as taking into account the human elements that are
crucial for a successful development process. This methodology is
particularly beneficial for projects with a high degree of uncertainty,
where requirements tend to change frequently.
• Atern: This methodology is tailored for projects with moderate to
high uncertainty, where requirements are prone to change frequently.
Its clear-cut roles and responsibilities focus on delivering working
software in short time frames, and governance practices set it apart and
make it an effective approach for teams and projects.
• Feature-driven development: This approach is implemented by
utilizing a series of techniques like creating feature lists, conducting
model evaluations, and implementing a design-by-feature method to
meet its goal. This methodology is particularly effective in ensuring
that the end product is delivered in a timely manner and that it aligns
with the requirements of the customer.
• Scrum: This methodology serves as a framework for tackling
complex projects and ensuring their successful completion. It is led by
a Scrum Master, who oversees the process, and a Product Owner, who
establishes the priorities. The Development Team, accountable for
delivering the software, is another key player.
• Extreme programming (XP): It uses specific practices like pair
programming, continuous integration, and test-driven development to
achieve these goals. Extreme programming is ideal for projects that
have high levels of uncertainty and require frequent changes, as it
allows for quick adaptation to new requirements and feedback.
• Lean development: It is rooted in the principles of Lean
Manufacturing and aims to streamline the process by identifying and
removing unnecessary steps and activities. This is achieved through
practices such as continuous improvement, visual management, and
value stream mapping, which helps in identifying areas of
improvement and implementing changes accordingly.
• Unified process: Unified Process is a methodology that can be
tailored to the specific needs of any given project. It combines
elements of both waterfall and Agile methodologies, allowing for an
iterative and incremental approach to development. This means that
the UP is characterized by a series of iterations, each of which results
in a working product increment, allowing for continuous improvement
and delivery of value to the customer.
All Agile methodologies discussed above share the same core values and
principles, but they may differ in their implementation and specific practices.
Agile development requires a high degree of collaboration and communication
among team members, as well as a willingness to adapt to changing
requirements and feedback from customers.
In the Agile model, the requirements are decomposed into many small parts that
can be incrementally developed. The Agile model adopts Iterative development.
Each incremental part is developed over an iteration. Each iteration is intended
to be small and easily manageable and can be completed within a couple of
weeks only. At a time one iteration is planned, developed, and deployed to the
customers. Long-term plans are not made.
The agile model is a combination of iterative and incremental process models.
The time to complete an iteration is known as a Time Box. Time-box refers to
the maximum amount of time needed to deliver an iteration to customers. So,
the end date for an iteration does not change. However, the development team
can decide to reduce the delivered functionality during a Time-box if necessary
to deliver it on time. The central principle of the Agile model is the delivery of
an increment to the customer after each Time-box.
Principles of Agile model:
• To establish close contact with the customer during development and
to gain a clear understanding of various requirements, each Agile
project usually includes a customer representative on the team.
• At the end of each iteration stakeholders and the customer
representative review, the progress made and re-evaluate the
requirements.
• The agile model relies on working software deployment rather than
comprehensive documentation.
• Frequent delivery of incremental versions of the software to the
customer representative in intervals of a few weeks.
• Requirement change requests from the customer are encouraged and
efficiently incorporated.
• It emphasizes having efficient team members and enhancing
communications among them is given more importance. It is realized
that enhanced communication among the development team members
can be achieved through face-to-face communication rather than
through the exchange of formal documents.
• It is recommended that the development team size should be kept small
(5 to 9 people) to help the team members meaningfully engage in face-
to-face communication and have a collaborative work environment.
• The agile development process usually deploys Pair Programming. In
Pair programming, two programmers work together at one
workstation. One does coding while the other reviews the code as it is
typed in. The two programmers switch their roles every hour or so.

Phases of Agile Model


Here are the different phases of Agile:
Here are the important stages involved in the Agile Model process in the SDLC
life cycle:

• Requirements Gathering: In this Agile model phase, you must define the
requirements. The business opportunities and the time and effort required
for the project should also be discussed. By analyzing this information, you
can determine a system’s economic and technical feasibility.
• Design the Requirements: Following the feasibility study, you can work
with stakeholders to define requirements. Using the DFD diagram or high-
level UML diagram, you can determine how the new system will be
incorporated into your existing software system.
• Develop/Iteration: The real work begins at this stage after the software
development team defines and designs the requirements. Product, design,
and development teams start working, and the product will undergo
different stages of improvement using simple and minimal functionality.
• Test: This phase of the Agile Model involves the testing team. For
example, the Quality Assurance team checks the system’s performance and
reports bugs during this phase.
• Deployment: In this phase, the initial product is released to the user.
• Feedback: After releasing the product, the last step of the Agile Model is
feedback. In this phase, the team receives feedback about the product and
works on correcting bugs based on the received feedback.
Compared to Waterfall, Agile cycles are short. There may be many such cycles
in a project. The phases are repeated until the product is delivered.

You might also like