0% found this document useful (0 votes)
68 views61 pages

Se Unit 5

Uploaded by

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

Se Unit 5

Uploaded by

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

SOFTWARE ENGINEERING AND

AGILE SOFTWARE
DEVELOPMENT

UNIT:5 AGILE PROCESS


 UNIT V AGILE PROCESSES

 Lean Production – SCRUM, Crystal, Feature Driven Development – Adaptive Software


Development – Extreme Programming: Method Overview – Lifecycle – Work
Products, Roles and Practices.
Lean agile

Lean agile aims to eliminate wasteful resources and tasks for improved efficiency and reduced
costs — while never sacrificing quality. In fact, lean agile prioritizes bringing value to the
customer with every decision that’s made.
Lean agile is a development method that helps teams identify waste and refine processes. It’s a
guiding mindset that facilitates efficiency, effectiveness, and continuous improvement.

The development of lean agile


Lean agile, or lean software development, originates from the principles of lean manufacturing
. The concept was brought into manufacturing to improve profits by reducing costs instead of
solely relying on increased sales. If a company can eliminate waste and become more efficient,
it can save money, thereby increasing overall profits.
 Lean agile is an agile methodology that, in basic terms, is quite simple: improve
efficiency by eliminating waste. Unlike traditional, waterfall project management,
which dictates a set plan laid out by a project manager, lean agile strives to reduce all
tasks and activities that don’t provide real value. This helps ensure everyone involved
in a project or product development can work at optimal efficiency.

 If you’re looking to dive into the history of lean agile, Lean Enterprise Institute Inc.,
founded in 1997 by James P. Womack, PhD, is a leading resource for lean
methodology. It aims to help people and teams work better through lean thinking and
practices.

 Lean practices are popular because they can be applied to other agile approaches and
software development methods. Lean agile provides a clear application for scaling agile
, which is often difficult for large or growing organizations
The benefits of lean agile

 Waste less time

 Time is wasted when processes don’t run smoothly. In lean manufacturing, it’s
important for goods and services to be delivered quickly and effectively. No one's time
should be wasted on the job, and companies should aim for shorter lead times without
sacrificing quality.
 Wasting time in any industry is expensive, but it’s particularly important to pay
attention when working in agile software development. Even a small bottleneck or
broken process can completely throw off a workflow or product deadline. Lean agile
helps development teams manage time effectively to ensure everyone is utilized, no
one's time is wasted, and roadblocks are anticipated in advance
 Reduce costs

 When businesses eliminate waste, they save money. In its original form, lean manufacturing
ensured companies had the right amount of materials, employees, and working hours at any
given time. Overproduction, overhiring, or simply having too many materials to store are
expensive wastes that can be eliminated through better management of systems and processes.

 Any business, no matter the industry, will save money with improved efficiency. Lean agile
ensures that waste is continually eliminated and agile teams continue to fine-tune processes
for optimal efficiency.

 Improve work quality

 With lean agile, it’s not only about efficiency — it's about maintaining efficient processes
while bringing a quality product to customers and stakeholders. When businesses
intentionally improve processes, they remain competitive. Lean principles consider the
customer value of any action or decision to ensure needs are always met or exceeded.
 The five principles of lean agile
There are five core principles for implementing lean methodology:
Value

Value stream

Flow

Pull

Perfection

These principles describe a five-step process that guides the implementation of lean
techniques for manufacturing, software development teams, and other agile practicing
industries.
1. Identify value

 The first step requires you to step into the shoes of the customer. Value is what the
customer needs and wants from a specific project or product.

 Consider from the customers’ point of view: What are their expectations? What are
they willing to pay for? How do they want their needs met?

 Sometimes, customers may be unable to define exactly what they’re looking for —
especially if it’s a new product or technology they’re unfamiliar with.

 In any case, the project cannot move forward without clearly identifying what it will
take to provide customer satisfaction. You’ll need to identify the end goal (value)
customers are hoping to find with the product or service.
2. Map the value stream
 Next, the team visually maps each of the steps and processes it will take to bring the
product from inception to delivery. By making each step visible and always keeping
the value top-of-mind, it’s easier to see which steps don’t directly contribute to
continuous delivery. Once wasteful steps are found, the team finds ways to eliminate
those steps or reduce them as much as possible.

 Getting rid of waste ensures your company doesn’t unnecessarily spend money on
steps and processes that don’t add value. And — most importantly — the customer
gets exactly what they’re looking for.
3. Create flow

 Once the waste is eliminated from the value stream, the next step is ensuring the remaining
processes work as effectively and efficiently as possible, which means no delays, disruptions, or
bottlenecks. It’s important for the steps that create value to work in tight sequences to ensure the
product flows smoothly toward the customer.

 In order to achieve this kind of agile transformation, lean businesses must train their employees to
be adaptive and multi-skilled, create cross-functional teams, break down and reconfigure steps in
the production, and balance employee workloads.

 4. Establish a pull system

 With enhanced flow, your team can deliver products and services faster. A pull system enables
“just-in-time” manufacturing and delivery, limiting inventory and work in progress (WIP) items by
only producing enough to meet customer demand.

 By establishing a pull system, you create products and services as needed as opposed to creating
them in advance, which leads to a growing inventory or list of tasks that need to be stored and
managed — draining your bottom line.
 5. Seek perfection

 By completing steps 1-4, waste is eliminated — for now. However, the work is never
done. There is always a process that could be improved, and there will always be steps
in project and product development that waste time and money or don’t deliver value.
That’s why the fifth step of seeking perfection is key.

 Lean takes time to implement, and going through the process once is not enough. Build
a continuous improvement mindset into your company culture, and never settle for the
same old.
What Is Agile Scrum Methodology?
 Agile scrum methodology is a sprint-based project management system with the
goal of delivering the highest value to stakeholders.
 Agile and scrum are two similar project management systems with a few key
differences.

 Agile is more flexible and promotes leadership teams, while scrum is more rigid and
promotes cross-functional teams.

 Agile lets teams develop projects in small increments called “sprints” and allows for
more effective collaborations among teams working on complex projects.

 Agile scrum methodology is used by companies of all sizes for its ability to provide
high-end collaboration and efficiency for project-based work. Agile and scrum are two
different methods and can be used separately; however, their combined benefits make
the agile scrum methodology the most popular use of agile. Here’s the complete guide
to agile scrum methodology.
How does agile scrum work?
 Agile scrum methodology is the combination of the agile philosophy and the scrum
framework. Agile means “incremental, allowing teams to develop projects in small
increments. Scrum is one of the many types of agile methodology, known for breaking
projects down into sizable chunks called “sprints.” Agile scrum methodology is good
for businesses that need to finish specific projects quickly.
 Agile scrum methodology is a project management system that relies on incremental
development. Each iteration consists of two- to four-week sprints, where the goal of
each sprint is to build the most important features first and come out with a potentially
deliverable product. More features are built into the product in subsequent sprints and
are adjusted based on stakeholder and customer feedback between sprints.
 Whereas other project management methods emphasize building an entire product in
one operation from start to finish, agile scrum methodology focuses on delivering
several iterations of a product to provide stakeholders with the highest business value in
the least amount of time.
 Agile scrum methodology has several benefits. First, it encourages products to be built
faster, since each set of goals must be completed within each sprint’s time frame. It
also requires frequent planning and goal setting, which helps the scrum team focus on
the current sprint’s objectives and increase productivity
What is agile?

 Agile is a process that allows a team to more efficiently manage a project by breaking it
down into several stages, each of which allows for consistent collaboration with
stakeholders to promote steady improvements at every stage.
 Agile was first described in the Agile Manifesto in 2000 by a group of developers who
sought out a new method of writing software. The manifesto cites four values:
 Individuals and interactions over processes and tools

 Working software over comprehensive documentation

 Customer collaboration over contract negotiation

 Responding to change over following a plan


What are the 12 principles of agile?
 The Agile Manifesto also enacted 12 principles in reference to software development
and was later reconfigured to fit a wider perspective of users:
 Customer satisfaction

 Early and continuous delivery

 Embrace change

 Frequent delivery

 Collaboration of businesses and developers


 Motivated individuals

 Face-to-face conversation

 Functional products

 Technical excellence

 Simplicity

 Self-organized teams

 Regulation, reflection and adjustment


 What is scrum?
 In short, scrum is a framework for effective collaborations among teams working on complex
products. Scrum is a type of agile technology that consists of meetings, roles, and tools to help
teams working on complex projects collaborate and better structure and manage their workload.
Although it is most often used by software development teams, scrum can be beneficial to any
team working toward a common goal.
 Who can benefit from scrum?
 While scrum can be useful for a wide variety of businesses and projects, these are the most likely
beneficiaries:
 Complicated projects: Scrum methodology is ideal for projects that require teams to complete a
backlog. Scrum breaks down each process into bite-sized chunks that can make a complex
project easier.

 Companies that value results: Scrum is also beneficial to companies that value results over the
documented progress of the process. This is because scrum is focused on efficiency and
innovation to drive results, rather than a detailed, rigid process.

 Companies that cater to customers: Scrum can help companies that develop products in
accordance with customer preferences and specifications. Scrum is adaptable to change, making
it key when responding to customer requests.
What are the benefits of agile scrum methodology?
 These are some of the collective benefits of agile scrum methodology:
 Flexibility and adaptability

 Creativity and innovation

 Lower costs

 Quality improvement

 Organizational synergy

 Employee satisfaction

 Customer satisfaction
 The greatest benefit of agile scrum methodology is its flexibility. With the sprint-based
model, the scrum team typically receives feedback from stakeholders after each sprint.
If there are any problems or changes, the scrum team can easily and quickly adjust
product goals during future sprints to provide more valuable iterations. This way,
stakeholders are happier because they get exactly what they want after being involved
every step of the way.
 Compare this with traditional project management systems, in which stakeholders do
not provide frequent feedback and time is wasted making changes to the product
halfway through development – or worse, such as the teams needing to start from
scratch after the product has already been built.
 To implement agile scrum methodology, there must be either a scrum expert in the
company or an outside consultant to ensure scrum principles are being applied
correctly. Agile scrum methodology involves precise execution and could result in
serious problems if not done properly.
 What are the different roles in agile scrum methodology?

 Agile scrum methodology consists of two sets of roles: core roles, known as “pigs,”
and ancillary roles, known as “chickens.”

 There are three core roles: scrum master, product owner and scrum team. All of these
people are committed to the scrum project.

1. Scrum master: The scrum master is the facilitator of the scrum development process. In
addition to holding daily meetings with the scrum team, the scrum master makes
certain that scrum rules are being enforced and applied as intended. The scrum master’s
responsibilities also include coaching and motivating the team, removing impediments
to sprints, and ensuring that the team has the best possible conditions to meet its goals
and produce deliverable products.
2. Product owner: The product owner represents stakeholders, who are typically
customers. To ensure the scrum team is always delivering value to stakeholders and the
business, the product owner determines product expectations, records changes to the
product and administers a scrum backlog, a detailed and constantly updated to-do list
for the scrum project. The product owner is also responsible for prioritizing goals for
each sprint, based on their value to stakeholders, such that the most important and
deliverable features are built in each iteration.

3. Scrum team: The scrum team is a self-organized group of three to nine individuals who
have the business, design, analytical and development skills to carry out the actual
work, solve problems and produce deliverable products. Members of the scrum team
self-administer tasks and are jointly responsible for meeting each sprint’s goals.

Ancillary roles, on the other hand, are other stakeholders who are involved in, but not
committed to, the scrum project. Typically, ancillary roles consist of customers,
management and members of the executive team who are involved for the purpose of
consulting, reporting progress and gathering feedback to better work toward delivering
the highest value possible
 What is the training for scrum and agile?

 Managers and employees can enroll in training for both agile and scrum through
various online and in-person courses. Many educational training courses result in
certification in agile or scrum methodologies. Agile training provides the trainee with
the basic knowledge of agile and how to implement it to the rest of their team. Scrum
provides similar training, including the basic agile overview; however, the training
caters to the scrum framework.
 To become a certified scrum master (CSM) or certified scrum product owner (CSPO),
you must first prepare and learn the basic details of scrum through videos or a simple
internet search. Next, find a suitable CSM or CSPO course, either through your
workplace or another internet search. Once you’ve completed the course, you usually
have to pass an exam to become certified. After certificateion, you’re able to lead your
team through the scrum process or provide scrum product details.
 What are the differences between scrum and agile?
 Although scrum and agile are similar, they have some key differences:
 Scrum values rigidity, whereas agile is more flexible.

 Agile leaders play a vital role, while scrum promotes a cross-functional team that is
self-functioning.

 Agile involves face-to-face interactions between cross-functional team members, while


scrum involves daily stand-up meetings.

 Agile is meant to be kept simple, while scrum can be innovative and experimental.

 Scrum delivers shorter, separate projects, while agile delivers everything at the end of
the process.
 Crystal methods in Agile Development/Framework

 Crystal methods in Agile Development/Framework :


Crystal method is a agile framework that is considered as a lightweight or agile
methodologies which focuses on individuals and the interactions. The methods are
color-coded to signify risk to human life. It is mainly for short-term projects by a team
of developers working out of a single workspace. Among few Agile
Software Development Life Cycle (SDLC) models crystal is considered as one of the
Agile SDLC model.
Two core belief of Crystal method :
 Find own way and methods to optimize workflow.

 Make use of unique methods to make the project unique and dynamic.
 Let’s know about the history of Crystal Method :

 Crystal method was developed by an American scientist named Alistair Cockburn who
worked in IBM. He decided not to focus on step-by-step developmental strategies, but
to develop team collaboration and communication. Some of the traits of Cockburn’s
Crystal method were:
 Human-powered i.e. the project should be flexible and people involved in preferred
work.

 Adaptive i.e. approaches doesn’t any fixed tools but can be but can be changed
anytime to meet team’s specific needs.

 Ultra-light i.e. this methodology doesn’t require much documentation.


 Properties of Crystal Agile Framework :
 Frequent delivery:
It allows you regularly deliver the products, test code to real users. Without this, you
might build a product that nobody needs.
 ReflectiveImprovement:
No matter how good you have done or how bad you have done. Since there are always
areas where the product can be improved, so the teams can implement to improve their
future practices.
 OsmoticCommunication:
Alistair stated that having the teams in a same physical phase is very much important as it
allows information to flow in between members of a team as in osmosis.
 PersonalSafety:
There are no bad suggestions in a crystal team, team members should feel safe to discuss
ideas openly without any fear.
 Focus:

Each member of team knows exactly what to do, which enables them to focus their
attention. This boosts team interaction and work towards the same goal.

 Easy access to expert users-


It enhances the team communication with users and get regular feedback from real
users.

 Technical tooling-
It contains very specific technical tools which to be used by software development
team during testing, management and configuration. These tools make it enable for
the team to identify any error within less time.
 How does Crystal function?

 Till now, we got to know that crystal is a family of various developmental approaches,
and it is not a group of prescribed developmental tools and methods. At the beginning
the approach is set by considering the business requirements and the needs of the
project. Various methodologies in Crystal family also known as weights of the Crystal
approach which are represented by different colors of the spectrum.
Crystal family consists of many variants like Crystal Clear, Crystal Yellow, Crystal
Red, Crystal Sapphire, Crystal Red, Crystal Orange Web, Crystal Diamond.
 CrystalClear-
The team consists of only 1-6 members that is suitable for short-term projects where
members work out in single workspace.

 CrystalYellow-
It has a small team size of 7-20 members, where feedback is taken from Real Users.
This variant involves automated testing which resolves bugs faster and reduces use of
too much documentation.
 CrystalOrange-
It has a team size of 21-40 members, where team is split according to their functional
skills. Here the project generally lasts for 1-2 years and the release is required every 3
to 4 months.

 CrystalOrangeWeb-
It has also the team size of 21-40 members where the projects that have a continually
evolving code base that is being used by the public. It is also similar to Crystal
Orange but here they do not deal with single project but series of initiatives that
required programming.

 CrystalRed-
The software development is led by 40-80 members where the teams can be formed
and divided according to requirements.

 CrystalMaroon-
It involves large sized projects where team size is of 80-200 members where methods
are different and as per the requirement of the software.
 CrystalDiamond&Sapphire-
This variant is used in large projects where there is a potential risk to human life.

 The below figure illustrates about crystal team


 CRYSTAL FAMILY (TEAM MEMBERS)
 Benefits of using the Crystal Agile Framework :
 Facilitate and enhance team communication and accountability.

 The adaptive approach lets the team respond well to the demanding requirements.

 Allows team to work with one they see the most effective.

 Teams talk directly with each other, that reduce management overhead.

 Drawbacks of using the Crystal Agile Framework :


 Lack of pre-defined plans may lead to confusion and loss of focus.

 Lack of structure may slow down inexperienced teams.

 Not clear on how a remote team can share knowledge informally.

 The Crystal Method is expandable. It may be used by small teams or large teams to work on simple
or complex objects. It places importance on developmental skills, interactions which in turn
encourages exchange of ideas. It is also beneficial for the clients as it delivers most important
components of th product first. But on the other hand, the Crystal Method does not plan based on
the requirements of the projects.
 FDD Full Form
 FDD stands for Feature-Driven Development. It is an agile iterative and incremental
model that focuses on progressing the features of the developing software. The main
motive of feature-driven development is to provide timely updated and working software to
the client. In FDD, reporting and progress tracking is necessary at all levels.

 History
 FDD was first applied in the year 1997 on a real-world application by Jeff De Luca for
large software development with specific needs of 15-month and 50 persons and published
as a discussion in book Java Modeling in Color with UML in the year 1999.
 FDD Lifecycle
 Build overall model

 Build feature list

 Plan by feature

 Design by feature

 Build by feature
Develop an overall model :
 Continuing the research paper metaphor, this stage is when the
outline is drafted.
 Using the “thesis” as a guide, the team will develop detailed domain
models, which will then be merged into one overall model that acts as
a rough outline of the system.
 As it develops and as the team learns, details will be added.

Build a features list :


 Use the information assembled in the first step to create a list of the
required features.
 Remember, a feature is a client-valued output.
 Make a list of features (that can be completed in two weeks’ time),
and keep in mind that these features should be purposes or smaller
goals, rather than tasks.
Plan by Feature :

 This stage should also identify class owners, individual developers


who are assigned to classes.
 Because every class of the developing feature belongs to a specific
developer, someone is responsible for the conceptual principles of
that class, and should changes be required to multiple classes, then
collaboration is necessary between the owners of each to implement
them.
 And while class owners are important to FDD, so are feature teams.
 In feature teams, specific roles are defined, and a variety of
viewpoints are encouraged.
 This ensures that design decisions consider multiple thoughts and
perspectives.
Design by Feature :

 A chief programmer will determine the feature that will be designed


and build.
 He or she will also determine the class owners and feature teams
involved, while defining the feature priorities.
 Part of the group might be working on technical design, while others
work on framework.
 By the end of the design stage, a design review is completed by the
whole team before moving forward.
Build by Feature :

 This step implements all the necessary items that will support the
design.
 Here, user interfaces are built, as are components detailed in the
technical design, and a feature prototype is created.
 The unit is tested, inspected and approved, then the completed
feature can be promoted to the main build.
 Any feature that requires longer time than two weeks to design and
build is further broken into features until it meets the two-week rule.
 Feature-Driven Development is a practical Agile approach suited for
long-term, complex projects.
 It is a suitable choice for development teams seeking a simple but
structured Agile method that is scalable and delivers predictable
results.
How is FDD Different from Scrum?
 FDD is related to Scrum, but as its name implies, it’s a feature-
focused method (as opposed to a delivery-focused method).
 Features are a foundational piece of FDD; they’re to FDD what user
stories are to Scrum: Small functions that are, most importantly,
client-valued.
 Characteristics of FDD
 Short iterative: FDD lifecycle works in simple and short iterations to efficiently finish
the work on time and gives good space for large projects.

 Customer focused: This agile practice is totally based on inspection of each feature
by client and then pushed to main build code.

 Structured and feature focused: Initial activities in lifecycle builds the domain model
and features list in the beginning of timeline and more than 70% of efforts are given
to last 2 activities.

 Frequent releases: Feature-driven development provides continuous releases of


features in the software and retaining continuous success of the project.
 Advantages of FDD
 Reporting at all levels leads to easier progress tracking.

 FDD provides continuous success for larger size of teams and projects.

 Reduction in risks is observed as whole model and design is build in smaller


segments.

 FDD provides greater accuracy in cost estimation of the project due to feature
segmentation.

 Disadvantages of FDD
 This agile practice is not good for smaller projects.

 There is high dependency on lead programmers, designers and mentors.

 There is lack of documentation which can create an issue afterwards.


 Adaptive Software Development (ASD)
 Adaptive Software Development is a method to build complex software and system.
ASD focuses on human collaboration and self-organization. ASD “life
cycle” incorporates three phases namely:
1. Speculation
2. Collaboration
3. Learning
 These are explained as following below.
 1.Speculation:

During this phase, project is initiated and planning is conducted. The project plan uses
project initiation information like project requirements, user needs, customer mission
statement, etc, to define set of release cycles that the project wants.
 2.Collaboration:

It is the difficult part of ASD as it needs the workers to be motivated.


It collaborates communication and teamwork but emphasizes individualism as individual
creativity plays a major role in creative thinking. People working together must trust each
others to
 Criticize without animosity,

 Assist without resentment,

 Work as hard as possible,

 Possession of skill set,

 Communicate problems to find effective solution.


 3.Learning:

The workers may have a overestimate of their own understanding of the technology which
may not lead to the desired result. Learning helps the workers to increase their level of
understanding over the project.

Learning process is of 3 ways:


1. Focus groups

2. Technical reviews

3. Project postmortem(It is a meeting held after a project completion)

 ASD’s overall emphasis on the dynamics of self-organizing teams, interpersonal


collaboration, and individual and team learning yield software project teams that have a
much higher likelihood of success.
 What is unique about Adaptive Software Development (ASD)?
 As an Agile software development framework, ASD places particular focus on user
feedback and collaboration to inform future iterations of the software development
process.
 ASD also starts from the philosophy that complex systems like software development
do not need, as is generally presumed, complex rules. Highsmith argues that a handful
of simple rules are not only all that is needed to order complex systems but that a
minimalist approach improves efficiency.
 Another unique characteristic of Adaptive Software Development is the belief software
development should be ‘fun’ and the best software is happened upon by chance. He
terms the chance coming together of circumstances leading to great software
as “emergence”.
 The Adaptive Software Development framework
 The ASD framework is stripped back to just enough guidelines to create order within
the complex system of software development without risking suffocating emergence,
which it specifically encourages in place of determinism.
 ASD is a results-oriented framework and places more emphasis on the quality of
outcomes than the tasks performed to achieve them.
 These three phases reflect the dynamic nature of Adaptive Software Development. A
explicitly replaces Determinism with Emergence. It goes beyond a mere change in the
lifecycle to a deeper change in management style. Adaptive Software Development has
a dynamic Speculate-Collaborate-Learn Lifecycle.
 Waterfall’s Plan, Build Implement phases are simply rebranded as Speculate,
Collaborate, Learn. The phase names intentionally reflect the unpredictability ASD
accepts as inherent to complex systems.
 The Adaptive Software Development lifecycle shifts the focus to results, defined as
application features, not tasks.
 The three phases of Adaptive Sofware Development
 Adaptive Software Development’s three phases address the following accepted underlying
assertions:
 It is difficult to Collaborate without Learning or to Learn without Collaborating.

 It is difficult to Speculate without Learning or to Learn without Speculating.

 It is difficult to Speculate without Collaborating or to Collaborate without Speculating.

1.Speculation:
 The ASD framework rejects the term ‘plan’ for the first phase of its lifecycle as too
deterministic and confident of the final outcome. In its place is the suitably open-ended
‘speculation’ phase, which leaves space for the project to innovate.
 The speculation phase of the ASD lifecycle does not reject planning and big picture
planning and the setting of objectives, for the project and iteration cycle due to start, takes
place here. During the first speculation phase, the project mission is defined, which sets
an approximate framework for the end product.
 Iterations are cycles on the path to implementing the mission with each new speculation
phase an opportunity for exploration and experimentation.
2.Collaboration
 The collaboration phase is founded on the following principles:
 Complex applications are not built, they evolve.

 Complex applications require that a large volume of information be collected,


analyzed, and applied to the problem.

 Collecting, analysing and applying large volumes of information, or data, requires


diverse Knowledge requirements.

 Diverse Knowledge requirements can only be achieved through collaboration

 The collaboration phase is controlled through a balance of traditional project


management techniques and the kind of collaborative environment that leaves space
for emergence.
3.Learning:
 An Agile software development team working to the ASD framework is expected to
continually improve its level of Knowledge. This is done in the learning phase that
follows each iteration through practices including:
 Technical Reviews

 Project Retrospectives

 User feedback via focus groups and other mechanisms

 Iterations should be short so the team learns from small, not big, mistakes. The
development team and users contributing their user experience to the process should
assess their assumptions during each learning phase. The results of this assessment,
such as changers to underlying assumptions, then inform the direction of the next
iteration cycle.
 The 6 characteristics of Adaptive Software Development
 Mission driven

 Feature based

 Iterative

 Time boxed

 Risk driven

 Change Tolerant
 Extreme Programming (XP)

 Definition
 Extreme Programming (XP) is an agile software development framework that aims to
produce higher quality software, and higher quality of life for the development team. XP
is the most specific of the agile frameworks regarding appropriate engineering practices
for software development.

 Extreme programming (XP) is one of the most important software development


framework of Agile models. It is used to improve software quality and responsive to
customer requirements. The extreme programming model recommends taking the best
practices that have worked well in the past in program development projects to
extreme levels.
 Good practices needs to practiced extreme programming: Some of the good
practices that have been recognized in the extreme programming model and suggested
to maximize their use are given below:

 Code Review: Code review detects and corrects errors efficiently. It suggests pair
programming as coding and reviewing of written code carried out by a pair of
programmers who switch their works between them every hour.

 Testing: Testing code helps to remove errors and improves its reliability. XP suggests
test-driven development (TDD) to continually write and execute test cases. In the
TDD approach test cases are written even before any code is written.

 Incremental development: Incremental development is very good because customer


feedback is gained and based on this development team come up with new increments
every few days after each iteration.

Simplicity: Simplicity makes it easier to develop good quality code as well as to test

and debug it.


 Design: Good quality design is important to develop a good quality software. So,
everybody should design daily.

 Integration testing: It helps to identify bugs at the interfaces of different


functionalities. Extreme programming suggests that the developers should achieve
continuous integration by building and performing integration testing several times a
day.

 Basic principles of Extreme programming: XP is based on the frequent iteration


through which the developers implement User Stories. User stories are simple and
informal statements of the customer about the functionalities needed. A User story is a
conventional description by the user about a feature of the required system. It does not
mention finer details such as the different scenarios that can occur. On the basis of
User stories, the project team proposes Metaphors. Metaphors are a common vision of
how the system would work. The development team may decide to build a Spike for
some feature.
 A Spike is a very simple program that is constructed to explore the suitability of a
solution being proposed. It can be considered similar to a prototype. Some of the basic
activities that are followed during software development by using XP model are given
below:

 Coding: The concept of coding which is used in XP model is slightly different from
traditional coding. Here, coding activity includes drawing diagrams (modeling) that
will be transformed into code, scripting a web-based system and choosing among
several alternative solutions.

 Testing: XP model gives high importance on testing and considers it be the primary
factor to develop a fault-free software.

 Listening: The developers needs to carefully listen to the customers if they have to
develop a good quality software. Sometimes programmers may not have the depth
knowledge of the system to be developed. So, it is desirable for the programmers to
understand properly the functionality of the system and they have to listen to the
customers.
 Designing: Without a proper design, a system implementation becomes too complex
and very difficult to understand the solution, thus it makes maintenance expensive. A
good design results elimination of complex dependencies within a system. So,
effective use of suitable design is emphasized.

 Feedback: One of the most important aspects of the XP model is to gain feedback to
understand the exact customer needs. Frequent contact with the customer makes the
development effective.

 Simplicity: The main principle of the XP model is to develop a simple system that
will work efficiently in present time, rather than trying to build something that would
take time and it may never be used. It focuses on some specific features that are
immediately needed, rather than engaging time and effort on speculations of future
requirements.
 Applications of Extreme Programming (XP): Some of the projects that are suitable
to develop using XP model are given below:

 Small projects: XP model is very useful in small projects consisting of small teams as
face to face meeting is easier to achieve.

 Projects involving new technology or Research projects: This type of projects face
changing of requirements rapidly and technical problems. So XP model is used to
complete this type of projects.
 Roles
 Although Extreme Programming specifies particular practices for your team to follow, it does not
really establish specific roles for the people on your team.
 Depending on which source you read, there is either no guidance, or there is a description of how
roles typically found in more traditional projects behave on Extreme Programming projects. Here
are four most common roles associated with Extreme Programming:

 The Customer
 The Customer role is responsible for making all of the business decisions regarding the project
including:
 What should the system do (What features are included and what do they accomplish)?

 How do we know when the system is done (what are our acceptance criteria)?

 How much do we have to spend (what is the available funding, what is the business case)?

 What should we do next (in what order do we deliver these features)?

 The XP Customer is expected to be actively engaged on the project and ideally becomes part of the
team.
 The XP Customer is assumed to be a single person, however experience has shown that one person
cannot adequately provide all of the business related information about a project. Your team needs to
make sure that you get a complete picture of the business perspective, but have some means of
 The Developer
 Because XP does not have much need for role definition, everyone on the team (with the
exception of the customer and a couple of secondary roles listed below) is labeled a
developer. Developers are responsible for realizing the stories identified by the Customer.
Because different projects require a different mix of skills, and because the XP method
relies on a cross functional team providing the appropriate mix of skills, the creators of
XP felt no need for further role definition.

 The Tracker
 Some teams may have a tracker as part of their team. This is often one of the developers
who spends part of their time each week filling this extra role. The main purpose of this
role is to keep track of relevant metrics that the team feels necessary to track their
progress and to identify areas for improvement. Key metrics that your team may track
include velocity, reasons for changes to velocity, amount of overtime worked, and passing
and failing tests.
 This is not a required role for your team, and is generally only established if your team
determines a true need for keeping track of several metrics.
 The Coach
If your team is just getting started applying XP, you may find it helpful to
include a Coach on your team. This is usually an outside consultant or
someone from elsewhere in your organization who has used XP before and is
included in your team to help mentor the other team members on the XP
Practices and to help your team maintain your self discipline.
The main value of the coach is that they have gone through it before and can help your
team avoid mistakes that most new teams make.
 Lifecycle
 To describe XP in terms of a lifecycle it is probably most appropriate to revisit the concept
of the Weekly Cycle and Quarterly Cycle.
First, start off by describing the desired results of the project by having customers define
a set of stories.
 As these stories are being created, the team estimates the size of each story. This size
estimate, along with relative benefit as estimated by the customer can provide an
indication of relative value which the customer can use to determine priority of the
stories.

 If the team identifies some stories that they are unable to estimate because they don’t
understand all of the technical considerations involved, they can introduce a spike to do
some focused research on that particular story or a common aspect of multiple stories.
 Spikes are short, time-boxed time frames set aside for the purposes of doing research on
a particular aspect of the project. Spikes can occur before regular iterations start or
alongside ongoing iterations.
 Next, the entire team gets together to create a release plan that everyone feels is
reasonable. This release plan is a first pass at what stories will be delivered in a particular
quarter, or release.
 The stories delivered should be based on what value they provide and considerations
about how various stories support each other.

 Then the team launches into a series of weekly cycles. At the beginning of each weekly
cycle, the team (including the customer) gets together to decide which stories will be
realized during that week. The team then breaks those stories into tasks to be completed
within that week.
 At the end of the week, the team and customer review progress to date and the
customer can decide whether the project should continue, or if sufficient value has been
delivered.

You might also like