strategy proposed in this paper. In Section 4 it is
presented two case studies in two small business
companies, Linkway and NBS, showing the use of
the strategy in different situations. In Section 5 it is
presented the lessons learned and, finally, in Section
6 it is presented the conclusions and further work.
2 AGILE METHODS AND AGILE
PLANNING
The agile approach applied to software project
management came into the spot in 2001, date of the
publication of the Agile Software Development
Manifest (Manifesto, 2001). This manifest
highlighted their differences compared to traditional
methods, especially by being incremental,
cooperative, direct and adaptive. The most
prominent agile methodologies are: Extreme
Programming - XP (Beck & Andres, 2004),
Dynamic Systems Development Method (DSDM,
2010), Feature Driven Development - FDD (Palmer
& Felsing, 2002), Adaptive Software Development -
ASD (Highsmith, 2002), OpenUP (Openup, 2010),
the Crystal Clear and Orange methods of the Crystal
methodology (Cockburn, 2002) and Scrum
(Schwaber, 2004).
Scrum stands out among the methods due to its
emphasis on project management. It is an agile
framework that provides a set of best practices to
achieve the success of a project, supporting the
construction of a software product in iterative steps.
It does not define ‘what should be done’ in all the
circumstances. Hence, it may be used in complex
projects where it is not possible to predict everything
that will occur (Schwaber, 2004).
Scrum projects are carried out in a series of
iterations called Sprints. Each Sprint has a certain
time in calendar days to be completed. Schwaber
(2004) proposes a 30 days Sprint.
Scrum defines three main roles: Product Owner,
responsible for the requirements; Team, represented
by developers, and Scrum Master, represented by the
manager. The two main artifacts of Scrum are the
Product Backlog - list of requirements that must be
implemented in the system - and the Sprint Backlog
- list of tasks to be performed on a Sprint.
The process begins when the product owner has
a general description of the product to be developed.
From this description, called Vision, the Product
Backlog is created. At the beginning of each sprint,
the Sprint Planning Meeting takes place, where the
Product Owner prioritizes the Product Backlog
items. Based on this prioritization, the Team selects
the tasks that will be in the Sprint Backlog.
During the Sprint, the Team carries out the Daily
Scrum Meeting - which is 15 minutes long – where
the work is synchronized and possible issues are
discussed. At the end of each Sprint, the Team
presents the completed functionality at the Sprint
Review Meeting, and the Scrum Master encourages
the Team to review the development process to
make it more efficient for the next Sprint.
A key point for the proper practice of agile
methods is the planning of iterations. This planning
must be based on the size estimation of the items
that will be developed, and also based on the
productivity of the Team members. Although these
items may have different representations, the most
common one is user story, which is a brief
description of the functionality being developed
accordingly to the client's project vision (Cohn,
2005).
Among the existing methods to estimate the size
of the work to be done, Cohn (2005) highlights:
Story Points (SP): unit of measure which express
the size of a user story, a system characteristic or
any piece of work to be developed.
Ideal days: unit of measure which corresponds to
an ideal day of work, which is a day when every
resource needed, is available and the work is
done without interruptions.
Two scales of magnitude are suggested by Cohn
to characterize the complexity (or size) of the work
to be done: the Fibonacci sequence, in which the
next sequence number is the sum of the two previous
numbers (1, 2, 3, 5, 8,...); and a second sequence, in
which each number is twice the precedent number
(1, 2, 4, 8, 16,...). These scales can be used in
conjunction with what Cohn called Planning Poker.
In order to estimate the complexity of the task, Team
members receive cards with these sequence
numbers, and for each Piece of Work, the values are
arranged together until a consensus is reached.
Haugen (2006) presents results that indicate a good
performance of the Team on the accuracy of
estimations when this type of technique is used.
In addition to the methods presented to calculate
the size of the work to be done, there are other more
traditional techniques that can be used to assist in
planning. They are:
Function Points Analysis (FP): proposed by
Albrecht (1979) for measuring software projects
size. This measure is calculated based on the
complexity of the technique five logical
components. These points are calculated in two
PW-PLAN - A Strategy to Support Iteration-based Software Planning
67