effort estimation for web applications
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
G. Nagaraja
General Manager,
Talent Transformation,
Wipro Technologies
Estimating 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
SEC2006 Wipro Technologies Estimating Web applications 3
Overview
MVC Points methodology
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
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?
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
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
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
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
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
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
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
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
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
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.
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.
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
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
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
SEC2006 Wipro Technologies Estimating Web applications 20
Completing the MVC Estimation
A sample MVC Points estimation work sheet…
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
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.
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
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
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
SEC2006 Wipro Technologies Estimating Web applications 26
Thank you