You are on page 1of 20

AGILE METHODS

Agile methods are designed to overcome the disadvantages we have noted with heavyweight
implementation methodologies. There are various agile approaches, including:

 Crystal technologies
 Atern (formerly DSDM)
 Feature-driven development
 Scrum
 Extreme Programming (XP)

In Agile model, the feature requirement is decomposed into several small parts that can
be incrementally developed. The agile model adopts an iterative approach. Each
incremental part I developed over iteration. Each iteration is intended to be small and
easily manageable and last for couple of eek only. At a time only one increment is
planned, developed and then deployed at customer’s site. No long term plans are made.
Time taken to complete iteration is called time box. Some of the principle of Agile is
discussed below:

 Agile model emphasize face to face communication over written document. Team
size is deliberately kept mall (5-9 people)
 An Agile project usually includes a customer representative in the team. At the end of
each iteration , the customer representative along with the stakeholder review the
progress made , re –evaluate the requirements and give suitable feedback to development
team
 It deploy pair programming here to programmer work together at one work station .
One type the code while the other reviews and they switch their roles every hour or so.

Dynamic Systems Development technique (DSDM)

The Dynamic Systems Development technique (DSDM) is an agile code development


approach that provides a framework for building and maintaining systems. The DSDM
philosophy is borrowed from a modified version of the principle—80 % of An application
is often delivered in twenty percent of the time it would desire deliver the entire (100
percent) application.

Eight core Atern principles have been enunciated.

1. Focus on business need. Every decision in the development process should be taken
with a view to best satisfying business needs.
2. Deliver on time. Time-boxing is applied. Every deadline will see the delivery of
valuable products, even if some less valuable ones are held over. This is better than
delivery dates being pushed back until a delivery of all scheduled products can made.
3. Collaborate: A one-team culture should be promoted, where user representatives are
integrated into the delivery team.
4. Never compromise quality : Realistic quality targets are set early in the project. A
process of continuously testing developing products starting as soon as possible is
adopted.
5. Develop iteratively. The prototyping approach would be example of how this might
be done.
6. Build incrementally from firm foundations. The incremental delivery approach as
described in is used .
7. Communicate continuously. ln the case of users this could, for example, be done
via workshops and the demonstration of prototypes
8. Demonstrate control. Atern methodology has a range of plans and reports that can be
used to communicate project intentions and outcomes to project sponsors and other
management stakeholders.

The main life-cycle phases are shown in fig. below:

1. Feasibility/foundation Among the activities undertaken here is derivation of a


business case and general outlines of the proposed architecture of the system to be
developed
2. Exploration cycle. This investigates the business requirements. These
requirements are translated into a viable design for the application. This could be
an iterative process that could involve the creation of exploratory prototypes. A
large project could be decomposed into smaller increments to assist the design
process.
3. Engineering cycle. This takes the design generated in the exploration cycle and
converts it into usable components of the final system that will be used
operationally. Once again this could be done using incremental and evolutionary
techniques.
4. Deployment: This gets the application created in the engineering cycle into actual
operational use.

Scrum

Scrum is the type of Agile framework. It is a framework within which people can address
complex adaptive problem while productivity and creativity of delivering product is at
highest possible values. Scrum uses Iterative process.

Lifecycle of Scrum:

Sprint:
A Sprint is a time-box of one month or less. A new Sprint starts immediately after the
completion of the previous Sprint.
Release:
When the product is completed then it goes to the Release stage.
Sprint Review:
If the product still have some non-achievable features then it will be checked in this stage
and then the product is passed to the Sprint Retrospective stage.
Sprint Retrospective:
In this stage quality or status of the product is checked.
Product Backlog:
According to the prioritize features the product is organized.
Sprint Backlog:
Sprint Backlog is divided into two parts Product assigned features to sprint and Sprint
planning meeting.

Advantage of using Scrum framework:


 Scrum framework is fast moving and money efficient.
 Scrum framework works by dividing the large product into small sub-products. It’s like
a divide and conquer strategy
 In Scrum customer satisfaction is very important.
 Scrum is adaptive in nature because it have short sprint.
 As Scrum framework rely on constant feedback therefore the quality of product
increases in less amount of time

Disadvantage of using Scrum framework:

 Scrum framework do not allow changes into their sprint.


 Scrum framework is not fully described model. If you wanna adopt it you need to fill in
the framework with your own details like Extreme Programming(XP), Kanban, DSDM.
 It can be difficult for the Scrum to plan, structure and organize a project that lacks a
clear definition.
 The daily Scrum meetings and frequent reviews require substantial resources.
XP Programming
Difference in agile method

Documentation

 AGILE advocates to minimize documentation task and invest more time on core development
activity, however the degree of documentation differ in different approaches. –
 XP (Xtreme Programming) & Scrum, don’t put a lot of emphasis on documentation and
minimum documents are created
 DSDM requires some documents to be created

Team meetings

Extensive communication is also a core principle of Agile and the level of communication
differs in the different approaches.
 Informal daily stand up meetings happen in Scrum & XP
 Information sharing is through documents in DSDM

Size of projects

The size of projects and the teams also differ as you move from one method to another.
 While Scrum & DSDM, can be followed for projects of any size, methods like XP are only
followed for smaller projects

Sprint Cycle
The iteration time period also differ in the different methods. Here is how they differ –
 DSDM advocates producing 80% of the solution in 20% of the time
 XP has a sprint cycle varying from 1 week to 6 weeks
 Scrum -> 2 to 4 weeks;

To Summarize

XP (Xtreme Programming)

Advantages:

1. End users (customers) are actively involved in the process of software development. Hence
the product developed is very close to what the customer wants.

2. Team feedback is also taken very seriously and there is a lot of focus on self-improvement

3. Best practices are well-defined and religiously followed within the teams

Disadvantages:
1. Documentation is given less emphasis and hence giving reference to an issue / instance in
past (while working on projects) is a challenge
2. At times it is difficult to bring in customer into the team since he is very distant from the
development team. Hence some other team member (like sponsor / PM) plays the role of the
customer. Thus lack of discipline observed at times

DSDM

Advantages:
1. Allows for efficient project management and strong control on the project lifecycle
2. Requirement priority approach helpful in delivering most important functionalities first
Disadvantages:
1. Documentation is complex and time consuming

Scrum

Advantages:
1. High level of communication is observed in Scrum teams and which increases focus on
problem resolution, product improvement and team improvement through feedbacks
2. It offers certification. Hence it becomes easy for organization to know who are experts and
hire people who are ‘certified’
3. Harvard Business Review has spoken a lot about Scrum. Hence it must be something which
can be taken seriously in the business
Disadvantages:
1. Poorly documented and hence it is too easy to be abused
2. Product owners have lose control on the project
3. Changing requirements allow customers to get tempted to keep demanding more and more
functionalities
Software Effort Estimation

The basis for software estimating

The need for historical data

Most estimation methods need information about past projects. However, care is needed when
applying past performance to new projects because of possible differences in factors such as
programming languages and the experience of staff. One well known international database is that
maintained by the international Software Benchmarking Standard Group (ISBSC), which currently
contains data from 4800 projects.

Parameters to be estimated

Project manager need two project parameters for carrying out project planning. These two are effort
and Duration. Duration is usually measured in months. Work month (wm) is popular unit for Effort
estimation

Measure of work

Measure of work involved in completing a project is also called size of project. Two metrics are at
present popularly being used to measure size. These are Source line of code (SLOC) & Function Point
(FP).

Some of the shortcomings of SLOC are:


 No precise definition
 Difficult to estimate at start of project
 Only a code measure
 Programmer Dependent
 Does not consider code complexity

Software effort estimation techniques

 algorithmic models, which use ‘effort drivers' representing characteristics of the target system and
the implementation environment to predict effort
 expert judgement, based on the advice of knowledgeable staff;
 analogy, where a similar, completed, project is identified and its actual effort is used as the basis of
the estimate;
 Parkinson, where the staff effort available to do a project becomes the 'estimate';
 price to win, where the 'estimate' is a figure that seems sufficiently low to win a contract;
 top-down, where an overall estimate for the whole project is broken down into the effort required
for component tasks;
 bottom-up, where component tasks are identified and sized and these individual
FUNCTION POINT ANALYISIS
Calculation of Function Point (FP)

Function Point (FP) is an element of software development which helps to approximate the
cost of development early in the process. It may measures functionality from user’s point of
view.

Counting Function Point (FP):

Step-1:

F = 14 * scale

Scale varies from 0 to 5 according to character of Complexity Adjustment Factor (CAF).


Below table shows scale:

0 - No Influence

1 - Incidental

2 - Moderate

3 - Average

4 - Significant

5 - Essential

Step-2: Calculate Complexity Adjustment Factor (CAF).

CAF = 0.65 + ( 0.01 * F )

Step-3: Calculate Unadjusted Function Point (UFP).

TABLE (Required)
Multiply each individual function point to corresponding values in TABLE.

Step-4: Calculate Function Point.

FP = UFP * CAF

Example:

Given the following values, compute function point when all complexity adjustment factor
(CAF) and weighting factors are average.
User Input = 50
User Output = 40
User Inquiries = 35
User Files = 6
External Interface = 4
Explanation:

 Step-1: As complexity adjustment factor is average (given in question), hence,


scale = 3.
F = 14 * 3 = 42
 Step-2:
CAF = 0.65 + ( 0.01 * 42 ) = 1.07
 Step-3:
As weighting factors are also average (given in question) hence we will multiply each
individual function point to corresponding values in TABLE.
UFP = (50*4) + (40*5) + (35*4) + (6*10) + (4*7) = 628
 Step-4:
Function Point = 628 * 1.07 = 671.96
This is the required answer.
COCOMO MODEL
COCOMO II

You might also like