How Can I Manage a Project’s Productivity, or Should I Even Try?

110 views

Published on

This Trusted Advisor report provides guidance as to how a company can better manage and improve its software productivity. In doing so, we examine productivity primarily through a project management perspective. That said, we consider the strategic or top-down perspective and the tactical or bottom-up perspective separately.

You can download the report here: http://www.softwarevalue.com/insights/publications/ta-archives/how-to-manage-a-projects-productivity/

To access more Trusted Advisor articles, visit: http://www.softwarevalue.com/insights/publications/#trustedadvisor

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

  • Be the first to like this

No Downloads
Views
Total views
110
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

How Can I Manage a Project’s Productivity, or Should I Even Try?

  1. 1. How can I manage a project’s productivity or should I even try? January 2014 Scope of this Report In this report, we look at productivity primarily through a project management perspective. That said, we consider the strategic or top-down perspective and the tactical or bottom-up perspective separately. How can I manage a project’s productivity? While the question may invoke a complex answer, the rationale for asking the question is quite simple: increased productivity reduces costs. Of course, this assumes that all other things stay the same and the report considers the interactions between cost, quality and time to market. It has been estimated that increasing global software productivity by even small percentages would translate into billions of dollars in savings and/or increased profitability. It is no small matter that organizations are constantly looking to improve their software delivery performance. Should I even try? While on the surface this question may seem rhetorical and the response superficial, the real answer lies in the choice of goals for the project – we assume in this report that productivity is a high priority or else the question is moot – and the degree to which managing for high productivity can be achieved without compromising secondary objectives, the most difficult of which might be customer satisfaction. What is project productivity? A project is a temporary endeavor with the objective of manufacturing (producing, or developing) a product or delivering a service adhering to the specifications of the customer (including functionality, quality, reliability, price and schedule) and conforming to international / national / customer / internal standards for performance, and reliability. A software development project has the objective of developing a software product or maintaining an existing software product. Project management is the process and activity of planning, organizing, motivating, and controlling resources to meet customer expectations. The primary objective of project management is to achieve all of the project expectations -- deliverables on time, within budget, with acceptable quality -- while honoring any preconceived constraints. The secondary challenge is to optimize project performance (i.e. productivity). Productivity is usually expressed as a ratio of output units produced per unit of input effort (e.g. function points/staff hour; function points/full time equivalent (FTE); lines of code/person-months). As with most metrics, this is a simple relationship but the defining of the inputs and outputs is critical to comparisons of productivity data. ©2014 David Consulting Group Page 1 of 6 v2
  2. 2. From a project management and process perspective, productivity is the result, or the output, of the delivery process and therefore it is not “manageable”, in and of itself. What can be managed are the inputs and constraints to the delivery process which in turn affects productivity. Productivity and Other Project Goals Productivity is just one of several potential goals for project management and probably the best answer to the “Should I even try?” part of the question is in being clear about how these potentially competing goals should be prioritized for any given project. Three of the other potential goals are the so-called “iron triangle” of software development: cost, quality and time-to-market. It is superficially easy to see that higher productivity should generally improve the cost of the project and sometimes the time-to-market. However, time to market can often be improved by having people waiting around so they can pick up a task on the critical path without delay. Their wait time optimizes time-to-market but productivity suffers. Quality is most often though to be risked by higher productivity but this is not a straightforward relationship either. For example, often productivity and quality can be improved together. “Getting it right first time” results in fewer defects and less rework which may result in better productivity. Also, one of the great aids to productivity, process automation, often comes hand-in-hand with better quality as human error opportunities are removed from the process. Finally, agile has taught us that customer satisfaction can (and should in most projects) be a powerful driving of successful software projects. It can be debated whether aalowing and planning for changing requirements yields higher or lower productivity so its probably best to say that either outcome is possible if customer satisfaction is the main goal. The Strategic (or top-down) Approach to Project Productivity Strategically, when management thinks of (improving?) productivity, it is typically in practical terms such as the following alternatives.       Increase the volume of work successfully with current staff Accomplish the same volume of work with a fewer staff Develop products of greater complexity or market value with the current staff Avoid hiring additional staff to increase workload Rationalize higher levels of capital-to-staff investment Streamline or downsize software production operations Benchmarking for Best Performance “Benchmarking is the search for industry best practices that lead to superior performance.” (Robert C. Camp) In addition to the above recommendations, an industry recognized best practice to understand, address and improve an organization’s development performance is the use of benchmarking. Complexity and capability variables can be obtained by creating a baseline of performance where by quantitative and ©2014 David Consulting Group Page 2 of 6 v1
  3. 3. qualitative data is collected, analyzed and built into the benchmarking model. By examining recently completed projects over a period of 6 to 12 months, the proper data points of complexity and development team performance can be collected and analyzed. Deep analysis is performed to determine whether there are relationships between elements of the attribute data and the quantitative data. The linkages provide the quantitative basis for improvement recommendations and the basis to trace anecdotal stories (actual incidents and organizational studies) to the recommendations. The knowledge gained from this experience will allow for identification of process strengths and weaknesses associated with performance levels. This data is included in the findings and serve as the basis for recommendations. Discovery of interdependent process weaknesses that influence the development life cycle enables the organization to actively address the weaknesses in order to strengthen the foundation of the delivery process framework and improve productivity. Creating an internal baseline of performance is often best performed by a consultant who has experience with selecting and analyzing the proper variables appropriate for your industry and technical environment. The Tactical (or bottom-up) Approach to Project Productivity The need to get the software out the door and into the hands of the customer is a very real demand of the business. One of the best ways to accomplish this is to strive for i self-directing, high performing teams. To facilitate the team’s delivery process, the focus of project management should be to minimize the burden on the people delivering value to the project and the customer. Put another way, the best productivity is achieved with mnimal project management if, and only if, the project team is strong enough and motivated enough to execute efficiently. Some are. Many are not. An example is to focus on the flow that happens through the development process into delivery. Project management needs to focus on speed (velocity), throughput and time to market to make sure that the flow is as smooth as possible. This is accomplished by managing the precursors to -- and the drivers of -the development effort. By managing the influences to the development team environment, you can then influence the outcome, or productivity. Precursors and drivers can fall into the following categories. A. People The team should reflect the right mix of developers and quality control staff, with the appropriate knowledge and skill level to execute the project. In general terms, smaller teams have been found to be more productive than larger ones. Other characteristics of high performing teams are the following.    Small, well-organized project teams; usually 3-7 experienced developers, comfortable working with each other Experienced software development staff (already familiar with application system domain, or similar system development projects) Software developers and managers who collect and evaluate their own software production data and are rewarded or acknowledged for producing high data value software ©2014 David Consulting Group Page 3 of 6 v1
  4. 4.   A variety of teamwork structures and the patterns of shifts between them during task performance High-output or responsive personnel receive rewards and recognition B. Requirements Management It is a proven fact that high productivity projects are directly related to requirements stability. However, most organizations experience some type of scope change during the project. Organizations that are most successful are those with the ability to manage scope changes or product backlog with consistency, flexibility and little disruption to the delivery flow. High maturity organizations have standard processes in place prior to project initiation, and teams are not only familiar with but are key players in the requirements stabilization process. Other characteristics of requirements that promote higher productivity are ease of alteration for existing functionality, reusability of existing functionality, minimal constraints for validation of data processing, and standardized security requirements. C. Education The appropriate training, training resources, and referential materials are readily available to the team. This includes process training as well as technical training, process artifacts as well as technical manuals. Use of current technologies (e.g. knowledge repositories; online training modules) to deliver training or reference artifacts can be a productivity booster. D. Process Regardless of the life cycle development method you are using, processes can be streamlined to facilitate the delivery flow. Are meetings kept to a minimum? Are there short feedback loops? Is the use of current technologies used to increase throughput time? All of these can contribute toward team efficiencies. It has been stated that, “Mastering software project management is about gaining control through the use of reliable and meaningful information”. All life cycle methodologies (even Agile) are highly measurable. Are you getting reliable and meaningful information from your process measurement? If so, then you are in a good position to affect your productivity by addressing process improvement opportunities. Here are some examples that typically have a direct correlation to productivity.     Identify possible product defects earlier in development through process inspections Identify resource utilization patterns to discover production bottlenecks and underutilized resource Track and reduce error densities in delivered products Decrease the amount of time and effort needed to rectify software errors ©2014 David Consulting Group Page 4 of 6 v1
  5. 5. If your measurement results are not in line with your expectations, then you might consider a process assessment, an independent process review, or a measurement road map “check up” to identify areas for improvement. E. Tools and Technology In today’s environments, current tools and technology are essential to the development team. A strong, reliable infrastructure should be in place to support the team. Compatibility issues, risks and constraints should be kept to a minimum to maintain a steady flow of development activity. Studies have suggested that the following are necessary enablers for the highest performing teams.        Fast turnaround development activities (capacity) High-bandwidth processing throughput Abundant computing resources Accessible support specialists Contemporary software engineering tools and techniques o Design and code development aids o Rapid prototyping tools o Application generators o Domain-specific (reusable) software components Process support applications for coordinating projects (configuration management systems, software testing tools, documentation management systems) Programming languages with constructs closely matched to application domain concepts (e.g., object-oriented languages) F. Environment This driver represents the business and work environment of the development team. Some of the environmental factors that could affect productivity are:  The relationship of the development team to the business customer  The ability to communicate with the business team  The location of the team(s)  The flexibility of the work location  The immediate ambience of the work area (furnishings, desk availability, noise level of the surrounding areas, etc) Conclusion In summary, the following key points will help you to manage a projects productivity:.   While productivity is not managed independently, precursors to the project can be managed to affect productivity. Address precursors and key drivers of the development environment to facilitate the delivery process. ©2014 David Consulting Group Page 5 of 6 v1
  6. 6.  Benchmark your organization to discover key drivers, pockets of positive influence, hidden weaknesses; and to implement areas of improvement. As to whether you should try, at the individual project level, you must be clear that productivity is important enough to the project outcomes to be worth fighting for. At the macro level, for an organization, productivity improvement should always be a goal, however gradual, after any higher priorities have been achieved. Sources 1. “Benchmark GPS – Lowering Your Cost of Performance”. David Consulting Group. 2010. 2. ”Understanding Software Productivity”, Walt Scacchi. Advances in Software Engineering and Knowledge Engineering, D. Hurley (ed.), Volume 4, pp. 37-70, (1995). 3. “Project Management: 6 Best Practices for Ensuring Software Implementation Success”, Rob Prinzo. http://www.cio.com/article/683570/; 2011. 4. “Mastering Software Project Management, A Primer”, Tom Cagley. July 2010. 5. “Why is it so difficult for organizations to get an accurate estimate?”, David Herron and Sheila P. Dennis, 2006. ©2014 David Consulting Group Page 6 of 6 v1

×