effort estimation for web applications

26
G. Nagaraja General Manager, Talent Transformation, Wipro Technologies Estimating for web applications

Upload: nagaraja-gundappa

Post on 28-Nov-2014

3.072 views

Category:

Technology


0 download

DESCRIPTION

I have been working on a new breed of estimation methodologies called "Open estimation methodologies". They can be called "Deliverable based estimation methodologies" also. This presentation is about this family of methodologies.

TRANSCRIPT

Page 1: Effort estimation for web applications

G. Nagaraja

General Manager,

Talent Transformation,

Wipro Technologies

Estimating for web

applications

Page 2: Effort estimation for web applications

SEC2006 Wipro Technologies Estimating Web applications 2

The updated contact details of the author are as follows:

Chief consultant,

Akshaya Centre of Excellence (ACE), Bangalore

Ph: 99002 49348

Email: [email protected]

Web: www.acoe.in

Page 3: Effort estimation for web applications

SEC2006 Wipro Technologies Estimating Web applications 3

Overview

MVC Points methodology

Page 4: Effort estimation for web applications

SEC2006 Wipro Technologies Estimating Web applications 4

Formal methodologies and web applications

Formal methodologies not widely used to estimate web

applications

– Cocomo

• Mainly a costing model and cannot be used for arriving at size

– Function Points

• Visualization of application not in line with web application

• Not easy to bring in new complexity factors

– Use case points

• The way use case is written is highly subjective.

• Not easy to bring in new complexity factors

Page 5: Effort estimation for web applications

SEC2006 Wipro Technologies Estimating Web applications 5

Current trend

The expert estimation methodology has evolved over

a period of time

– A typical estimation sheet done 7 years back

– A typical estimation sheet done 5 years back

– A typical estimation sheet done 3 years back

• Can we call this a semi structured methodology?

– What is the scenario now?

Page 6: Effort estimation for web applications

SEC2006 Wipro Technologies Estimating Web applications 6

Current trend–Semi structured methodologies

What are semi-structured methodologies?

– Evolves out of practice

• Standardize work break down elements into sizing units

• Define complexity factors for classifying sizing units

• Define effort norms of sizing units of various complexities

– Specific – applicable to specific technologies and application types

• Sizing units specific to technology / application type. Easy to visualize

• Sizing units correspond to code units

– Open – does not involve empirical equations in arriving at size

• Easy to add new complexity factors by end users

– Possible for organizations to adapt and take it through continuous improvement with user level customization and optimization

Page 7: Effort estimation for web applications

SEC2006 Wipro Technologies Estimating Web applications 7

…Semi structured methodologies

Few semi structured methodologies

– Template points

• Used for portal development by implementing content management

packages

– Data points

• Used for data migration projects

– Interface points

• Used for Enterprise Application Integration projects

Page 8: Effort estimation for web applications

SEC2006 Wipro Technologies Estimating Web applications 8

Semi structured methodologies – closer look

Template points

– Customization of content management products essentially

involve customizing pre-built templates

– Complexity of each template is determined by difficulty involved

in customizing it

– Templates classified into simple, medium and complex based on

number of hooks and complexity of processing involved in each

hook

Data points

– A table / file is a sizing unit

– Complexity of structure such as if the data is nested or not

determines complexity of unit

– Complexity of processing / transforming data while migrating

Page 9: Effort estimation for web applications

SEC2006 Wipro Technologies Estimating Web applications 9

Interface points

Alternate names - integration points and message points

– One interface point is one link between a source system and a

destination system to carry a set of related data (message)

• Ex:- an interface between works management system (Oracle

application) and Customer management system (A CRM application

on SAP) for booking appointments is one interface point.

– Can also be viewed as an object involving a fields & operations

– Complexity of an interface is defined based on

• Complexity of the data

o How many hierarchies?

o Complexity of the technology to establish connectivity / build adapters

• Processing (operation performed on data)

o Straight forward mapping between fields to fields

o Looping through data fields for mapping between source and

destination

o Any processing / transformation to be done

– More than 250 applications have used this successfully

Page 10: Effort estimation for web applications

SEC2006 Wipro Technologies Estimating Web applications 10

Formal v/s semi structured methodologies

What stops a semi structured methodology from being a

formal methodology?

– Some variability in the sizing units – not completely standardized

and followed uniformly

– No clearly agreed upon guidelines to define complexity

– Norms are ad hoc

How to take a semi structured methodology forward and

make it a formal methodology?

– Involve multiple user groups in the organization and standardize

on the sizing units

– Standardize complexity classification guidelines

• Can be open ended

– Get inputs from groups across the organization and define norms

Page 11: Effort estimation for web applications

SEC2006 Wipro Technologies Estimating Web applications 11

A formal methodology for web applications

Let us look at one formal methodology evolved out of a

semi-structured methodology

Page 12: Effort estimation for web applications

SEC2006 Wipro Technologies Estimating Web applications 12

MVC pattern for J2EE

For those new to MVC patterns…

– Mapping of MVC pattern to J2EE technology

Model View Controller

JSPs Servlets EJBs

DBMS

User

Page 13: Effort estimation for web applications

SEC2006 Wipro Technologies Estimating Web applications 13

Components of MVC Points methodology

Simple

Medium

UC1

UC2

UCn

Classified MVCs

V

C

M

V

C

M

V

C

M Complex

Life

cycle

effort for

MVCs

Effort for

coding

and unit

testing

Total

Development

Effort

Other non-

MVC

Effort Miscellaneous

requirements

MVC Points Estimation – work flow view

MVC Points Methodology - Elements

Guidelines to identify

Models, View and

Controllers from Use

cases

Guidelines to classify M,V

and Cs into simple,

medium and complex

categories

Effort norms for coding

and unit testing the

Models, Views and

Controllers

Guidelines to

arrive at overall

effort

U

S

E

C

A

S

E

S

Page 14: Effort estimation for web applications

SEC2006 Wipro Technologies Estimating Web applications 14

Gather inputs RFP

Q & A

Step 2 - Identify Ms, Vs and Cs

Step 3 - Classify complexities

Step 4 - Multiply CUT effort norms

Step 5 - Determine Life cycle effort

Step 6 - Add PM effort, buffer Estimated

Effort

End of MVCP Estimation

Complexity

guidelines

CUT norms

Step 1a - Identify Use case titles 1b - Identify

Misc.

requirements

2b - Identify

WBS

5b – Estimate

for

Misc Reqmts

MVC points – Flow chart

Page 15: Effort estimation for web applications

SEC2006 Wipro Technologies Estimating Web applications 15

…Complexity factors for view

…Factors influencing complexity…

– View

• Page Splits and continuations – For data entry, batched search

results etc, and data to be stored across these pages (in the

Session or as hidden elements or even as Session beans as the

case might be.)

• Continuous screens

• Discontinuous screens with other processes in between them. (Like

Login, registration etc.)

• Input Screens to be navigated back and forth (with the same logical

set of information).

• Data Display Logic – Display of elements based on multiple

conditions, Display of a collection, global lists, Entry point from

different processes, role based display of information

(personalization?) etc.

Page 16: Effort estimation for web applications

SEC2006 Wipro Technologies Estimating Web applications 16

…Complexity factors for model

…Factors influencing complexity…

– Model

• Simplicity of the interface with a number of methods and parameters

that the methods take.

• Processing Logic.

• Number of data sources and type of data source

• Asynchronous processing – JMS

• Entity beans – Whether CMP is being used with tools;

• Entity Beans – If BMP is used, whether multiple tables are being

accessed, whether any partial caching is taking place; Whether the

data update logic is complicated.

Page 17: Effort estimation for web applications

SEC2006 Wipro Technologies Estimating Web applications 17

…Complexity factors for controller

…Factors influencing complexity…

– controller

• Number of operations to be done per request.

• Whether the request is to be routed across modules based on the

output of intermediate operations (Like completion of pending

operations after login).

• Data elements to be retrieved from the request and formatted into

holders to be passed on to the beans

• Servlet Session information to be updated.

• Operations to be done based on Servlet session information.

• Keeping track of processes across page sequences

Page 18: Effort estimation for web applications

SEC2006 Wipro Technologies Estimating Web applications 18

Complexity classification - Summary

MVC Unit Simple Medium Complex

JSP (View) Few Data entry and

display elements

and submit points

(< 10)

More data entry, display

elements and submit

points ( < 20 )

Page breaks, display logic,

Simple usage of

DHTML

Complex Validations,

Complex Formatting,

Complex page layout,

Complex display logic

Servlet

(Controller)

1-2 operations /

request.

Retrieval and passing

of data elements

More operations per

request,

Session information storing

Operations based on servlet

session information

Keeping track of processes

across pages

Request routing based on

intermediate operations

EJB (Model) Simple Interface (Few

methods and

parameters)

Simple data access,

data logic (no

caching)

Multiple data sources

Complex data retrieval and

up dation logic

Caching

Multiple data sources;

involves tables and other

sources

For more detailed guidelines, please refer attached document

Page 19: Effort estimation for web applications

SEC2006 Wipro Technologies Estimating Web applications 19

Norms for coding and unit testing effort

CUT Effort norm in person days

MVC Unit Simple Medium Complex

View (JSP) 2 4 8

Controller

(Servlet)

2 4 6

Model (EJB) 3 7 14

Page 20: Effort estimation for web applications

SEC2006 Wipro Technologies Estimating Web applications 20

Completing the MVC Estimation

A sample MVC Points estimation work sheet…

Page 21: Effort estimation for web applications

SEC2006 Wipro Technologies Estimating Web applications 21

Validation of MVC Points methodology

Re estimations

– 3 application modules in acceptance phase chosen and re-estimated

– The initial RFP / RS documentation was given to a person joining the team during acceptance phase and he was asked to prepare an estimate.

– The re-estimated effort is compared with actual effort and WBS estimate

Application

(Dev. by Wipro)

Original

estimate

(WBS)

Re-estimate

(MVCP)

Actual effort %

deviation

(WBS)

%

deviation

(MVCP)

Publishing 11 18 16 31% 12%

Manufacturing 1 6 9.9 9 33% 10%

Manufacturing 2 7 8.45 9 22% 6%

Note: All efforts in person months

Page 22: Effort estimation for web applications

SEC2006 Wipro Technologies Estimating Web applications 22

… Validation results

Other validations

– Norms were formulated after consulting architects from multiple

business units

– Many proposals won by Wipro have been estimated using

MVCP

– Many new applications developed for existing customers have

also been estimated using MVCP and customers have generally

found the estimates acceptable

• In one case, we did a follow up with the project and found that the

actual effort was very close to the effort estimate.

Page 23: Effort estimation for web applications

SEC2006 Wipro Technologies Estimating Web applications 23

MVC points – Merits and demerits

Merits

– Intuitive to use for web applications • Sizing units are based on actual coding units that will be developed

• Maps well to the object oriented paradigm

– Possible for organizations to adopt, customize and optimize • Complexity factors do not have empirical equations and hence end

users can add new complexity factors easily

• Effort norms per sizing unit can be easily verified as sizing units are coding units.

Demerits

– Limited applicability as methodologies are specific to technologies

– Yet to have any standard body supporting the methodology

Page 24: Effort estimation for web applications

SEC2006 Wipro Technologies Estimating Web applications 24

Comparison of estimation methodologies

Inputs

Breakdown

units

Complexity

classification

Sizing units

Estimation

steps

Well

documented

RFP

Functionality

/ Ad hoc units

Ad hoc / None

No sizing.

Direct effort

WBS

Well

documented

RFP

ILF, EIF, EI

EO and EQ

DETs

RETs, FTRs

Function

Points

FP

Well

documented

RFP

1. Use cases

2. MVCs

Flexible

guidelines

MVC Points

MVCP

Well

documented

RFP

Use cases

Transactions,

Actors

Use case

points

UCP

Estimation

methodologies

Adjustment

factors

Nothing

specific 14 GSCs

Built into

Complexity

guidelines

13 TCFs &

8 ECFs

Page 25: Effort estimation for web applications

SEC2006 Wipro Technologies Estimating Web applications 25

Summary

So, how are web applications estimated today?

– Isolated instances of usage of formal methodologies such as

function points and use case points

– Most estimations carried out by semi structured methodologies

– Semi structured methodologies have several advantages

• Open – Users can customize complexity guidelines

• Easy to break down application into the sizing units

• Possible for organizations to make them into formal methodologies

and take them through continuous improvement

– MVC Points is a formal methodology for estimating J2EE and

.Net applications

Page 26: Effort estimation for web applications

SEC2006 Wipro Technologies Estimating Web applications 26

Thank you