Grateful 7 speech thanking everyone that has helped.pdf
PMC1
1.
2. Project Management National Conference 2011 PMI India
Estimation Challenges in Cloud
Computing Projects
Suresh Gatti
General Manager CSC
2|P a g e
Application of Select Tools of Psychology for Effective Project Management
3. Project Management National Conference 2011 PMI India
Contents
1 Abstract .............................................................................................................................4
2 Introduction........................................................................................................................4
3 What is cloud computing?..................................................................................................4
4 Application Development on cloud....................................................................................5
5 Estimation...........................................................................................................................6
6 Project Size.........................................................................................................................8
7 Project Attributes................................................................................................................8
8 Unit Effort:.........................................................................................................................9
9 Additional Cost components............................................................................................10
10 Suggestions:...................................................................................................................11
11 Conclusion......................................................................................................................11
12 References......................................................................................................................12
13 Author’s Profile..............................................................................................................13
3|P a g e
Application of Select Tools of Psychology for Effective Project Management
4. Project Management National Conference 2011 PMI India
1 Abstract
This paper discusses the typical issues encountered in estimating software
projects, specifically, the projects developed for the fairly new cloud computing
technology. How different are cloud computing projects from other projects?
What are the general characteristics of cloud computing projects? How traditional
estimation techniques are applicable in case of cloud computing projects and
what are the main challenges?
Keywords: Cloud Computing, Estimation Challenges, Platform as a Service
2 Introduction
The software industry is abuzz with cloud computing everywhere. The interest in
cloud computing is shown by consumers and as well as the providers. Unlike the
many previous trends, the cloud computing cannot be ignored as some hype. It
is a natural technical evolution towards higher productivity and efficiency in spite
of a few accompanying concerns. So, given that cloud computing is here to stay
and will grow dramatically in the near future, what are the project management
aspects that will be different or unique to cloud computing environment?
This paper will restrict itself to the subject area of estimation among other topics.
The importance of estimation cannot be overemphasized. In a relatively new
area such as cloud computing, it is even more critical. Because, once the idea of
cloud computing is sold to the management and the business users, the first
thing that will be asked is how much it is going to cost. What are the cost
savings? How long is it going to take, etc.
So, a good and quick estimation which is as accurate as possible is absolutely
necessary at the beginning of a project in order to get the necessary support
commitment from the all the stakeholders of the business application.
3 What is cloud computing?
NIST defines cloud computing as a model for enabling ubiquitous, convenient,
on-demand network access to a shared pool of configurable computing
resources (e.g., networks, servers, storage, applications, and services) that can
be rapidly provisioned and released with minimal management effort or service
provider interaction.
4|P a g e
Application of Select Tools of Psychology for Effective Project Management
5. Project Management National Conference 2011 PMI India
In simpler terms, cloud computing enables efficient use of the resources besides
making them readily and easily available. The cost is usage driven or pay-as-
you-go model similar to the domestic power usage.
There are mainly three types of cloud computing delivery models. They are
Infrastructure as a Service (IaaS), Platform as a Service (PaaS) and Software as
Service (SaaS) .There are several books and materials available which explain
these delivery models very well.
Probably, the model which is of most interest to a software developer is the
PaaS. Here a platform consisting of the infrastructure, development and
deployment environment is readily available and the software development team
need to focus only on the application development. It is a complete solution set
which is an integrated set of software components required to build and run the
software applications.
Examples of PaaS are Google App Engine, Amazon’s AWS, VMWare’s vFabric,
Microsoft’s Azure Services and Salesforce.com’s Force.com.
PaaS is the model where business applications are developed in the traditional
sense. So, here is where the estimation is one of the major tasks.
4 Application Development on cloud
Developing applications could be somewhat different from the traditional
application development. First, the development life cycle could be very short,
following agile or SCRUM methodology where new features are added in short
intervals. The PaaS platforms available in the market are rich with developer-
friendly functions and provide a lot of template code. This makes development
very easy and fast once the requirements are known. So, the role of
requirements management is more critical and requirements gathering will take a
greater share of effort out of the total development effort than in the traditional
development.
There are other differences. Most of the technologies of cloud application
development are fairly new except VMWare’s vFabric which is mainly JAVA and
Spring-based. But, applications developed in other languages can also be
executed from the cloud platform via web services. As mentioned before, another
big difference is the availability of a rich set of tools that aid in creating the User
Interface and other business tasks. Some companies claim a productivity
savings of up to 70% over the traditional development due to these features.
5|P a g e
Application of Select Tools of Psychology for Effective Project Management
6. Project Management National Conference 2011 PMI India
Another big characteristic of cloud technologies is the database technology
which is mostly non-relational with a provision for a relational interface. The
experience level in this new technology is obviously very low. So, while
estimating, database activities such as data modelling and migration will have to
consider this and probably will take more time than usual.
At a broad level, there are two types of application development for cloud.
One is developing applications directly in PaaS environment such as Force.com.
These are new applications, starting with collecting the user requirements
followed by development and deployment. This may not be very much different
from the traditional application development and has similar challenges. In fact,
rapid prototyping can make requirements gathering easier as user can get to see
the development output early in the lifecycle and provide feedback.
The other type of development is migration of existing applications to the cloud
environment. There are several ways of migrating. Here we will consider the
‘Rebuild’ approach where the current application is mined to extract the business
rules and requirements specifications. These requirements specifications are
further validated with the help of SMEs before redeveloping the application on
the cloud platform.
5 Estimation
For cloud computing projects we may not be able to apply the estimation
techniques such as analogy and comparison techniques which require similar
past projects as there is not big enough database that is available on cloud
computing projects.
Generally, the three main components that go into the cost are project size,
project attributes and unit effort. The project size is a measure of the
requirements. The common ways of measuring the size are Source Lines of
Code, Function Points, Use Case Points, Feature Points, and Object Points etc.
The project attributes are the type of technology, development process,
experience level of the team, usage of tools etc. The estimation process should
take these project attributes into account in the overall formula in terms of
complexity factor or a modification factor to the unit of effort. The third
component is the Unit effort. The unit effort is the amount of effort required to
perform the development for a unit of the project size. If the project size is
determined in terms of function points, the unit effort is the amount of effort (say,
in hours or days) per function point.
6|P a g e
Application of Select Tools of Psychology for Effective Project Management
7. Project Management National Conference 2011 PMI India
In cloud computing projects, there are challenges in both measuring the size and
as well as in obtaining the unit effort.
One way to achieve better accuracy in estimation is to decompose the project in
terms of major activities and estimate the activities individually and add them up
to get the total project effort. Most of the activities of the cloud application
development are very similar to the non-cloud application development. For
those activities that are similar, the size and effort can be obtained easily and
historical data would normally be available.
The following formula depicts the three main parts of the estimation. The formula
can be modified or customized for each project as long as these three parts are
addressed and taken care of appropriately. This is a micro estimation technique
where a Work Breakdown Structure (WBS) is required.
Activity Effort = Base effort for the activity X Size (Number of drivers) X
complexity factor
Total Project effort = Sum of all Activity Efforts
Activity Effort: The activity effort is the estimated effort for each major activity of
the project after decomposition. The activities can come from the WBS. The
examples of activities are requirements gathering, prototyping, high level design,
low level design, screen development, coding and unit testing etc. Main rule for
the activity decomposition is that the activity effort should be driven only by one
driver.
Driver: Each activity is driven primarily by some tangible and countable item,
called driver. The driver should be easily measurable. When we size the project,
it would be in terms of drives. Usually, the driver is either input or the output of
the activity. For example, for the high level design activity, the number of
functional specifications (input) can be driver. For screen development activity,
the number of screens (output) will be the driver. Driver can be function points,
use cases, screens, reports, test cases and database tables etc.
Base effort for the activity (Unit Effort): The base effort is the normal
estimated effort to execute the activity for one driver before taking the project
attributes into account.
Complexity Factor: The complexity factor is a measure of how different the
current project activity is from a typical activity. The project attributes should be
taken into account while calculating the complexity factor. An empirical formula
7|P a g e
Application of Select Tools of Psychology for Effective Project Management
8. Project Management National Conference 2011 PMI India
should be arrived to calculate the complexity factor to convert the various values
of the project attributes.
We will now discuss the basic three components (Project Size, Project Attributes
and Unit Effort) in the context of Cloud application development.
6 Project Size
Sizing the project for new application development is quite different from the
migration type of project. For new application development on cloud, the input
will be in the form of functional specifications. So, LOC method is not applicable
here. So function points, usecase/feature points or GUI components are the best
ways to measure the size of the system.
In case of moving the existing applications to the cloud, it is better to measure
the size of the system based on the current system. The reason is that the
functionally and development effort are co-related to the size of the existing
system. In most of the migration projects, usually the functionality is kept as it is
and the priority is to move the applications as quickly as possible in order to start
getting the benefit of cost savings. The existing size parameters such as number
of programs, Source Lines of Code, existing database size in terms of number of
tables, function points can be used to size the project.
For migration projects, lines of code (LOC) seems to be the best way to measure
the size. Although, LOC measure has its own drawbacks, it is highly correlated to
the effort and it is easy to collect. LOC can be a pretty good measure in case of
legacy procedural languages such as COBOL, PL/1 etc. Migration involves two
main phases which are extracting functional specifications from the legacy code,
and developing new application from the extracted specifications. The LOC
measure can be used to estimate the effort for the various activities of the first
phase. Using the industry standards, function points can be derived directly from
the LOC measures, a method known as the backfiring. These function points can
in turn be used as the project size measure to estimate the second phase.
7 Project Attributes
The following are some key project attributes that need to be considered during
estimation. These attributes will be manifested in the form of complexity factor in
the estimation formula.
• Experience of the team on the new technology
8|P a g e
Application of Select Tools of Psychology for Effective Project Management
9. Project Management National Conference 2011 PMI India
• Usage of tools
• Type of project (New development, migration)
• Availability of documentation (in case of migration projects)
• Usage of standards and guidelines
• Location of the development teams (co-located or geographically dispersed)
• Development methodology
• Current stage or iteration
• Availability of test cases and test data
• Quality of code (in case of migration projects)
• Language and platform of the legacy system (in case of migration projects)
8 Unit Effort:
Obtaining the unit effort, also called the Project Delivery Rate is one of the
biggest challenges in estimating the cloud application development effort. After
sizing an application, the size needs to be converted into effort or cost by using
the unit value. This requires historical information. These are three types of
historical data. They are Industry data, Organization data and Project specific
Data. In case of cloud computing projects, all these three types of data are
simply hard to get as the cloud application development is relatively new.
Since many application development projects on cloud follow iterative
approaches, such as agile, developing a historical database from the first
iteration is important. A database containing the activities, drivers and actual
effort should be maintained, so that they can be used to estimate the following
iterations. Estimates based on such project databases are most accurate. As
each iteration is executed, certain productivity factor needs to be applied to
reflect the lessons learned.
9|P a g e
Application of Select Tools of Psychology for Effective Project Management
10. Project Management National Conference 2011 PMI India
9 Additional Cost components
So far, what we have discussed is associated with the main development effort.
Of course, there are several other activities that need to be considered when
calculating the total cost of the project. The following are some of such activities.
Data Migration: Migrating existing applications involves migrating the data to the
new platform too. Migration of Relational Database Management Systems
(RDBMS) to RDBMS such as DB2 to Oracle is simpler than migration between
heterogeneous systems such as IMS to DB2. In the case of the cloud application
development, the target database could be non-relational no-SQL database.
Security Testing: One of the main concerns of Cloud Computing that users
might have is about security. Since the application and data could be physically
resident anywhere in the world, out of the enterprise data centre and the
application is accessible over the internet, the security is of primary concern. So,
security testing should be planned and estimated for.
Performance Testing: Due to several layers of technology components as part
of virtualization, redundancy or replication for the purpose of scalability the
performance of the application could be a concern. A separate performance
testing phase may be required depending on the user’s requirements on the
criticality of the business function that the application supports.
Documentation: In the case of migration projects the documentation is of vital
importance. Since the requirements will have to be extracted out of the existing
system, a good documentation whether inside the programs or in the form design
specifications or User Manual is very critical. In the absence of that, more effort
should be planned for both preparing the requirements and verifying them.
Training on the new technology: If the team is not experienced on the new
technology, training cost should be accounted for.
Development Software cost: The software cost needed to develop the
application also will go into the overall project cost. For many PaaS platforms,
the software is provided free of cost by the PaaS provider. This may come with
some basic functionality only. However, if the requirements call for additional
features and facilities then the free edition may not be sufficient.
As mentioned earlier, while the above components add to the overall cost, the
cloud computing development should take care of the productivity benefits that
the PaaS products offer for the development.
10|P a g e
Application of Select Tools of Psychology for Effective Project Management
11. Project Management National Conference 2011 PMI India
10 Suggestions:
The following are some of the key points to bear in mind, while estimating. Many
of them are applicable in general, more so in case of cloud development.
• Good knowledge of the project and the technology is necessary.
• Break it down. Decompose the project effort into manageable tasks and
activities.
• The requirements gathering could involve prototyping. Expect more changes
in the requirement gathering phase as the users refine the requirements after
seeing the prototypes.
• Data migration and Data modelling could take more than the usual time.
• The development of code will take much less than the traditional coding time.
• Do not forget the documentation time, bug-fixing time as a result of reviews
and testing.
• Using multiple ways of estimating and resolving the differences will produce
accurate results.
• Always use a plus or minus range to indicate the level of confidence in the
estimate.
• Project team size has an impact not only on the schedule, but also on the
overall effort.
11 Conclusion
While there is not a huge difference between the challenges in estimating cloud
computing projects and estimating other projects, we need to understand the
differences and determine the additional effort and cost of developing and
deploying applications using cloud computing. The major difference is the lack of
historical data and difficulty in developing an accurate WBS at the beginning of
the project for estimation purposes.
One way is to solve the problem is to decompose the project into major activities
where the activities are similar to the traditional application development
11|P a g e
Application of Select Tools of Psychology for Effective Project Management
12. Project Management National Conference 2011 PMI India
activities which can be estimated accurately using the historical data. For the
cloud-specific activities, ensure that the project attributes are factored sufficiently,
as discussed earlier.
An important task is to build the historical database from the beginning of the
project. As most of the cloud application development follow iterative
approaches, data of the past iterations will be extremely useful for the following
iterations to arrive at the estimations.
And finally, after determining the development effort, make sure to include the
additional activities and task that are required for the cloud application
development projects to calculate the final cost.
12 References
[1] Barrie Sosinsky, Cloud Computing Bible, John Wiley & Sons, 2011
[2] Peter R. Hill, Practical Software Estimation: A toolkit for Estimating Software
Development Effort and Duration, McGraw-Hill/Osborne, 2011
[3] Capers Jones, Estimating Software Costs: Realism to Estimating, McGraw-
Hill, 2007
12|P a g e
Application of Select Tools of Psychology for Effective Project Management
13. Project Management National Conference 2011 PMI India
13 Author’s Profile
Suresh Gatti is currently the General Manager in CSC, based out of
Bangalore, India. He has twenty five years of industry experience with
global corporate clients in the Manufacturing, Health Care, Financial
Services, Public Sector and Aerospace industries. He has managed
several large scale projects successfully and his main areas of
specialization are Software Engineering and Project Estimation. Suresh is
a Mechanical engineer by education with a Masters degree in Industrial
Engineering and Operations Research from IIT, Kharagpur. He is a PMP
and Six Sigma Greenbelt Professional.
13|P a g e
Application of Select Tools of Psychology for Effective Project Management