1. Introduction:
The
Agile-Process model is applicable to development projects, which involve
Development of new products or major enhancements to existing software
products. Agile software development is a style of software development
characterized by an emphasis on people, communication, working software, and
responding to change.
Agile methodologies provide a collection of foundational values, guiding
principles and development practices that to address the challenges of
prescriptive, weighty methodologies to produce software in a lighter, faster,
more people-centric manner. Agile
methodologies work best with motivated, reliable people who desire to work together
to fulfill their stakeholder's business goals.
Slackers, complainers, and lazy developers need not apply!

All Agile
methodologies engage in an iterative workflow and incremental delivery of
working software in short time-boxed iterations. Iteration is essentially a
small release of software. Generally during each iteration many activities will
occur in parallel, such as requirements, coding, and testing. Iterations are
typically a fixed length (although this length varies between the
methodologies) and thus are referred to as time-boxed. The time allocated to
each iteration sometimes referred to as a cycle time.
1.1 Methodologies in Agile:
a.
Scrum
b.
Extreme Programming
c.
Crystal family of
methodologies (Crystal Clear)
d.
Feature Driven Development
e.
The Rational Unified
Process
f.
Dynamic Systems Development
Method
g.
Adaptive Software
Development
Scrum:
Scrum is an
iterative, incremental framework for project management and agile software
development. Although Scrum was intended for management of software development
projects, it can be used to run software maintenance teams, or as a general
project/program management approach.
Extreme
Programming:
Extreme
Programming (XP) is a software development methodology which is intended to
improve software quality and responsiveness to changing customer requirements.
As a type of agile software development, it advocates frequent
"releases" in short development cycles (time-boxing), which is
intended to improve productivity and introduce checkpoints where new customer
requirements can be adopted.
Crystal
family of methodologies (Crystal Clear):
Crystal Clear
can be applied to teams of up to 6 or 8 co-located developers working
on systems that are not life-critical. The Crystal family of methodologies
focuses on efficiency and habitability as components of project safety. Crystal
Clear focuses on people, not processes or artifacts.
Feature
Driven Development:
Feature
Driven Development (FDD) is an iterative and incremental software
development process. FDD blends a number of industry-recognized best
practices into a cohesive whole. These practices are all driven from a
client-valued functionality (feature) perspective. Its main purpose is to
deliver tangible, working software repeatedly in a timely manner.
The Rational
Unified Process:
The Rational
Unified Process (RUP) is an iterative software development
process framework. RUP is not a single concrete prescriptive process, but
rather an adaptable process framework, intended to be tailored by the development
organizations and software project teams that will select the elements of the
process that are appropriate for their needs.
Dynamic
Systems Development Method:
Dynamic
Systems Development Method (DSDM) is a software development
methodology originally based upon the Rapid Application
Development methodology. DSDM is an iterative and incremental approach
that emphasizes continuous user involvement.
Adaptive
Software Development:
Adaptive
Software Development is a software development process that grew
out of rapid application development. ASD embodies the principle that
continuous adaptation of the process to the work at hand is the normal state of
affairs.ASD replaces the traditional waterfall cycle with a repeating
series of speculate, collaborate, and learn cycles. This
dynamic cycle provides for continuous learning and adaptation to the emergent state
of the project. The characteristics of an ASD life cycle are that it is mission
focused, feature based, iterative, time-boxed, risk driven, and change
tolerant.
2. Scrum Model:
Scrum is a process skeleton which contains sets of
practices and predefined roles. The main roles in Scrum are:
a)
The “Scrum Master”, who
maintains the processes (typically in lieu of a project manager)
b)
The “Product Owner”, who
represents the stakeholders and the business
c)
The “Team”, a
cross-functional group who do the actual analysis, design, implementation, testing,
etc.
During each “sprint”,
typically a two to four week period (with the length being decided by the
team), the team creates a potentially shippable product increment (for example,
working and tested software). The set of features that go into a sprint come
from the product “backlog”, which is a prioritized set of high level
requirements of work to be done. Which backlog items go into the sprint is
determined during the sprint planning meeting. During this meeting, the Product
Owner informs the team of the items in the product backlog that he or she wants
completed. The team then determines how much of this they can commit to
complete during the next sprint. During a sprint, no one is allowed to change
the sprint backlog, which means that the requirements are frozen for that
sprint. Development is timeboxed such that the sprint must end on time; if
requirements are not completed for any reason they are left out and returned to
the product backlog. After a sprint is completed, the team demonstrates how to
use the software.
Scrum enables the creation
of self-organizing teams by encouraging co-location of all team members, and
verbal communication across all team members and disciplines that are involved
in the project.
A key principle of Scrum is
its recognition that during a project the customers can change their minds
about what they want and need (often called requirements churn), and that
unpredicted challenges cannot be easily addressed in a traditional predictive
or planned manner. As such, Scrum adopts an empirical approach—accepting that
the problem cannot be fully understood or defined, focusing instead on
maximizing the team’s ability to deliver quickly and respond to emerging
requirements.

It aims to cure some of the common failure of the typical development process such as:-
- Chaos due to changing requirement.
- Unrealistic estimates of time, cost and quality of the product.
- Developers are forced to lie about how project is progressing.
It follows: develop-> wrap-> Review -> Adjust. It is cyclic in nature.
2.1 Process
Scrum process
includes three phases: Pre-game, development and post-game. 

2.1.1Pre-game phase
The Pre-game
phase includes two sub-phases:
a.
Planning
b.
Architecture (High level
design)
Planning includes the definition of the system being developed. A
Product Backlog list is created containing all the requirements that are
currently known. The requirements can originate from the customer, sales and
marketing division, customer support or software developers. The requirements
are prioritized and the effort needed for their implementation is estimated.
The product backlog list is constantly updated with new and more detailed
items, as well as with more accurate estimations and new priority orders.
Planning also includes the definition of the project team, tools and other
resources, risk assessment and controlling issues, training needs and
verification management approval. At every iteration, the updated product
backlog is reviewed by the scrum team (s) so as to gain their commitment for
the next iteration.
In the architecture phase, the high level design of the system including
the architecture is planned based on the current items in the product backlog.
In case of an enhancement to an existing system, the changes needed for
implementing the backlog items are identified along with the problems they may
cause. A design review meeting is held to go over the proposals for the
implementation and decisions are made on the basis of this review. In addition,
preliminary plans for the contents of releases are prepared.
2.1.2 Mid-game phase
The development phase (also called as game or mid-game phase) is the
agile part of the Scrum approach. This phase is treated as a “black box” where
the unpredictable is expected. The different environmental and technical
variables (such as time frame, quality, requirements, resources, implementation
technologies and tools, and even development methods) identified in Scrum,
which may change during the Sprints of the development phase. Rather than
taking these matters into consideration only at the beginning of the software
development project, Scrum aims at controlling them constantly in order to be
able to flexibly adapt to the changes.
In the
development phase the system is developed in Sprints. Sprints are iterative
cycles where the functionality is developed or enhanced to produce new
increments. Each sprint includes the traditional phases of software development:
requirements, analysis, design, evolution and delivery phases. The architecture
and the design of the system evolve during the Sprint development. One Sprint
is planned to last from one week to one month. There may be, for example, three
to eight sprints in one systems development process before the system is ready
for distribution. Also there may be more than one team building the increment
2.1.3 Post-game phase
The
post-game phase contains the closure of the release. This phase is entered when
an agreement has been made that the environmental variables such as the
requirements are completed. In this case, no more items and issues can be found
nor can any new ones be invented. The system is now ready for the release and
the preparation for this is done during the post-game phase, including the
tasks such as integration, system testing and documentation
2.2 Roles and responsibilities:
There are six identifiable roles in Scrum that have different tasks and
purposes during the process and its practices: Scrum master, Product owner,
Scrum team, customer, user and management.
2.2.1 Scrum Master
Scrum Master is a new management role introduced by Scrum. Scrum Master
is responsible for ensuring that the project is carried through according to
the practices, values and rules of Scrum and that it progresses as planned.
Scrum Master interacts with the project team as well as with the customer and
the management during the project. He is also responsible for ensuring that any
impediments are removed and changed in the process to keep the team working as
productively as possible.
2.2.2 Product Owner
Product Owner is officially responsible for the project, managing,
controlling and making visible the Product Backlog list. He is selected by the
Scrum Master, the customer and the management. He makes the final decisions of
the tasks related to product backlog, participates in estimating the
development effort for backlog items and turns the issues in the backlog into
features to be developed.
2.2.3 Scrum Team
Scrum team is the project team that has the authority to decide on the
necessary actions and to organize itself in order to achieve the goals of each
sprint. The scrum team is involved, for example, in effort estimation, creating
the sprint backlog, reviewing the product backlog list and suggesting
impediments that need to be removed from the project.
2.2.4 Customer
Customer participates in the tasks related to product backlog items for
the system being developed or enhanced.
2.2.5 Management
Management is in charge of final decision making, along with the
charters, standards and conventions to be followed in the project. Management
also participates in the setting of goals and requirements. For example, the
management is involved in selecting the Product Owner, gauging the progress and
reducing the backlog with Scrum Master.
2.3 Practices
Scrum does not require or provide any specific software development
methods/practices to be used. Instead, it requires certain management practices
and tools in the various phases of Scrum to avoid the chaos caused by unpredictability
and complexity.
2.3.1 Product Backlog
Product backlog defines everything that is needed in the final product
based on current knowledge. Thus, product backlog defines the work to be done
in the project. It comprises a prioritized and constantly updated list of business
and technical requirements for the system being built or enhanced. Backlog
items can include, for example, features, functions, bug fixes, defects,
requested enhancements and technology upgrades. Also issues requiring solutions
before other backlog items can be done are included in the list. Multiple
actors can participate in generating product backlog items, such as customer,
project team, marketing and sales, management and customer support.
This practice includes the tasks for creating the product backlog list,
and controlling it consistently during the process by adding, removing,
specifying, updating, and prioritizing product backlog items. The Product Owner
is responsible for maintaining the Product Backlog.
2.3.2 Effort estimation
Effort estimation is an iterative process, in which the backlog item
estimates are focused on a more accurate level when more information is
available on a certain product backlog item. The product owner together with
the scrum team(s) is responsible for performing the effort estimation.
Teams can measure their overall progress against this product increment
utilizing a focus on story-based estimation points. In a
meeting during which the boss/project manager is absent, teams estimate in
abstracted figures to quantify the relative effort associated with a particular
story (a story is often composed of multiple tasks). Some teams use numeric
sizing (i.e. a scale of 1 to 10) to estimate the "size" of a story,
while others use t-shirt sizes (XS, S, M, L, XL, XXL, XXXL). Some use the
Fibonacci sequence (1, 2, 3, 5, 8, 13, 21, 34, etc.) to capture how difficulty
tends to increase exponentially. Other teams have used dog breeds for
estimation purposes, in which, say, a teacup poodle or Chihuahua would
represent the smallest stories and a Great Dane or Bull Mastiff would represent
the largest. What's important for effort estimation is that the team shares an
understanding of the scale it is using, so that everyone feels comfortable with
the values of the scale.
Although the project manager (or Product Owner, in Scrum) needs these
estimates to effectively prioritize backlog items and, consequently, forecast
the delivery of the product to be developed based on velocity, only the team
can make these estimates and the presence of the project manager/Product Owner
could pressure (intentionally or otherwise) a team to minimize its effort
estimates. Even when team members estimate amongst themselves, it is
recommended that everyone reveal their estimate at the same time to avoid
influencing others. This process resembles a game of poker in that individuals
"show their hands"-or reveal their estimates-simultaneously.
2.3.3 Sprint
Sprint is the procedure of adapting to the changing environmental
variables such as (requirements, time, resources, knowledge, technology etc.).
The Scrum Team organizes itself to produce a new executable product increment
in a Sprint that lasts approximately thirty calendar days. The working tools of
the team are Sprint Planning Meetings, Sprint Backlog and Daily Scrum meetings.

2.3.4 Sprint Planning Meeting
A Sprint Planning Meeting is a two-phase meeting organized by the Scrum
Master. The customers, users, management, Product Owner and Scrum Team
participate in the first phase of the meeting to decide upon the goals and the
functionality of the next Sprint. The second phase of the meeting is held by
the Scrum Master and the Scrum Team focusing on how the product increment is
implemented during the Sprint.
2.3.5 Sprint Backlog
Sprint Backlog is the starting point for each Sprint. It is a list of
Product Backlog items selected to be implemented in the next Sprint. The items
are selected by the Scrum Team together with the Scrum Master and the Product
Owner in the Sprint Planning meeting, on the basis of the prioritized items and
goals set for the Sprint. Unlike the Product Backlog, the Sprint Backlog is
stable until the Sprint is completed. When all the items in the Sprint Backlog
are completed, a new iteration of the system is delivered.
2.3.6 Burn Down Charts
Scrum Sprint Burn Down
chart shows implementation progress during a single sprint. It provides answers
on the following questions: When sprint could be completed based on previous
progress? What is the most possible scrum team Velocity in future sprints?
2.3.7 Daily Scrum Meeting
Daily Scrum meetings are organized to keep track of the progress of the
Scrum Team continuously and they also serve as planning meetings: what has been
done since the last meeting and what is to be done before the next one. Also
problems and other variable matters are discussed and controlled in this short
meeting held daily. Any deficiencies or impediments in the systems development
process or engineering practices are looked for, identified and removed to
improve the process. The Scrum Master conducts the Scrum meetings. Besides the
scrum team also the management, for example, can participate in the meeting.
2.3.8 Sprint Review Meeting
On the last day of the Sprint, the Scrum Team and the Scrum Master
present the results (i.e. working product increment) of the Sprint to the
management, customers, user and the Product Owner in an informal meeting. The
participants assess the product increment and make the decision about the
following activities. The review meeting may bring out new Backlog items and
even change the direction of the system being built.
2.3.9 Sprint Retrospective Meeting
The purpose of the
Retrospective is to build continuous improvement into the regular Sprint
cycles. Again, there are three key questions to be discussed by the team in the
Sprint Retrospective after each and every Sprint:
a) What went well?
b) What didn't?
c) What will the team do differently in the next Sprint?
Doing these Retrospectives
so regularly throughout a project means that the learning’s actually helped to
improve the team's Velocity throughout the project (and beyond). If it's kept
simple, the things the team wants to do differently in the next Sprint should
be actionable and should actually make a difference to the efficiency and wellbeing
of the team and the project. There's no question this is a meeting you can't
afford to give up. There's just too much value in it.
2.3.10 Stack rank
Stack rank is the
traditional method Product Owners use to rank/prioritize their product backlog
items.
When you are adding items
to the product backlog, simply associate a value for each item.
There is discussion about
what values to use for ranking items, but an effective method is to use a 1 to
3 scale. The scale is as follows:
a) System/process must support this user story
b) System/process should support this user story
c) System/process could support this user story.
Now, prior to each Sprint
planning meeting, review/update your backlog and item stack ranks. This will
allow the Scrum team to focus on the most important user stories. In turn, this
will allow the team to deliver maximum value on the project through all Sprints.
3. Why Scrum
§ Advantages of Scrum
§ Completely developed and tested features in
short iterations
§ Simplicity of the process
§ Clearly defined rules
§ Increasing productivity
§ Self-organizing
§ Each team member carries a lot of
responsibility
§ Improved communication
§ Combination with Extreme Programming
§ Drawbacks of Scrum
§ “Undisciplined hacking” (no written
documentation)
§ Violation of responsibility
§ Current mainly carried by the inventors
4. Tools for Scrum project management
Like other agile development methodologies, Scrum can be implemented
through a wide range of tools. Many companies use universal software tools,
such as Microsoft Excel to build and maintain artifacts such as the sprint
backlog. There are also open-source and proprietary software packages dedicated
to management of products under the Scrum process. Other organizations
implement Scrum without the use of any software tools, and maintain their
artifacts in hard-copy forms such as paper, whiteboards, and sticky notes.
Below are
some proposed tools for Scrum project management
- Agilebuddy
- Agile bench
- Version one
- Scrum works
- Agilo
- Acunote
- Scrum desk
- Scrum Pad
5. Glossary
- Burndown Charts - Burndown charts show work remaining over time. Work remaining is the Y axis and time is the X axis. The work remaining should jig up and down and eventually trend downward.
- Daily Scrum Meeting - Story Time, Planning, Review, Retrospective, Daily Scrum
- Impediments - Anything that prevents a team member from performing work as efficiently as possible is an impediment.
- PE – Project Engineer.
- PL – Project Lead.
- PM – Project manager.
- Product Backlog -The requirements for a system, expressed as a prioritized list of product backlog Items. These included both functional and non-functional customer requirements, as well as technical team-generated requirements.
- Product Backlog Item - A unit of work small enough to be completed by a team in one Sprint iteration. Backlog items are decomposed into one or more tasks.
- Product Backlog Item Effort - Alternative units might include story points, function points, or "t-shirt sizes" (1 for small, 2 for medium, etc.)
- Product Burndown Chart - A "big picture" view of a project's progress. It shows how much work was left to do at the beginning of each sprint.
- Product Owner - A single person must have final authority representing the customer's interest in backlog prioritization and requirements questions.
- QC – Quality control.
- QL – Quality lead.
- Release - The transition of an increment of potentially shippable product from the development team into routine use by customers.
- Release Burndown Chart - A "big picture" view of a release's progress. It shows how much work was left to do at the beginning of each sprint comprising a single release.
- Scrum Master - A facilitator for the team and product owner. Rather than manage the team, the Scrum Master works to assist both the team and product owner
- Sprint - An iteration of work during which an increment of product functionality is implemented.
- Sprint Backlog - Defines the work for a sprint, represented by the set of tasks that must be completed to realize the sprint's goals, and selected set of product backlog items.
- Sprint Burndown Chart - A chart that depicts the total task hours remaining per day
- Sprint Goals - Results of a negotiation between the product owner and the development team
- Sprint Planning Meeting - A negotiation between the team and the product owner about what the team will do during the next sprint.
- Sprint Retrospective Meeting - The sprint retrospective meeting is held at the end of every sprint after the sprint review meeting.
- Sprint Task - A unit of work.
- Story - a backlog item usually using the template form: as a [user] I want [function] so that [business value], cf Product Backlog Item
- Story Point - A unit of measurement applied to the size of a story, cf. Fibonacci Sequence
- Team - Mix of software engineers, architects, programmers, analysts, QA experts, testers, UI designers, etc.
- Team Member – A person working on sprint tasks toward the sprint goal.
- TL – Team lead.
- Velocity - Velocity is how much product backlog effort a team can handle in one sprint.
- CH DESIGN - Need clarification
- CH FNSP
- CH TSTPLN
- CH_DESIGN
- CH_REQSP
- CH_TSTPLN
- PR DESIGN
- PR FNSP
- PR IMPCUT
- PR REQSP
- PR TEST
- PR TSTDV
- PR_DESIGN
- PR_TSTDV
- RTL
- TP COMPDS
- TP DTLDS
- TP FNSP
- TP TSTAUD
- TP TSTPLN
- TP TSTRPT
- TP UTLOG
- TP UTPLN
- TP_HLDS
- TP_REQSP
- TP_TSTPLN
- TP_UTPLN
No comments:
Post a Comment