unit 4 agile
unit 4 agile
5. Adaptation – the teams of developers selforganize daily based on the daily meetings and
the developers and customers self-organize at the end of every increment to guide the project
to create the greatest value.
6. Emergence2 – the architecture, team structure, and requirements emerge during the course
of the project rather than being determined at its outset.
2. Agile Experiences
At a recent Agile Workshop3, the subject of emergence was discussed. The participants
indicated that they had successfully applied emergence in literally hundreds of projects over
the last seven years. These projects ranged from relatively straightforward systems to n-tier,
complex systems applying cutting edge technology to poorly defined business problems.
Business, embedded, and life critical systems had been successfully developed.
The participants felt that the use of refactoring, or periodic cleaning up of business and technical
architecture, was required. Otherwise, in all likelihood, the resulting system would be
difficult to maintain and sustain. It would contain unrectified designs and code that wasn’t
orthogonal. However, none of the participants was able to explain why emergence worked.
The fundamental principle underlying requirements engineering is the assumption that a system
should be clearly specified before its design and implementation can start. Ideally, a
specification should be unambiguous, consistent, concise, traceable, implementation
independent, etc., and signed off by all stakeholders involved before any further development
is done. Failing to do so has in the past caused tremendous cost.
Variance:
Variance represents the comparison of the effort that was planned (Estimated Hours)
amongst the actual efforts (Spent Hours) with in a sprint.
X Axis – shows last 15 sprints.
1. If the Spent Hours is less than the Estimated Hours, then Effort Variance will be positive.
2. If the Spent Hours is more than the Estimated Hours, then Effort Variance will be
negative.If the Variance is positive then the indicator will be in green and spiked up. If the
variance is negative then the indicator will be in red and spiked down.
3. Positive Variance represents that the team member has spent less time (in Hours) in
comparison of their Estimation (in Hours) within a sprint.
4. Negative Variance represents that the team member has spent more time (in Hours) in
comparison of their Estimation (in Hours) within a sprint.
5. Orange Bar – Total Hours of work estimated by the Team members (in Hours) with in a
sprint.
6. Green Bar – Total Hours of time spent by a Team members (in Hours) with in a sprint.
7. Green Trend line – It will show total available hours of all the sprints within a sprint.
8. Variance is based on total hours that are spent more/ less in comparison of your estimated
hours.
(Sprint Effort Variance = Estimation Hours – Spent Hours).
Gains customer and stakeholder feedback on features sooner rather than later
Improves scope control because stakeholders can add new requirements, shift
priorities, or rethink requirements on a feature or architectural level
Gives project teams the room to take risks and innovate based on customer feedback
without sacrificing too much time or budget because agile teams can pivot on
requirements as needed
2. Product backlog sets development priorities
The one element that took me a while to warm up to was the product backlog.
It’s like the scrum team’s prioritized to-do list of features to build.
Managing or grooming the product backlog can be an art unto itself. In some organizations, the
scrum master manages the backlog. Other organizations might choose to have product
managers or cross-functional team leaders involved in managing it.
A properly managed daily meeting lets developers, team leads and stakeholders (if invited) to
share information. Some of that information could be issues and feedback about product
requirements that might arise during the implementation process.
To do
In progress
In testing
Done
Tasks boards help manage changing requirements because of the visibility they offer, which
include:
Project requirement status is visible to every team member.
Dependencies of project requirements impacted by changing requirements are clear.
Shows threaded comments about the changing requirements before and during sprints
from the developer and other team members.
Requirements Elicitation:
ADVANTAGES OR DISADVANTAGES:
Abstraction levels:
Requirements engineering (RE), on the other hand is a traditional method with the goal
to identify, analyze, document and validate requirements. Is it possible to bridge the traditional
requirements engineering process with agile methods, and still stay agile? According to,
requirements engineering and agile methods are seen as incompatible. One reason is that RE often
relies on documentation while agile methods are focusing on faceto-face communication between
customers and developers. However, several studies have looked into bridging traditional and agile
methods. In, the study shows that it is possible to successfully integrate a traditional project
management approach with XP projects. Furthermore, Boehm and Turner concluded that agile
concepts will continue to integrate into traditional organizations and vice versa. In addition,
Nawrocki et al. proposed modifications to the XP methodology to embrace RE practices. One of the
modifications was to have a RE phase in the beginning of the project that provides a wider
perspective, and still manage to stay as lightweight as the original XP.
ARAM STRUCTURE
This section describes the ARAM’s structure. The version of ARAM presented
in this paper is based on the development of ARAM at Tactel and is an example of how ARAM can
look like. The concepts of the ARAM model as described in this paper, makes it possible for any
organization to adapt and tailor ARAM to fit their specific organization. The aim of ARAM is to bridge
the traditional approaches and agile methods by allowing project plans and contacts, and still keep
time-boxed iterations where the development team can work on their sprint backlog items. ARAM
does not interfere with the scrum sprint, rather focus on making the pre-project requirements
engineering efficient.
Project Inception Phase
Organizational
Strategies
Product
RAM - Abstraction
Levels
Product Level (goal)
Action steps : RAM has three specified action steps (figure 11) to achieve the right
requirements specification based on the abstraction levels. These steps are iterated for all
requirements in the system. First of all, the requirement should be specified (elicited). This is
the first sketch of an idea about what should be included in the system. Here the four most
general attributes to the requirement - including [32] description, reason/benefit/rationale,
restrictions/risks and title - are specified. After this specification the requirement is placed
(evaluated) according to the heart of RAM model
Requirements
Specify
( elicit )
Place
( evaluate )
Abstraction
( work-up )
Attributes
In the process of specifying, placing and working-up the requirements, additional attributes
are added. These include the two groups traceability and process attributes for fitting into
RAM. The traceability attributes suggested by RAM are Requirement source, Requirement
owner, Requirements manager and Relation/dependency. The process attributes include State,
Reject reason (for rejected requirements only), Due date, Version, Date of creation and Last
changed. Many of the attributes are the same or almost the same as in traditional RE with
some anomalies
Requirements management in agile environment
The goal is to understand the “as-is” state The goal is no longer focused on eliciting the “as-
of the existing product or the business gaps is” in order to the define the “to-be,” but to clarify
that define the lack, so that the “to-be” and ensure understanding of the business need for
state of the desired product can be defined. all users.
By defining the end-state of the As more information becomes known over time,
application from the beginning, there is the team is better able to adjust and make changes
little room for change once development accordingly.
begins.
Kano model
Opportunity Scoring
Stack Ranking
Priority Poker
Cost of Delay
The cost of developing the requirements is another essential factor to be considered by the
product owner. Value and cost together indicate the RoI for the requirements.
Understanding the level of risks involved in introducing the new features is essential in
the process of prioritization.
5. Stack Ranking
6. Priority Poker
7. Cost of Delay
MoSCoW Prioritization in Agile: In the DSDM methodology, the priorities are expressed as per
the MoSCoW model:
Should– Next priority is given to the requirements that are highly desirable, though not
mandatory
Could– The next priority is given to the requirement that is nice to have
Won't– And the final consideration is given to the requirements which will not work in the
process at that point of time.
Professor Noriaki Kano propagated Kano Model of Prioritization. This prioritization technique
involves three levels that include considering customer satisfaction from disappointment to
not happy to immediate happiness to get delighted. Two important factors that create an
impact on the satisfaction level during this prioritization are the existence of features and the
degree of implementation.
The relative weighting scheme is a simple model where prioritization is done based upon all the
factors mentioned above. The major factors considered in relative weighing prioritization
technique are:
The value of a feature and the negative impact that might be caused by the absence of the
feature
Based on the expert judgment made by the product owner and supported by the agile team
in ranking the score of features in the following way (a scoreboard from 1 to 9 is usually
used)
Benefit from having the feature
Opportunity Scoring
Stack Ranking
Stack Ranking is one of the most popular forms of prioritization techniques that is currently used
by a lot of software companies. It is also one of the easiest techniques that allow prioritization
based on the user story.
Priority Poker
This agile priority technique is based on similar rules as actual poker played with cards. When
playing poker, prioritization is done in a calculative manner, with big wins being the ultimate
goal. Similarly, in agile priority poker, items that will yield the highest results in specific
target markets are given priority.
Cost of Delay
The objective of this prioritization technique is to understand how much money would the
organization lose if a certain feature is not available. This prioritization focuses on monetary
loss to understand which features are the most important and the list is created accordingly. It
is a proactive approach to ensure the manager fight fires and deal with emergencies that can
result in losses.
This technique is also known as Cumulative Voting and is a straightforward process. It is similar
to the poker technique but each stakeholder is given 100 points or dollars to assign to each
feature or task.
The stakeholders divide their 100 dollars by assigning a spending amount to each feature.
Once all the 100 dollars are spent, the moderator then tallies all the points and the feature
with the most dollars assigned is given the highest priority, followed by tasks with the next
highest amounts.
The best way to understand this process is to look at its main goals. Agile requirements
modeling is designed to support the goals of software development and aims to achieve the
following objectives:
Establish the best practices for an effective model
Outline the ways to put those practices into place
Display alternatives to improve the modeling approach
Types of Requirements:
There are two categories that agile requirements modeling can be divided
into. The distinction between the two is important to establish as they distinguish the
technicalities of a project from the user interactions.
Without a clear plan or project outline, a system can quickly become confused by varying
stories and goals. However, agile requirements modeling prevents this from happening and
ensures that the same goal is communicated at all times.
With this in mind, when it comes to agile modeling, getting the key principles right is crucial.
Although this isn’t a rigid procedure, keeping these practices at the foundation of your work
will steer your project towards a more streamlined process.
These principles include:
Outlining how the software is your primary goal
Establishing the next effort as your secondary goal
Remaining agile by focusing only on the models required
Assuming simplicity
Embracing change
Modeling with purpose
Creating multiple models
Producing quality work
Maximizing stakeholder investment
The key benefits of this modeling form are based on the corporation of the above principles.
Agile modeling is a synergistic approach to development that requires all of these practices to
be utilized. Leaving one out can open up the project to becoming less effective.
The reason for this is that software is complex and it needs to be analyzed from various
standpoint.
Concurrency in Agile Requirements Generation:
WATERFALL MODEL