Ah, the Programs Included in Size parameter – so often overlooked and so important! Unless you are certain that the WBS element you are modeling is one program only, this parameter deserves a close look, as it is likely to have a very significant effect on your estimate. Programs Included In Size is intended to help you model multiple independent programs in a single WBS line. It assumes that each program included in size is independent and can be done in parallel with others.
The Programs Included in Size parameter is located near the top of the Parameter View, just below the entries for lines of code.
An alternative approach, not requiring any more information, is to create multiple program elements in the project work breakdown structure. This approach is equivalent to using a single element with Programs Included in Size > 1, while allowing staggered start dates.
Determining the Number of Programs Included
I’ve talked with many clients who actually weren’t sure how many separate computer programs were being included in a software project. Sometimes the uncertainty revolves around what is a computer program, versus a sub-component. To resolve this uncertainty, here is an “acid test” of questions that can be asked to differentiate the two:
- Can the software components be done in parallel, separately?
- Do they have discrete interfaces?
- Can separate teams work semi-autonomously?
- Is functionality substantially different?
- Is it intuitively a separate program?
- Can the software components be executed separately?
The more positive answers you receive to the questions above, the more evidence you have that multiple programs being undertaken, rather than subcomponents of a single program. If these questions can’t be answered here are other, easier methods based on software size, although they are somewhat less accurate:
- Look for multiple teams with parallel efforts, which you might see this with programs larger than 50,000 lines or so of hand-built code or,
- If the effective size of a “program” is greater than 100,000 lines of code, it may not be a single program.
Effect of Increasing Programs Included In Size
Increasing Programs Included in Size will cause an increasingly optimistic schedule because it assumes fully parallel efforts for each “program” included in the single work element. (The effective size of each program is total entered size divided by the number of programs included.)It also will cause reduced overall effort, because smaller programs have greater productivity. Above about 11 programs included, these schedule and effort effects diminish.
With an assumption that everything can be done in parallel, estimated schedule may be overly optimistic. For this reason, you should pay close attention to the monthly staffing estimate and place limits on it as conditions dictate.
Don’t Forget the Programs Concurrently Integrating Parameter
The Programs Concurrently Integrating Parameter captures the complexities of different software programs needing to work together. This probably is particularly true of programs so interrelated they are captured in a single work element.
The Programs Concurrently Integrating parameter is located near the bottom of the Parameter View, in the System Integration category. If “n” programs are specified as the Number of Programs Included and they are all to be integrated, then Programs Concurrently Integrating should be set to “n-1”.This is not always true, in which case the number of programs integrating would be less than “n-1”.Integration with externally occurring programs would increase this number. Here is an example:
- Programs Included In Size = N
- All programs in size integrate with one another
- External Programs Integrating = M
- Programs Concurrently Integrating = N – 1 + M
As Programs Concurrently Integrating in increased, extra integration effort is generated and captured in the System Integrate Thru OT&E activity.
This example shows how various project layouts and programs included in size settings interact.
Let us start with a work element called “combined”, having 30K lines of code and 3 programs included in size:
Now let’s compare the results “combined” with a “rollup with 3 items” having programs 3, 2, and 1, shown below.Each of these programs is specified with 10K lines of code and only 1 program included in size.As can be seen, the schedule and effort estimates are nearly identical: However, these results are not replicated when these programs are made into components 1, 2, 3 and placed under a program, show below, because size is now summed into a single program rather than distributed among three:
However, if the Programs Included in Size parameter is specified as 3, then the result will match the previous estimates: