David Consulting Group

  • Software Measurement
  • Software Process Improvement
  • Software Sizing
  • IT Performance Improvement
  • Resource Center
  • Publications
  • Outsourcing
  • Training
DCG Corporate Office
1770 E. Lancaster Ave, Suite 15
Paoli, PA 19301
v: 610.644.2856
f: 866.293.0120
info@davidconsultinggroup.com

Welcome to the DCG Blog: Latest Updates

Best Practices, A Force Of Good Or Evil?

Best Practices, A Force Of Good Or Evil?
Thomas M. Cagley Jr.

To paraphrase Edwin Starr, “Best Practices, huh, what are they good for? Absolutely nothing, Say it again . . .”

Every organization wants to use best practices. How many organizations do you know that would stand up and say we want to use average processes?. Therefore a process with the moniker “best practice” on it has an allure that is hard to resist. The problem is that one organization’s best practice is another’s average process, even if they produce the quality and quantity of output. Or even worse, one organization’s best practice might be beyond another organization. The process reflects the overall organizational context. It is possible that adopting a new process wholesale could produce output faster or better, but without tailoring the chances are more random than many consultants would suggest. For example, just buying a configuration management tool without changing how you do configuration management will be less effective melding the tool with your processes. Tailoring will allow you to use the process based on the attributes of the current organizational context such as the organization’s overall size or the capabilities of the people involved.

An example of an organization’s best practice that might not translate to all of its competitors is the use of super sophisticated inventory control computer systems used at Walmart. Would Walmart’s computer system help a local grocery store (let’s call this Hometown Grocery)? Not likely, the overhead of the same system would be beyond Hometown’s IT capabilities and budget. However if hundreds of Hometown Groceries banded together, the answer might be different (tailoring the process to the environmental context). Without tailoring the context, the best practice for Walmart would not be a best practice for our small town grocery.

The term best practice gets thrown around as if there was a dusty old tome full of magical incantations that will solve any crisis regardless of context (assuming you are a seventh level mage). There are those that hold up the CMMI, ISO or SCRUM and shout (usually on email lists) that they are only way. Let’s begin by putting the idea that there is a one-size-fits-all solution to every job to rest. There isn’t and there never was any such animal. Any individual process, practice or step that worked wonderfully in the company down the street will not work the same way for you, especially if you try to it do it same way they did. Software development and maintenance isn’t a chemical reaction, a Lego construct or even magic. Best practices, what are they good for? Fortunately a lot, if used correctly.

Best practices find their highest value as a tool for you to use as a comparison in order for you to expose the assumptions and paradigms that have been used to build or evolve your own processes. Knowledge allows you to challenge how and why are you are doing any specific step and provides an opportunity for change. How many companies have embraced the tenants of the Toyota Production Systems after benchmarking Toyota? The process of making a comparison between two processes is called a benchmark. Benchmarking processes can take many forms. Regardless of form, the goal of benchmarking processes is to compare your process against another process or set of processes.

Adopting best practices without regard to your context may not yield the benefits found on the box. I would suggest that if you read the small print you’d see a warning. Use best practices only after reading all of the instructions and understanding of your goals and your environment. This is not to say that exemplary practices should not be aggressively studied and translated into your organization. Ignoring new ideas because they did not grow out of your context is just as crazy as embracing best practices without understanding the context it was created in. Best practices as an ideal, as a comparison so that you can understand your organization makes sense, not as plug compatible modules.

IT Value and Customer Satisfaction

IT Value and Customer Satisfaction
Thomas M. Cagley Jr

IT value is an outcome that can be expressed as a transaction; a summation of debits and credits resulting in a number.   Unfortunately, even if we can create a specific formula, interpretation of the number is problematic.   Measures of the economy of inputs, the efficiency of the transformations and the effectiveness of specific outputs are components of a value equation but they only go so far.   I would like to suggest that customer satisfaction makes interpretation of value possible.

I believe that value is perceived by those receiving the service therefore tends to be specific to the project or service, to be predictable there must be an assumption that there is a relationship between how the product or service is created and the value perceived.  When we are assessing the value delivered by a department like Information Technology (IT) which is part of a larger organization, it is rare that we are allowed the luxury of being able to declare that the group we are appraising is a black box which means we have to create transparency.  Because we have to create transparency into the appraised organization we have to define value as a synthesis of inputs and raw materials, the efficiency of the processes used in the transformation process (where value is typically added) and finally whether the  output meets the users need and is fit for use.  While this sounds complex, every small business has had to surmount the complexity to stay in businesses.  A simple value example from the point of view of a restaurant owner:

  • A customer enters the restaurant and orders a medium-rare New York Strip steak (price $32.00)
  • The kitchen retrieves the steak from the cooler and cooks the steak so that it is done at the proper time and temperature. (The inputs include requirement for the steak, effort of waiter and kitchen staff.)
  • The customer receives a medium-rare New York Strip steak

From the restaurant owner’s point of view the value equation begins as the price of the steak minus the cost of steak, preparation, overhead and the free tap water.   If the cost of steak and servicing the customer was more than the price charged, an accounting loss would have resulted and if the costs were less  . . .  an accounting profit.  The simple calculation of profit and loss provides an important marker in understanding value but it is not sufficient.   For example, let’s say the customer was the restaurant reviewer for a large local newspaper and the owner comp’ed the meal AND the reviewer was happy with the meal.  The owner would derive value from the transaction regardless of the accounting loss from that single transaction.  As I noted earlier, customer satisfaction is a filter that allows us to interpret the transaction.   Using our example, if the customer was unhappy with his or her steak the value derived by the restaurant will be less than totaling of the accounting debits and credits would predict.  While a large IT department has many inputs and outputs I believe the example presents a path for address value without getting lost in the complexity of technology.

In a perfect world, IT value would be established in a perfect market place.  Customers would weigh the economy, efficiency, effectiveness and customer satisfaction they perceive they would garner to decide who should do their work.  Unfortunately, perfect market places seldom exist and participants could easily leverage pricing strategies that internal organizations would not be able to match.  The idea however has merit and benchmarking projects is a means of injecting external pressure without the potential for pricing abuse.

Measuring IT Value whether at a macro or project level needs to be approached as more than a simple assessment of the processes that convert inputs into a product or service the business requires.  Measure the inputs and raw materials, measure and appraise the processes used in transformation and then determine the user’s perception of the output (where the customer and user are different you need to understand both points of view).  Knowing the value of all of these components while having your thumb on the filter of customer satisfaction will put you in a position to not only determine the value you are perceived to be delivering (at least over the short-term) but to predict how your customers are perceiving the value you are delivering.  Remember forewarned is forearmed.

Traceability - A Radical Approach - Synopsis

Synopsis

‘Model based software process improvement’ and ‘process discipline’ are phrases that can chill the blood of most software engineers even when uttered forty feet away. Applied incorrectly the perceived trappings of process discipline are viewed as overhead which gets in the way of ‘real work’. The processes that are perceived to be the most offensive to developers are those concentrated on controlling their behavior or providing oversight of their work. When the CMMI® is interjected into the process landscape, traceability becomes one of the lightening rods typically identified in the overhead discussion.

So, avoid the lightening rod, right? Avoiding either the lightening or lightening rod is easier said than done if an appraisal to the CMMI® model is in your future. Traceability[1] is a core tenant of the requirements management process area within the CMMI®. Why is the effort to create and implement the processes needed to support traceability worth the investment? Simply put, traceability allows project personnel to know that what was planned was installed and what was installed was planned both at the end of the project and as the project progresses. Having that knowledge is hard to argue with. In some cases, knowing whether a requirement was planned or delivered is an imperative. The problem is that “doing traceability” is not very easy. Taking someone’s word that what was planned was delivered is so much easier.

Even when the traceability is deemed important, the perceived value of traceability depends on the effort required from the groups involved in gathering and using the data (you get what you put into the process). As they deploy traceability, some of the burning questions all process engineers must answer are:

  • Do the benefits of tracing accrue to all groups equally (assuming they exist)?
  • Is the effort required to “do traceability” less than the value that will accrue for tracing requirements?
  • Can the process be scaled so that all projects and all groups can derive more value than effort?

Traceability is a difficult concept to define a value proposition for all types of projects and an equally difficult concept to sell to all of the stakeholders in the world of projects.

“Traceability: A Radical Approach Based on User Involvement” suggests an approach to scaling traceability based on balancing user involvement, risk and control needs. This approach provides a means to balance the effort required to trace requirements with the value of doing it. As a side benefit, this approach makes traceability a saleable concept.


[1] “Requirements traceability refers to the ability to describe and follow the life of a requirement, in both forwards and backwards direction (i.e. from its origins, through its development and specification, to its subsequent deployment and use, and through all periods of on-going refinement and iteration in any of these phases.)” Gotel O.C.Z and Finklestein A.C.W., “An analysis of the requirements traceability problem”, in Proceedings of ICRE94, 1st International Conference on Requirements Engineering, Colorado Springs, Co, IEEE CS Press, 1994

Agile Estimation Using Functional Metrics - Full Essay!

Agile Estimation Using Functional Metrics,
by Thomas M. Cagley Jr.

The term agile has come to mean many things to many people. The definitions and connotations range from how work is organized within a project to a description of the speed at which work is completed or alternately a radical rethinking of organizational culture. Regardless of how you define agile I would suggest that we all would agree that agile methods are now maturing. Part of the process of maturing is the incorporation of best practices from other methods and frameworks creating a hybrid. The fringe is influencing the center and the center is influencing the fringe. The hybrid is at once better than any of the absolutes and threatening to those who believe in absolutes.

Estimation has been a lightning rod for the discussion all methods (agile, waterfall, iterative or water fountain) with the issues of predictability and standardization radiating outward. Because of the controversy this is an area where a wide range of hybridization has always occurred. Organizations adjust techniques to fit governance structures, culture and risk profiles. There is no one size fits all solution. This paper provides a path for incorporating the use of function points into agile estimation techniques. The process will yield an estimation process that combines one part functional metrics, one part parametric estimation techniques with two parts agile estimation (heavily influenced by Mike Cohn). I would suggest that functional metrics provide a path for incorporating the best practices of robust software sizing with the collaborative techniques championed by the agile community in a manner that increase standardization without ignoring the principals of the Agile Manifesto.

Budgeting, Estimation and Planning

I’d like to begin this discussion by challenging your preconceived notion of estimation as compared to the activities of budgeting and planning[i]. These three concepts are sometimes thought of as being synonymous however I believe it is important to understand just how different these concepts are. Each has different inputs and outputs, uses different tools and techniques and is generally used by different groups within the organization. A quick overview of the macro differences are:

  • Budgeting
    • Defines how much we have to spend based on the influence of scope
    • Tends to ignore the cone of uncertainty
  • Estimation
    • Presents an approximation of effort and duration based on size and project nature
    • Focused by the cone of uncertainty (a range based on knowledge)
  • Planning
    • Defines tasks and allocates resources
    • Focused on the narrow part of the cone of uncertainty (a much smaller range)

Estimation, planning and budgeting might be related but they are certainly not the same. The use of functional metrics in agile estimation is targeted at the estimation layer of this three layer cake but provides support for planning. Developing a basic understanding of the components of estimation (we are going to ignore budgeting as bastion of guesses) and its relationship to sizing is critical to using these techniques.

Estimation

Estimation is several parts science and a least one part magic. This strange confluence of science and magic defines the transformation of requirements size, skills, people and equipment into how much the project will cost and how much effort it will take[ii]. The whole process of transformation is bound by a cone of uncertainty. Uncertainty builds boundaries around the false precision of the estimate providing a range around the estimate based on what is known and unknown. Collaborative estimation techniques are good at increasing team knowledge while reducing the amount of self-deceit that can occur when knowledge is discussed.

The amount of art increases as the estimation discipline is replaced by the planning discipline. The art of planning matches specific tasks with people thru a process of assignment. In a perfect world estimates and planning would be able to be done together in seamless workflow but estimates happen generally earlier in the project lifecycle before you can decompose work into tasks which is required for planning.

The simplest form of any estimation model, human or tool based is a mathematical mash-up of size (implied or counted), team and organizational behavioral attributes and degree of difficulty (technical complexity) applied to a productivity signature. As the level of sophistication in the mathematics increases tools SEER, SLIM or KnowledgePlan make sense. Other methods raise level of collaboration and do any of the required math in the heads of the participants. These techniques include Delphi, analogy or planning poker. The process in this paper splits the difference leveraging collaboration to increase participation and self knowledge while suggesting the use of a simple spreadsheet based parametric models to increase consistency and standardization.

Sounds simple, right? Estimation has been a nagging pain in every IT manager’s backside since a user asked how much a project would cost and when it would be done. We have gotten pretty good at budgeting using techniques like “x number of people times 20 hours in a day and you’ll get something next year” methods. It’s when we try to figure out how much functionality will be delivered in real life that things start to break down or least get very, very complicated.

There are three main categories of problems that cause estimation to be problematic in the real world.

1. Uncertainty: how much do you know about what you’re building?

2. Self knowledge: what you do really know about yourself and your team?

3. Consistency of method: do you have a process for estimating?

Uncertainty:

A lot has been written about uncertainty, mostly from the point of view of requirements, however the impact of uncertainty extends further than requirements into factors that can be purely technical (whether specific coding languages can do the job) to the complexities of the real world (cue the changing economy as an example). If we change our perspective to completion of the project, I propose that we will all admit that level of project uncertainty is substantially reduced the closer you are to completion of the project. Moving back toward the beginning of the project where most estimation exercises occur one simple truth becomes apparent, knowledge dispels uncertainty. We need to gather better knowledge whether by leveraging history, mathematical algorithms and/or project specific information to make better estimates. Integrating agile techniques for knowledge capture in projects are tools for reducing uncertainty. Techniques to use include incorporating a user or user proxy on the team, focusing on short pre-defined time horizons, implementing processes that foster communication and periodic re-planning.

Self knowledge:

Two psychologists, Joseph Luft and Harry Ingham developed a construct to understand personal awareness. The tool named Johari’s Window[iii] divides personal awareness into four different categories, as represented by its four quadrants: open, hidden, blind and unknown. The lines dividing the four panes are like window shades, which can move as an interaction progresses. The concept is adaptable to teams. Team level blind spots complicate estimation, planning and ultimately performance. Techniques to improve a team’s self knowledge include forming stable teams, fostering intimate communications and ensuring retrospectives actually happen often. These tools minimize what isn’t known by the team and surface misunderstandings quickly.

Consistency of Method

There are several types of estimation that can be leveraged during any project.

Estimation Types:

Let’s quickly review the four most popular estimation techniques in very broad terms. The four are:

  • Analogy
  • Bottom-up
  • Parametric
  • Delphi

Estimation by analogy starts will the selection of a similar project (building a new bathroom based on the results of building a bathroom last week) which acts as a central metaphor for the new project. The estimator will then decide how closely the two projects resemble each other and whether there are any mitigating circumstances that will affect the effort required to finish the project, how much the project might cost and how long it will take. Based on these differences the estimator will apply a correct factor and voila, an estimate is created. The second general category of estimation techniques is the bottom- up estimate. An estimate of this type typically starts by identifying a set of technical deliverables (a shower stall, sink and pipes for bathroom with a shower if building a house) or work breakdown structure (the tasks needed to build a bathroom for our house). The identified low level deliverables are estimated based on some form of history and then rolled up to higher and higher levels until the cost or effort for the entire project is known. The third category estimation is called parametric estimation. This form of estimation builds and leverages statistical relationships between historical data and one or more variables that define scope such as functional size (the number of square feet in the bathroom times the productivity of the builders). The fourth type of estimation techniques can be grouped broadly in to the category of Delphi. The central theme of Delphi techniques is the use of collaborative techniques to leverage group think to decide upon an estimate (the plumbers, electricians and carpenters get together and use a process to come to consensus on how much time is required to build the bathroom). These techniques work best when the requirements being estimated can be stated a level of granularity that can be understood by those participating in the estimation session.

Mike Cohn has described the planning continuum using an onion analogy[iv]. Where strategy is the outer layer followed by layers for portfolio, product, release and iteration segments as you approach the onion core. I suggest that there is no one tool or technique perfectly suited for each level in the onion.

Integrating Cohn’s planning onion into our earlier conversation of budgeting, estimation and planning, I would suggest that strategy and portfolio levels are budgeting tasks. The product and release layers are estimation tasks where as tools like white parametric estimation make sense. Iteration and day-to -day organization are planning tasks where planning tools like schedules, kanban boards and standup meeting make sense to direct activity. The method we are introducing in this paper combines the use of functional metrics and tools in the estimation step in a manner that fosters usage in the planning layers of the onion. This set of techniques provides a consistent strategy and answers the changing information needs as the project evolves. All this, while providing a collaborative environment for both the team and the client.

Agile estimation using functional metrics is designed to cover the product and release rings of Cohn’s planning onion using a synthesis of parametric and Delphi estimation techniques with the emphasis shifting from parametric to Delphi as events dictate. The technique leverages the ability to size requirements to develop parametric estimates and then dovetails collaborative techniques to refine those estimates based on memories and self-knowledge.

The process flow is as follows

Stage One

1. Identification of functional requirements (or stories)

2. Sizing using Quick and Early Function Points

3. Simple Parametric Estimation

Stage Two - Sprint or Iteration Planning

1. Break Requirements into More Granular Pieces (if needed) and Refine Size

2. Team Level Re-estimation of Requirements Using Delphi Techniques

3. Team Level Commitment

Size is a critical component for developing an estimate and for planning however size and estimates are not synonymous. Size is merely a step along the path from point A to point B. As we move along the path size will be revisited twice.

The sizing process begins by segregating the functional requirements from the non-functional requirements. The functional requirements are then sized using Quick and Early Function Points (QEFP). Function points for all their warts are the easiest way to consistently size software requirements. This is accomplished by focusing on the basic building blocks of functionality found in all software projects. The QEFP method leverages the relationship between action verbs and transactions to identify the transaction functions found in function points and the subject of the requirement to identify the data functions found in function points. The application of this technique is similar to sentence diagramming that you learned during grade school or high school. This relationship between words and size has been observed and investigated over the past few years by a nuber of different people within the functional sizing community including myself (see “Turning Perfect Good Words Into Numbers” originally presented at the IFPUG Functional Sizing Summit at www.davidconsultingroup.com). Function points or any functional metric has at its heart the goal of converting requirements or stories into a number in a consistent manner. The number then must be interpreted based on the abilities of the team or organization. At the level of the overall project, the technique described in this paper leverages parametric estimation. A simple parametric estimation equation could be:

Y =-(7^-6*(X^2))-Z*X+26.587

Where:

X = Size in function points

Y = Productivity rate for the type of project

Z = Behavior or Process Index

The result is a productivity rate for the project. Collection of historical data on a selection of projects will be required to build an equation. I would further suggest that you will need to augment internal data with external data to increase the validity of the estimation equation. Note the factor can be applied to a disaggregated requirement, epic or story. This estimate is created for organizational planning purposes.

Stage two begins as sprints or iterations are kicked off. The sprint teams (we will use SCRUM terminology) breakdown the stories into pieces that can be accomplished during the sprint, then re-size the pieces using the QEFP method. The goal of using QEFP at this point is to take one source of variance out of the estimation discussion that will be had when the Delphi method is applied. This focuses the group on expanding the team level self-knowledge needed to coalesce on an appropriate level of effort needed to complete the story. For example the QEFP technique has been combined with planning poker into a process that was quickly learned by the sprint teams. The results were a marked reduction in stories that were not completed during the sprint they were committed to in. By removing size as a variable the team that initially piloted this method indicated they were better able to focus on discussing team capabilities and technical considerations when doing their initial sprint planning.

Real life examples will help drive how organizations synthesized what could be considered competing methodologies into something greater than the sum of the two parts.

Case One:

  • Firm: Small custom technology organization
  • Project Types: Internal and external projects
  • Culture: Highly collaborative
  • Current Methodology: Mixed waterfall and SCRUM

Other notes: All external projects are bid with many using a fixed fee structure. Internal projects were continually re-scoped to fit the internal development budget which changes as the economy waxes and wanes. Prior to rewriting the estimation process and leveraging functional metrics approximately 30% of bids were successful and budgets tended to be a suggestion. The lack of estimation success meant that there was a significant risk of losing money if the business was won and if the business was not won going out of business in the long run.

The firm adopted Quick and Early Function Points for sizing the backlogs for all projects, both internal and external. Where backlogs were not being used to manage requirements they were developed. A quick baseline was developed to determine a productivity factor. The productivity factor was then used to translate individual stories into effort. Each team spent a day reviewing how they worked together to generate a baseline of self-knowledge and trust. Collaborative story level estimation was redone using planning poker. It became apparent quickly that a lot of disaggregation was needed to actually estimate the backlogs. After applying QEFP and the productivity factor to the in-flight projects the firm progressed to applying QEFP to all bids.

The results were that won bids increased 20% and negative misses were nearly eradicated. A negative miss was defined as underbidding on a fixed bid contract.

Case Two:

  • Firm: Large software development firm
  • Project Types: Internal projects (software for resale)
  • Culture: Hierarchy, classic command and control
  • Current Methodology: Mixed waterfall (but SCRUM recently introduced)

Other notes: The methodology in the environment was predominantly classic waterfall with central PMO. Just before we readdressed the estimation process a team had implemented SCRUM and some components of extreme programming (xP) this was done in sort of a guerilla fashion. One very large project was consuming the majority of the organizations resources. Significant requirements were still being discovered after construction had begun. Estimates had been developed based on a bottom up process very early in the project and they were of questionable validity. The top managers just returned from begging for more money from the board of directors. The project was being capitalized.

The solution in this case was for the company to more firmly embrace the SCRUM framework for project management at the team level. A product backlog was developed and Quick and Early Function Points were adopted to size the backlog. The sizing process exposed a number of functional blind spots (function points can be leveraged as form of analysis). Team members were trained in using QEFP which allowed them to size new stories or re-size changed stories at an individual sprint planning level. The impact of these changes was to allow the PMO to size and preplan the backlog with development leaders and the primary product owner. The full product owner team selected stories to formulate sprints during the sprint planning meetings. Teams re-evaluated (sized and estimated) the selected stories and then committed to the stories they could do.

The initial result was improved product owner satisfaction, involvement allowed them to be part of the solution. After the first few sprint there was an increased perception of estimate consistency both at the product backlog and sprint team level. It was also noted that the teams that had been using the using SCRUM before adopting the new estimation methods had a reduced number of stories that had not completed at the end of the sprint. The teams attributed this improvement during retrospectives to a better capacity to size and commit to work that they’re actually able to accomplish during the sprint.

Summary

Agile methods have matured and are now being integrated into many different approaches to the development of software. Estimation has been problematic for all methods; agile to plan based therefore it tends to be a lightning rod for experimentation and synthesis such as is being described in this paper. Agile Estimation Using Functional Metrics has presented a path for integrating the discipline found in functional metrics with the collaborative approaches found in agile estimation.


[i] Phil Amour, The Inaccurate Conception, COMMUNICATIONS OF THE ACM March 2008/Vol. 51, No. 3

[ii] One current thread of thought as voiced by Tim Lister on the Software Process and Measurement Cast 51, www.spamcast.net, is that estimation tends to provide a false sense of accuracy.

[iii] http://en.wikipedia.org/wiki/Johari_window, June 14, 2009

[iv] http://www.mountaingoatsoftware.com/presentations/51, June 14 2009

Agile Estimation Using Functional Metrics, Part 1

Agile Estimation Using Functional Metrics, Part 1
by Thomas M. Cagley Jr.

The term agile has come to mean many things to many people. The definitions and connotations range from how work is organized within a project to a description of the speed at which work is completed or alternately a radical rethinking of organizational culture. Regardless of how you define agile I would suggest that we all would agree that agile methods are now maturing. Part of the process of maturing is the incorporation of best practices from other methods and frameworks creating a hybrid. The fringe is influencing the center and the center is influencing the fringe. The hybrid is at once better than any of the absolutes and threatening to those who believe in absolutes.

Estimation has been a lightning rod for the discussion all methods (agile, waterfall, iterative or water fountain) with the issues of predictability and standardization radiating outward. Because of the controversy this is an area where a wide range of hybridization has always occurred. Organizations adjust techniques to fit governance structures, culture and risk profiles. There is no one size fits all solution. This paper provides a path for incorporating the use of function points into agile estimation techniques. The process will yield an estimation process that combines one part functional metrics, one part parametric estimation techniques with two parts agile estimation (heavily influenced by Mike Cohn). I would suggest that functional metrics provide a path for incorporating the best practices of robust software sizing with the collaborative techniques championed by the agile community in a manner that increase standardization without ignoring the principals of the Agile Manifesto.

Budgeting, Estimation and Planning

I’d like to begin this discussion by challenging your preconceived notion of estimation as compared to the activities of budgeting and planning[i]. These three concepts are sometimes thought of as being synonymous however I believe it is important to understand just how different these concepts are. Each has different inputs and outputs, uses different tools and techniques and is generally used by different groups within the organization. A quick overview of the macro differences are:

  • Budgeting
    • Defines how much we have to spend based on the influence of scope
    • Tends to ignore the cone of uncertainty
  • Estimation
    • Presents an approximation of effort and duration based on size and project nature
    • Focused by the cone of uncertainty (a range based on knowledge)
  • Planning
    • Defines tasks and allocates resources
    • Focused on the narrow part of the cone of uncertainty (a much smaller range)

Estimation, planning and budgeting might be related but they are certainly not the same. The use of functional metrics in agile estimation is targeted at the estimation layer of this three layer cake but provides support for planning. Developing a basic understanding of the components of estimation (we are going to ignore budgeting as bastion of guesses) and its relationship to sizing is critical to using these techniques.

Estimation

Estimation is several parts science and a least one part magic. This strange confluence of science and magic defines the transformation of requirements size, skills, people and equipment into how much the project will cost and how much effort it will take[ii]. The whole process of transformation is bound by a cone of uncertainty. Uncertainty builds boundaries around the false precision of the estimate providing a range around the estimate based on what is known and unknown. Collaborative estimation techniques are good at increasing team knowledge while reducing the amount of self-deceit that can occur when knowledge is discussed.

The amount of art increases as the estimation discipline is replaced by the planning discipline. The art of planning matches specific tasks with people thru a process of assignment. In a perfect world estimates and planning would be able to be done together in seamless workflow but estimates happen generally earlier in the project lifecycle before you can decompose work into tasks which is required for planning.

The simplest form of any estimation model, human or tool based is a mathematical mash-up of size (implied or counted), team and organizational behavioral attributes and degree of difficulty (technical complexity) applied to a productivity signature. As the level of sophistication in the mathematics increases tools SEER, SLIM or KnowledgePlan make sense. Other methods raise level of collaboration and do any of the required math in the heads of the participants. These techniques include Delphi, analogy or planning poker. The process in this paper splits the difference leveraging collaboration to increase participation and self knowledge while suggesting the use of a simple spreadsheet based parametric models to increase consistency and standardization.

Sounds simple, right? Estimation has been a nagging pain in every IT manager’s backside since a user asked how much a project would cost and when it would be done. We have gotten pretty good at budgeting using techniques like “x number of people times 20 hours in a day and you’ll get something next year” methods. It’s when we try to figure out how much functionality will be delivered in real life that things start to break down or least get very, very complicated.

There are three main categories of problems that cause estimation to be problematic in the real world.

1. Uncertainty: how much do you know about what you’re building?

2. Self knowledge: what you do really know about yourself and your team?

3. Consistency of method: do you have a process for estimating?


[i] Phil Amour, The Inaccurate Conception, COMMUNICATIONS OF THE ACM March 2008/Vol. 51, No. 3

[ii] One current thread of thought as voiced by Tim Lister on the Software Process and Measurement Cast ##, www.spamcast.net, is that estimation tends to provide a false sense of accuracy.

Involvement Versus Focus; That Is The Question

Most process improvement programs extol the virtue of focusing on the needs of the organization or a specific class of users (usually senior or middle management).  All said and done the virtue of focus is important but it is no longer sufficient to make change actually happen.  The “organization” is being taken over by the World of Warcraft generation.  This new crowd is beginning to believe they need to be involved if they are going to be asked to change how they are going to work.  An example of that new expectation of involvement is reflected in the agile movement.  Teams control how they do work and to an extent the work they will accept into the sprint.  To the new generation, focus without involvement has come to mean big brother.  Telling this new generation what to do whether you have their best interest in mind is deemed a paternalistic action, and for those with an expectation of being involved in their future, paternalism is at best grating and perhaps degrading.  What does involvement mean?  What is the new requirement to help an organization mature in terms of discipline and capability?

The American Heritage Dictionary defines involvement as “the act of sharing in the activities of a group”.  At its core, I would suggest the concept boils down to collaboration between involved parties to achieve a common goal.  I think we can all agree upon the ideal of using collaborative groups to conquer many types of projects.  Workers acting in a concerted manner in real life leads to pressure on several organizational fronts in order to achieve this ideal.  In a future essay we will explore another of my simple checklists (see www.tcagley.wordpress.com) to implementing involvement but in this essay I would like to discuss the impact of a common goal.  In many organizations the management structure in use is the command and control methodology.  In this method decisions are made at the top of the management pyramid then get transmitted to line management and then to project teams at the epicenter of work.  In this model, management knows best because of experience, advanced degrees, having gone to a seminar or just divine right.  To those being affected it doesn’t matter.  The collaborative model suggests a different model in which management sets forth the goal then engages all parties to chart the course forward.  Would the classic waterfall implementation of the CMMI survive a collaborative approach or would a more interesting approach to the discipline of software engineering emerge?  I suggest that in combination the structure of the CMMI and the collaborative nature of AGILE methods are the natural outcome in today’s methodological environment.  Note, I would suggest the pressure of the economy would add the philosophy of lean to the mix yielding a three legged stool of the CMMI as a framework and Agile and lean philosophies as the implementation techniques.

Change without involvement might work in the short run if you are bent on using a management philosophy of command and control but if you can step away from that model to embrace a more collaborative approach a better solution will be generated.  A solution that yields discipline, collaboration, effectiveness and efficiency.  Focus is a good thing but consider focusing on involvement rather than on using focus as a tool to speak for others.

Welcome - About

Welcome to DCG’s Lean Improvement: CMMI and Process Insights Blog. In this Blog DCG’s top consultants and myself will discuss frameworks, methods and techniques to improve your IT processes in a manner that provides maximum value. Great words but we also discuss how you can prove the impact of your changes through measurement. As I like to say, measure IT and prove IT.

All topics are on the plate for discussion: Lean, Six Sigma, CMMI, Agile (in all of its flavors), Function Points, Use Case Points and others. Don’t see a topic that you would like discussed? Suggest it as a comment or in an email directly to me at t.cagley@davidconsultinggroup.com or find me on Tittwer at tcagley.

Tom Cagley
Vice President
Director, Process Improvement and Measurement