Model View Controller JSPs Servlets EJBs

Recent trends in
estimation methodologies
- Sharing of experience
Nagaraja Gundappa
Head, Execution Excellence group
Talent Transformation
Wipro Technologies
Overview
• Experience with current methodologies for web
applications
– Cocomo
– Function points
– Use case points
• New paradigm in effort estimation – open estimation
methodologies
– Need for open methodologies
– Characteristics of open estimation methodologies
– Sample estimation methodologies
• Experience with MVC Points
SPM ICON
Recent trends in estimation methodologies
2
Current methodologies…
• Cocomo
– Focuses on estimating effort given the size of
application in lines of code
– Does not offer any method to arrive at the size in lines
of code
– For web applications, given the complexity of
environments, it is extremely difficult to estimate the
size in lines of code given high level requirements
– Usage level is almost zero for estimating for web
applications
SPM ICON
Recent trends in estimation methodologies
3
…Current methodologies…
• Function points
– Views an application as consisting of a set of
functionality defined by transactions. Size of
transactions determines size of application
– Complexity of transaction is determined by amount of
data involved in the transaction
– Visualization of application not in line with OOSE
– Not easy to bring in new complexity factors
– Not easy to validate size (FP) to effort conversion
– Not widely used for estimating web applications
SPM ICON
Recent trends in estimation methodologies
4
…Current methodologies…
• Use case points
– Views an application as consisting of a set of use cases.
– Complexity of use cases is determined by complexity of actor and
number of transactions involved in the use case
– Visualization of application in line with OOSE; more relevant for
web applications
– Writing use cases currently is very subjective.
• Having one use case with many transactions v/s having nested use
cases
– Not easy to bring in new complexity factors
– Not easy to validate size (UP) to effort conversion
– Not widely used
SPM ICON
Recent trends in estimation methodologies
5
Current paradigm
• Summary of current estimation methodologies
– Generic – applicable for all technologies
• Because the sizing units are abstract and not specific to a
technology, it is difficult to visualize the application in terms of
the sizing units
• Because sizing units do not directly correspond to code units,
it is cumbersome to validate the conversion of size to effort at
a unit level.
– Closed – involves empirical equations in arriving at
size
• Difficult to add new complexity factors by the users
– Difficult for organization to adapt and take it through
continuous improvement with user level customization
and optimization
SPM ICON
Recent trends in estimation methodologies
6
New paradigm
• Open estimation methodologies
– A new trend
• 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
SPM ICON
Recent trends in estimation methodologies
7
New paradigm - methodologies
• Some methodologies in the new paradigm
– 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
– MVC Points
• Used for J2EE and .Net development projects
SPM ICON
Recent trends in estimation methodologies
8
New 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
SPM ICON
Recent trends in estimation methodologies
9
Interface points
• Interface points
– Alternate names are 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.
– An interface can also be viewed as an object involving a specific
group of fields and defined operations
– This is classified into simple, medium and complex based on
• Complexity of the data
– How many hierarchies?
– Complexity of the technology to establish connectivity / build adapters
• Processing (operation performed on data)
– Straight forward mapping between fields to fields
– Looping through data fields for mapping between source and destination
– Any processing / transformation to be done
– More than 250 applications have used this successfully
SPM ICON
Recent trends in estimation methodologies
10
MVC points
• Overview
– Based on the architecture pattern called Model-ViewController (MVC)
– Most web applications, especially J2EE and .Net
applications follow an MVC pattern
– An application is viewed to be consisting of a number
of use cases each realized through a set of models,
views and controllers
– The models, views and controllers (MVC Points) are
classified into simple, medium and complex and have
defined effort norms
SPM ICON
Recent trends in estimation methodologies
11
MVC pattern
• For those new to MVC patterns…
– Mapping of MVC pattern to J2EE technology
User
View
Controller
JSPs
Servlets
Model
EJBs
DBMS
SPM ICON
Recent trends in estimation methodologies
12
MVC Points - steps
Step 1: Assume a Model-View-Controller (MVC) pattern for the
application.
Step 2: List all the Use Case titles
Step 3: Identify the View Classes, Model Classes and Controller classes
for all use cases
Step 4: Categorize each view, model and controller class as Simple ,
Medium or Complex.
Step 5: Add the Models, Views and Controllers in each category
Step 6: Multiply the number of models, views and controllers by
corresponding effort norms. This step provides the Coding and Unit
Testing (CUT) effort in person days for each category of MVC points.
SPM ICON
Recent trends in estimation methodologies
13
…Steps
Step 7:Add the effort of each category to arrive at the CUT
effort for the whole application
Step 8: Multiply the CUT effort by 2.5 to arrive at the life cycle
effort
Step 9:Check if any other miscellaneous tasks outside the
purview of MVC that have to be estimated and carry out
the estimate using WBS
Step 10: Determine project management effort and Buffer
Step 11: Add efforts of steps 8, 9 and 10 to arrive at the final
effort estimate for the project
SPM ICON
Recent trends in estimation methodologies
14
MVC Points - Samples
Complexity indicators
A complete estimation sheet
SPM ICON
Recent trends in estimation methodologies
15
MVC points – Validation results
• Re estimations
– An application for a publishing industry company
• Effort originally estimated by the team = 11 person months
• Actual effort = 16 person months
• Effort re-estimated using the MVC Points methodology = 18
person months.
• 31% deviation in the original estimates and 12% deviation in re
estimation using the MVC Points model
SPM ICON
Recent trends in estimation methodologies
16
… Validation results
• …Re estimations
– An application for a company in manufacturing industry
• Module 1:
– Effort originally estimated by the team = 120 person days
– Actual effort = 180 person days
– Effort re-estimated using the MVC Points methodology = 198
person days.
– 33% deviation in the original estimate and 10% in re estimate
• Module 2
– Effort originally estimated by the team = 140 person days
– Actual effort = 180 person days
– Effort re-estimated using the MVC Points methodology = 169
person days
– 22% deviation in original estimate and 6% in re estimate
SPM ICON
Recent trends in estimation methodologies
17
… Validation results
• Comparison of estimate v/s actual effort
– An application for a company in retail industry
• Estimation was prepared using MVC Points methodology and
the estimate was compared with actual effort after project
completion
• Estimated effort = 756 person days
• Actual effort = 786 person days
• The deviation between the estimation and actual effort is - 4%
• The effort under run was attributed to over skilled team
SPM ICON
Recent trends in estimation methodologies
18
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 bodies supporting the methodology
SPM ICON
Recent trends in estimation methodologies
19
Conclusions
• ‘One size fits all’ paradigm seems to be
inadequate. Most current methodologies belong
to this paradigm
• We are witnessing the emergence of many open
methodologies
– These are semi formal methodologies developed by
practitioners
– Local to specific technology and application type
– User level customization and optimization is possible
• MVC Points is the first such open methodology to
be articulated formally
SPM ICON
Recent trends in estimation methodologies
20
SPM ICON
Recent trends in estimation methodologies
21
MVC Design Pattern
• MVC is an architectural pattern that is used
when developing interactive application. Any
interactive application can be categorized into:
– View Classes which handle the GUI
– Model Classes which can be entity classes interacting
with the database tables of the application or the
business logic classes
– Controller classes which communicate between the
View and Model Classes.
SPM ICON
Recent trends in estimation methodologies
22
MVC and Internet applications
• Typically in internet applications User interfaces
change often, look-and-feel being a competitive
issue.
• The same information is presented in different
ways.
• The core business logic and data is stable.
• So model classes would not change often but
view classes would
SPM ICON
Recent trends in estimation methodologies
23
Advantages of MVC Pattern
• Separating Model from View (that is, separating data
representation from presentation)
- easy to add multiple data presentations for
the same data.
- facilitates adding new types of data
presentation as technology develops.
- Model and View components can vary
independently enhancing maintainability,
extensibility, and testability.
SPM ICON
Recent trends in estimation methodologies
24