Practical Software Measurement

Getting Staffing Right is the Key to Software Development Nirvana

This post was originally published on Linkedin. Join the QSM Linkedin Group and Company Page to stay up-to-date with more content like this.

Enterprise IT teams have been searching for years for the Holy Grail of software development: the greatest possible efficiency, at the least possible cost, without sacrificing quality.

This endless search has taken many forms over the years. Twenty years ago, development teams turned to waterfall methodologies as a saving grace. Soon after, waterfall begat object-oriented incremental or spiral, Rational Unified Development (RUP) practices.

Today, it’s agile development’s turn in the spotlight. C-suite executives are investing huge sums of money to develop their organizations’ agile methodologies. They’re also committing significant resources to train employees to work within agile frameworks.

Yet many projects are still failing, clients remain unsatisfied, and IT departments are often unable to meet scheduling deadlines. Why?

It’s the staff, not the method.

Whenever a project falls behind schedule, the natural inclination is to add more staff. There’s a belief that doing so will accelerate development and, ultimately, help the team hit their deadlines.

That’s not always the case, however. In fact, throwing more people at a project often results in slowing things down even more. Sure, your team might get a little bit of a short-term boost, but in the long run, you’ll have more connection points to manage (which can increase the potential for mistakes or defects) and higher costs.

In fact, over the years QSM has conducted periodic research indicating that the allocation of current resources is just as critical to a project’s success as its development methodology. Our latest analysis was completed in preparation for our recently released QSM Software Project Database update. That update includes new insights into agile development processes, part of which is based on data informed by staffing models that agile teams are employing for their projects.

The following table provides a snapshot of that data. It compares applications of the same size featuring both 10,000 and 20,000 lines of newly developed code. One sample uses an average of less than four people; the other, nine people or more. While the additional staff reduced the schedule by approximately 30 percent, cost actually increased a whopping 350 percent. Further, 500 percent more defects were created that had to be fixed during testing.

Staffing Size

Here’s the data mapped out. The lines represent the average behavior for size developed vs. schedule, effort, defect, and average staffing. Notice the large variation in effort and defects, and small variations in schedule.

Software Staffing

We’ve performed this same study in five-year increments over the past 15 years, and have found virtually the same results, regardless of methodology or development methods. There is no significant change in the proverbial horde’s approach to schedule compression.

Staffing through predictive analysis and early estimation

This research shows that staffing decisions are more likely to impact your bottom line than a metamorphosis in methodology – but how do you assign the appropriate staffing levels for a project?

Using predictive analysis and early estimation, you can more accurately plan for staffing and set your projects and developers up for success. You’ll get an accurate sense of how many people should be assigned to a project and gain valuable insights that will allow you to course correct accordingly throughout the project’s lifecycle.

Let’s take a look at a step-by-step process that can be effectively employed to leverage predictive analysis and early estimation planning on your next IT project.

1. Centralize all of your project data.

Creating a central repository that allows you to see all of your project data at-a-glance – including start and end dates, resources currently deployed, and more – can give you a good sense of where things stand within your organization. You’ll gain perspective on how many resources are currently available to work on your next project, and where that project fits into the overall development cycle.

Tools like SLIM can provide centralized locations through which to monitor projects that are in various stages of development. They store data about each project and will often allow you to generate accurate forecasts. They’re a great and necessary starting point.

2. Leverage historical data.

Run a forecasting analysis to see if you have the appropriate number of resources on-hand to complete the project in the timeframe your client has set forth. This analysis should be based on historical data taken from projects of similar size and scope, which can provide an accurate analysis of the number of resources needed to complete the work. Historical data provides a good baseline upon which to predict the resources necessary to realistically complete a project on time and within budget.

However, client expectations and deadlines are not always commensurate with reality. You must be the reality check. Use the same historical data to determine whether a deadline is achievable, or if you’ll need to extend the project delivery date to meet goals or save money.

3. Look at industry trends.

Data can then be compared to industry-wide trends to ensure that your IT team is on the right path. Use your estimation tool to compile this trend information, compare it to your own data points, and determine how your staffing and resource levels compare with similar projects.

In the following example, PI represents a project’s “Productivity Index,” a measurement taken from my father’s Putnam Model, the gold standard in software estimation for nearly 40 years. The red dots represent a company’s current resource level, while the blue lines indicate industry averages.

Software Project Staffing

Note that the productivity assumption is much higher than normal, resulting in a shorter than usual schedule and effort – a recipe for disaster at delivery time.

This visual representation makes it easier to see where adjustments need to be made in order to bring a project more in line with the rest of the industry. You can tell whether you’re ahead of the curve, falling behind, or right where you need to be.

4. Analyze your project’s impact.

It’s critical to be able to discern the potential that each of your organization’s projects can have other projects and the enterprise’s overall IT budget and resources. Use a dashboard that allows you to see, at-a-glance, all of these projects and their relevant data. Include information pertaining to cost, scheduling, and resources. This will help you notice when specific projects might be ready to go off the rails or are negatively impacting your enterprise’s overall IT budget.

Here’s another example. The red dots represent your project. The goal is to get them within the green rectangle – the “sweet spot.”

Software Project Staffing

Compiling this information early will help you identify when a project is leaning toward being too risky or wasteful. You’ll be able to use this predictive data to course correct as needed to get you back in the green zone.

5. Optimize resources.

Proper allocation of staff resources can greatly increase efficiency and minimize the risk of project failure. In this final example, staffing, and cost charts are used to accurately plot staffing resources across the entire project portfolio. With this view into all of an organization’s projects, adjustments can be made to normalize risky projects and eliminate overstaffing (thereby reducing cost and improving quality) from others. This allows program executives to quantify the benefits of the optimization process and match demand with current capacity leading to a realistic portfolio plan.

Software Project Staffing

Now you can go about accurately determining how to allocate sufficient resources to your projects. Will current resources be enough? Will you need to move team members off of one project onto the new project in order to complete it on time and within budget? Will you need to hire new personnel? If you need to hire, what will be the optimal headcount number required to achieve “peak staff”?

Optimizing resources will make the answers to these questions much more apparent. That knowledge will allow you to complete projects that deliver on your clients’ expectations in a realistic timeframe and cost-friendly manner. You might even be able to finally capture that Holy Grail that all companies are so tirelessly seeking.