0% found this document useful (0 votes)
17 views

Untitled Document

Uploaded by

shubhamhiray01
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views

Untitled Document

Uploaded by

shubhamhiray01
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

02.

AGILE DEVELOPMENT
INTRODUCTION -
Agile software development is a group of software development methodologies based
on iterative and incremental development, where requirements and solutions evolve
through collaboration between self-organizing, cross-functional teams.

Agile is a widely popular software development method. Agile methods break the
whole project into small/tiny incremental module build.

It is a method in which requirements and solutions evolve through collaboration


between cross-functional teams which broadly includes designing, coding and testing

WHAT IS AGILITY?
In software engineering, agility refers to the ability to adapt quickly and effectively to changes in
project requirements, market conditions, and customer needs. It is a core principle of Agile
methodologies, which prioritize flexibility, collaboration, and iterative development over rigid
planning and processes.

Agility encourages team structures and attitudes that make communication


(among team members, between technologists and business/organization people,
between software engineers/developers and their managers) more facile.

AGILE PROCESS -
The Agile process in software engineering is a flexible approach to software development that
focuses on delivering small, functional parts of a project in short timeframes, called iterations or
sprints. Unlike traditional methods, where a complete plan is made from the start, Agile allows
teams to adapt and make changes as they go. This helps respond to new information or
changes in customer needs quickly.

Here are the key assumptions of Agile -

1.Change is Expected:
Agile anticipates evolving requirements.

2.Customer Collaboration:
Frequent customer feedback is crucial.

3.Incremental Development:
Deliver small, usable parts frequently.

4.Self-Organizing Teams:
Teams manage their own tasks and decisions.
5.Focus on Working Software:
Working software is the main success measure.

6.Continuous Improvement:
Teams regularly review and improve processes.

ADVANTAGES OF AGILE -
1. Change is Embraced:
With shorter planning cycles, it is easy and to accommodate
and accept changes at any time during the software project.

2. End-goal can be Unknown:


Agile is very beneficial for projects where the end-goal is not clearly defined. As the project
progresses, the goals will come to light and
development can easily adapt.

3. Faster and High-quality Delivery:


Breaking down the project into iterations allows the software team to focus on high-quality
development, with faster delivery.

4. Strong Team Interaction:


Agile highlights the importance of frequent
communication and face-to-face interactions. Teams work together and people are
able to take responsibility and own parts of the projects.

5. Continuous Improvement:
Agile projects encourage feedback from users and team members throughout the whole project,
so lessons learned are used to improve future iterations.

DISADVANTAGES OF AGILE -
1. Planning can be Less Concrete:
Agile is based on time-boxed delivery and project
managers are often reprioritizing tasks, it is possible that some items originally
scheduled for delivery may not be complete in time.

2. Team must be Knowledgeable:


Agile teams are usually small, so team members
must be highly skilled in a variety of areas.

3. Time Commitment from Developers:


Active involvement and collaboration is
required throughout the Agile process, which is more time consuming than a
traditional approach.
4. Final Product can be very Different:
Agile is so flexible, new iterations may be
added based on evolving customer feedback, which can lead to a very different
final deliverable.

AGILE MODEL -
Agile SDLC model is a combination of iterative and incremental process models with
focus on process adaptability and customer satisfaction by rapid delivery of working
software products.

Agile methods break the product into small incremental builds. These builds are
provided in iterations. Each iteration typically lasts from about one to three weeks.

Iterative approach is taken and working software build is delivered after each
iteration. Each build is incremental in terms of features; the final build holds all the
features required by the customer.

ADVANTAGES OF AGILE MODEL -


1. It is a very realistic approach to software development.
2. Promotes teamwork and cross training.
3. Functionality can be developed rapidly and demonstrated.
4. Resource requirements are minimum.
5. Suitable for fixed or changing requirements.
6. Delivers early partial working solutions.
7. Minimal rules, documentation easily employed.
8. Easy to manage.

DISADVANTAGES OF AGILE MODEL -


1. More risk of sustainability, maintainability and extensibility.
2. Depends heavily on customer interaction, so if the customer is not clear, the team
can be driven in the wrong direction.
3. Not suitable for handling complex dependencies.
4. Strict delivery management dictates the scope, functionality to be delivered, and
adjustments to meet the deadlines.

HUMAN FACTORS -
agile development focuses on the
talents and skills of individuals and modeling the process to specific peoples and
teams.

1. Collaboration:
Team members must collaborate with each other to have smooth development of
software.

2. Common Focus:
The team members may perform various tasks and bring different skills to the project. All skills
should be focused on a same goal.

3. Decision Making Ability:


The project team must be allowed the freedom to
control its own destiny, so they can take individual decisions on various issues.

4. Self-Organization:
To get a number of technical benefits, the collaboration should be improved and team
confidence should be boosted.

5. Mutual Trust and Respect:


The agile software project team must exhibits respect and trust which is necessary to make
them strongly connected.

EXTREME PROGRAMMING (XP) -


Extreme Programming is a set of practices that conforms to the values and principles
of Agile.

eXtreme Programming (XP) is originally described by Kent Beck, which is one of the
most popular agile methodologies.

XP is a disciplined approach to delivering high-quality software quickly and


continuously.

It improves a software project in five essential ways i.e., communication, simplicity,


feedback, respect, and courage.

XP is the most specific of the agile frameworks regarding appropriate engineering


practices for software development.

Extreme Programming emphasizes teamwork. Managers, customers, and developers


together make a team.

XP VALUES -
The five values of XP are communication, simplicity, feedback, courage, and respect
and are described as,

1.Communication – Promote open, frequent collaboration.


2.Simplicity – Keep designs and solutions minimal.

3.Feedback – Use regular feedback to guide progress.

4.Courage – Embrace change and tackle challenges.

5.Respect – Value and support each team member’s contributions.

XP PROCESS -
XP is one of the Agile software development methodologies. It provides values and
principles to guide the team behavior. The team is expected to self-organize.
Extreme programming encompasses a set of rules and practices that occur within the
context of four framework activities, planning, design, coding, and testing.

1. Planning -
The planning activity begins with the creation of a set of stories that describe required features
and functionality for software to be built.

2. Design -
XP design follows the KIS (Keep It Simple) principle. A simple design is always
preferred over a more complex representation.

The design provides implementation guidance for a story as it is written – nothing less,
nothing more.

3. Coding -
Once the code completes, it can be unit tested immediately, thereby providing
instantaneous feedback to the developer.

4.Testing -
Comprehensive testing is performed continuously. This includes unit tests, integration tests, and
acceptance tests.

Regular feedback from tests helps the team make necessary adjustments and ensures that the
software meets quality standards.

ADVANTAGES OF EXTREME PROGRAMMING(XP)-


1.Incremental Development:
Consistent with most modern development methods.

2.Continuous Reviews:
A very important practice that can greatly improve any programming team’s performance.

3.Timely Delivery:
Slipped schedules and achievable development cycles ensure timely deliveries.

4.Emphasis on Customer Involvement:


A major help to projects where it can be applied.

Disadvantages of Extreme Programming (XP) -

1.High customer involvement required.


2.Needs skilled developers.
3.Frequent changes can cause bugs.
4.Limited documentation.
5.Not ideal for large projects.
6.Resistance to change in teams.

SCRUM -
Scrum is a framework within which people can address complex adaptive problems, while
productively and creatively delivering products of the highest possible value.

Scrum is also an agile development method, which concentrates particularly on how to manage
tasks within a team-based development environment.

Scrum is the most popular and widely adopted agile method as it is relatively simple to
implement and addresses many of the management issues.

Scrum is an iterative and incremental agile software development framework for managing
software projects and application development.

PAIR PROGRAMMING - IMP PYQ -


in Scrum is a collaborative technique where two developers work together at one workstation.
One, the driver, writes the code, while the other, the navigator, reviews and provides feedback.
This practice enhances code quality, promotes knowledge sharing, and fosters teamwork within
Scrum's iterative development framework.

AGILE UNIFIED PROCESS (AUP) -


It describes a simple, easy to understand approach to developing business application software
using agile techniques and concepts yet still remaining true to the RUP.

The AUP adopts a “serial in the large” and “iterative in the small” philosophy for building
computer-based systems. By adopting the classic UP phased activities—
inception, elaboration, construction, and transition.

AUP provides a serial overlay that enables a team to visualize the overall process flow for a
software project.
AUP activities -
1.Modeling: Create visual representations of requirements and system design.

2.Implementation: Write and integrate code iteratively.

3.Testing: Perform unit, integration, and system tests to ensure functionality.

4.Deployment: Release and configure the software in the production environment.

5.Configuration Management: Manage changes and maintain version control.

6.Project Management: Plan and monitor project progress and adapt to changes.

7.Environment: Set up and maintain development, testing, and production environments.

You might also like