0% found this document useful (0 votes)
43 views11 pages

Agile Development

Assignment about AGILE DEVELOPMENT

Uploaded by

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

Agile Development

Assignment about AGILE DEVELOPMENT

Uploaded by

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

AGILE DEVELOPMENT

1.WHAT IS AGILITY

The word agility has different meanings in different contexts but all the definitions have one thing in
common that overlap in every definition for example Definition from Oxford Languages says that
“Agility is ability to move, think and understand quickly and easily”. In this definition agility is
associated with speed and rapidity. If we bring this definition to context of software engineering
“Agility means effective (rapid and adaptive) response to change, effective communication among
all stockholder.”

2.WHAT IS AGILE PROCESS

The agile model is a combination of the Iterative and incremental model. This model focuses more
on flexibility while developing a product rather than on the requirement. In Agile, a product is
broken into small incremental builds. It is not developed as a complete product in one go. Each build
increments in terms of features. The next build is built on previous functionality.

Each iteration is considered as a short time "frame" in the Agile process model, which typically lasts
from one to four weeks. The division of the entire project into smaller parts helps to minimize the
project risk and to reduce the overall project delivery time requirements. Each iteration involves a
team working through a full software development life cycle including planning, requirements
analysis, design, coding, and testing before a working product is demonstrated to the client.

1.1 Phases of Agile Model

Following are the phases in the Agile model are as follows:

1. Requirements gathering: In this phase, you must define the requirements. You should explain
business opportunities and plan the time and effort needed to build the project. Based on this
information, you can evaluate technical and economic feasibility.

2. Design the requirements: When you have identified the project, work with stakeholders to define
requirements. You can use the user flow diagram or the high-level UML diagram to show the work of
new features and show how it will apply to your existing system.

3. Construction/ iteration: When the team defines the requirements, the work begins. Designers
and developers start working on their project, which aims to deploy a working product. The product
will undergo various stages of improvement, so it includes simple, minimal functionality.

4. Testing: In this phase, the Quality Assurance team examines the product's performance and looks
for the bug.

1|Page
5. Deployment: In this phase, the team issues a product for the user's work environment.

6. Feedback: After releasing the product, the last step is feedback. In this, the team receives
feedback about the product and works through the feedback.

1.2 Agile Principles

 The highest priority of this process is to satisfy the customer.

 Acceptance of changing requirement even late in development.

 Frequently deliver a working software in small time span.

 Throughout the project business people and developers work together on daily basis.

 Projects are created around motivated people if they are given the proper environment and
support.

 Face to face interaction is the most efficient method of moving information in the
development team.

 Primary measure of progress is a working software.

 Agile process helps in sustainable development.

 Continuous attention to technical excellence and good design increases agility.

 From self-organizing teams the best architecture, design and requirements are emerged.

 Simplicity is necessary in development.

3.Advantage And Disadvantages of Agile Model

3.1 Advantages of Agile Model

 Customer satisfaction by rapid, continuous delivery of useful software.

 People and interactions are emphasized rather than process and tools. Customers,
developers and testers constantly interact with each other.

 Working software is delivered frequently (weeks rather than months).

 Close, daily cooperation between business people and developers.

 Continuous attention to technical excellence and good design.

 Regular adaptation to changing circumstances.

 Even late changes in requirements are welcomed

2|Page
3.2 Disadvantage of Agile Model

 In case of some software deliverables, especially the large ones, it is difficult to assess the
effort required at the beginning of the software development life cycle.

 There is lack of emphasis on necessary designing and documentation.

 The project can easily get taken off track if the customer representative is not clear what
final outcome that they want.

 Only senior programmers are capable of taking the kind of decisions required during the
development process. Hence it has no place for newbie programmers, unless combined with
experienced resources.

3.3 When to Use Agile Model

 When new changes are needed to be implemented. The freedom agile gives to change are
very important. New changes can be implemented at very little cost because of the
frequency of new increments that are produced.

 To implement a new feature the developers, need to lose only the work of a few days, or
even only hours, to roll back and implement it.

 Unlike the waterfall model in agile model very limited planning is required to get started
with the project. Agile assumes that the end users’ needs are ever changing in a dynamic
business and IT world. Changes can be discussed and features can be newly effected or
removed based on feedback. This effectively gives the customer the finished system they
want or need.

4. OTHER AGILE PROCESS MODELS

There are different kinds of agile process models for different scenarios and applications. For the
seek of time we will see the main 6 models. Agile Process models are below:

 Scrum

 Extreme Programming

 Adaptive Software Development ASD

 Dynamic System Development Model DSDM

 Crystal

 Feature Driven Development

Let us look at each with the phases involved in them:

3|Page
4.1 Scrum

The team should have proper communication and there should not any overhead on each associate.
The work needs to be shared and must be done parallelly. The process is adaptable to both business
and technical challenges.

The phase patterns in the scrum are:

 Backlog: List the requirements in the form of a story and prioritize them in descending
order.

 Sprints: This basic work unit needs to required to achieve the backlog requirement packet.

 Scrum Meetings: There need to be at least 15 minutes daily stand up so that any
impediments in the sprint packets can be.

 Reviews and Demos: There will be Reviews and demos so that the work packet can be
tracked and if any changes that can be.

4.2 Extreme Programming


Extreme programming XP is quite helpful where there are frequent changes in the requirement and
these changes can be incorporated easily. It is based on the object-oriented approach. It follows
short releases for the product in its development life cycle.

Each iteration of this model has the following phases:

 Iteration Planning: In this phase, the requirement is understood and drafted as stories and
sub-tasks.

 Design: This phase takes care of designing the implementation.

 Coding or Implementation: The requirement is coded.

 Testing: The implementation is rigorously tested for defects.

Note: we going to about Extreme programming in detail in the next section

4|Page
4.3 Adaptive Software Development
In this method group of individuals tries to obtain a solution to a major problem which can be
difficult for specific individual agents. More emphasis on group communication and adaptive
collaborations.

Phases include:

 Speculate: Get the complex requirement.

 Collaborate: Require to work jointly to obtain the desired result.

 Learn: The team has to enhance their knowledge and solving the complex requirement is
great learning. The learning can be from the technical review, retrospective meetings.

4.4 Dynamic System Development Model DSDM


DSDM is a type of rapid application development approach where there are stringent timelines for
delivery are met. The most important activity of DSDM is the user is involved actively and the team
members are allowed to take decisions. Frequent delivery of releases is one of the characteristics of
DSDM.

The phase of development framework of DSDM are as follows

 Get the complete requirements details and constraints and will come under a feasibility
study.

 For business study understand the functional requirement of the software.

 Design and build Iterations.

 Implementation

4.5 Crystal
This is an agile software development model that focuses on the people in the team and their
working rather than on processes and tools. Crystal model firmly believes that people skill,
teamwork, and their communication is firmly important in product outcomes.

Crystal methodologies are as below.

 CLEAR: for small and low critical efforts.

 ORANGE: For moderately larger and critical projects.

 ORANGE WEB: Typically, electronic business.

5|Page
4.6 Feature Driven Development
As the name suggests FDD manages the software development process with iterations focused on
“features”. These features may be necessarily the product features but also can be akin to the user
stories which are there in the sprint

The project life the cycle of FDD model is as follows:

 Develop an overall model

 Build the features list that considered necessary


 Plan by the features
 Design by the feature
 build or implement by the feature.

5.EXTREME PROGRAMMING

The first Extreme Programming project was started March 6, 1996. Extreme Programming is one of
several popular Agile Processes. It has already been proven to be very successful at many companies
of all different sizes and industries worldwide.

Extreme Programming is successful because it stresses customer satisfaction. Instead of delivering


everything you could possibly want on some date far in the future this process delivers the software
you need as you need it. Extreme Programming empowers your developers to confidently respond
to changing customer requirements, even late in the life cycle.

5.1 How Does Extreme Programming (XP) Work?

XP, unlike other methodologies, is very opinionated when it comes to engineering practices.

Besides practices, XP is built upon values and principles.

Values provide purpose to teams. They act as a “north star” to guide your decisions in a high-level
way. However, values are abstract and too fuzzy for specific guidance. For instance: saying that you
value communication can result in many different outcomes.

Practices are, in some ways, the opposite of values. They’re concrete and down to earth, defining
the specifics of what to do. Practices help teams hold themselves accountable to the values. For
instance, the practice of Informative Workspaces favors transparent and simple communication.

Principles are domain-specific guidelines that bridge the gap between practices and values.

6|Page
5.2 Values of Extreme Programming

The five values of XP are communication, simplicity, feedback, courage, and respect and are
described in more detail below.

7|Page
 Communication: Software development is inherently a team sport that relies on
communication to transfer knowledge from one team member to everyone else on the
team. XP stresses the importance of the appropriate kind of communication – face to face
discussion with the aid of a white board or other drawing mechanism
 Simplicity: Simplicity means “what is the simplest thing that will work?” The purpose of this
is to avoid waste and do only absolutely necessary things such as keep the design of the
system as simple as possible so that it is easier to maintain, support, and revise. Simplicity
also means address only the requirements that you know about; don’t try to predict the
future.
 Feedback: Through constant feedback about their previous efforts, teams can identify
areas for improvement and revise their practices. Feedback also supports simple design.
Your team builds something, gathers feedback on your design and implementation, and
then adjust your product going forward.
 Courage: you need courage to raise organizational issues that reduce your team’s
effectiveness. You need courage to stop doing something that doesn’t work and try
something else. You need courage to accept and act on feedback, even when it’s difficult to
accept.
 Respect: The members of your team need to respect each other in order to communicate
with each other, provide and accept feedback that honors your relationship, and to work
together to identify simple designs and solutions.

5.2 When to Use Extreme Programming

Extreme programming can work well for teams that:

 Expect their system’s functionality to change every few months.

 Experience constantly changing requirements or work with customers who aren’t sure what
they want the system to do.

 Want to mitigate project risk, especially around tight deadlines.

 Include a small number of programmers (between 2 and 12 is preferable).

 Are able to work closely with customers.

 Are able to create automated unit and functional tests

8|Page
6. AGILITY AND COST OF CHANGE

An agile process reduces the agility and cost of change because software is released in increments
and change can be better controlled within an increment.

Agility argue that a well-designed agile process “flattens” the cost of change curve shown in
following figure, allowing a software team to accommodate changes late in a software project
without dramatic cost and time impact.

When incremental delivery is coupled with other agile practices such as continuous unit testing and
pair programming, the cost of making a change is attenuated.

Although debate about the degree to which the cost curve flattens is ongoing, there is evidence to
suggest that A SIGNIFICANT REDUCTION IN THE COST OF CHANGE CAN BE ACHIEVED.

7. PERSONAL VIEW

In above we saw about agile process model and its different attributes in limited detail now let see
the some personal / group members view in agile

Now a days Agile model is the most popular software development lifecycle model (SDLC). the main
reason behind its popularity is it reduce the risk of spending a lot time every time a change is needed
and mainly focus on quality of the product than the documentation and completing the project
within the given project constraints.

In future we think this is a software development lifecycle model that we bring to consideration for
future projects.

9|Page
7.REFERENCE

Agile Model (Software Engineering) - javatpoint. (n.d.). www.javatpoint.com.


https://www.javatpoint.com/software-engineering-agile-model

Extreme Programming: A Gentle Introduction. (n.d.). http://www.extremeprogramming.org/

e-Zest Solutions Inc. (n.d.). Agile Software Development Process Models. e-Zest. https://www.e-
zest.com/agile_software_development

Try QA. (2020, November 3). https://tryqa.com/what-is-agile-model-advantages-disadvantages-and-


when-to-use-it

What is Agility in context of software engineering? Explain Extreme Programming (XP) with suitable
diagram. (n.d.). https://www.ques10.com/p/8333/what-is-agility-in-context-of-software-engineeri-1

Dybå, T., & Dingsøyr, T. (2008). Empirical studies of agile software development: A systematic
review. Information and software technology, 50(9-10), 833-859.

Abrahamsson, P., Salo, O., Ronkainen, J., & Warsta, J. (2017). Agile software development methods:
Review and analysis. arXiv preprint arXiv:1709.08439.

10 | P a g e
Contents

1. WHAT IS AGILITY...........................................................................................................................1
2. WHAT IS AGILE PROCESS...............................................................................................................1
1.1 Phases of Agile Model...........................................................................................................1
1.2 Agile Principles......................................................................................................................2
3. Advantage And Disadvantages of Agile Model............................................................................2
3.1 Advantages of Agile Model.........................................................................................................2
3.2 Disadvantage of Agile Model......................................................................................................3
3.3 When to Use Agile Model...........................................................................................................3
4. OTHER AGILE PROCESS MODELS.......................................................................................................3
4.1 Scrum..........................................................................................................................................4
4.2 Extreme Programming................................................................................................................4
4.3 Adaptive Software Development...............................................................................................4
4.4 Dynamic System Development Model DSDM............................................................................5
4.5 Crystal.........................................................................................................................................5
4.6 Feature Driven Development.....................................................................................................5
5.EXTREME PROGRAMMING................................................................................................................6
5.1 How Does Extreme Programming (XP) Work?...........................................................................6
5.2 Values of Extreme Programming................................................................................................6
5.2 When to Use Extreme Programming..........................................................................................7
6. AGILITY AND COST OF CHANGE........................................................................................................8
7. PERSONAL VIEW...............................................................................................................................8
7.REFERENCE.........................................................................................................................................9

11 | P a g e

You might also like