PMC1

627 views

Published on

Published in: Business, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
627
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

PMC1

  1. 1. Project Management National Conference 2011 PMI India Estimation Challenges in Cloud Computing Projects Suresh Gatti General Manager CSC2|P a g e Application of Select Tools of Psychology for Effective Project Management
  2. 2. 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..............................................................................................................133|P a g e Application of Select Tools of Psychology for Effective Project Management
  3. 3. 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
  4. 4. 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
  5. 5. 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
  6. 6. 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 formula7|P a g e Application of Select Tools of Psychology for Effective Project Management
  7. 7. 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 technology8|P a g e Application of Select Tools of Psychology for Effective Project Management
  8. 8. 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
  9. 9. 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
  10. 10. 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 development11|P a g e Application of Select Tools of Psychology for Effective Project Management
  11. 11. 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, 200712|P a g e Application of Select Tools of Psychology for Effective Project Management
  12. 12. 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

×