Juggling Supply and Demand In Software Development: Resource Planning - Evolve

Juggling Supply and Demand In Software Development: Resource Planning

resource planning on software projects

Two years ago, the Project Management Institute (PMI) conducted a comprehensive global survey of software development organisations and released The 2018 Pulse of the Profession® report that contained a lot of interesting and thought-provoking findings. In particular, the survey revealed that nearly 10% of every dollar spent by businesses was lost through the ineffective implementation of business strategy. This equates to roughly $2 trillion wasted each year. 

Key reasons why businesses all over the world experience colossal financial losses are:

  • Poor project performance and management (one in three projects fails to meet its goals) – 31%;
  • Team’s inability to meet a budget – 43%;
  • Team’s inability to meet a deadline – 48%.

“Project management is the driver of strategy, but organisations are failing to bridge the gap between strategy design and its delivery. Effective project management to implement an organisations’ business strategy is key, and has a significant impact on the bottom line.” Mark A. Langley, CEO at PMI.

As a bespoke software development company, whenever we get a new business enquiry or are about to onboard a new client, the first question we ask ourselves is: “How can we make sure we’ll deliver this project on time and on budget?”

Juggling supply and demand in software development is a tough job, but there’s one project management practice that helps significantly increase the chance of successful project delivery. It’s called Resource Planning (RP).

What’s Resource Planning in Software Development?

PMBOK® defines Resource Planning as “determining what resources (people, equipment, materials, etc.) and what quantities of each should be used to perform project activities.”

In most service-based and creative industries, resources are referred to as people who execute tasks, so RP is a process of identification of team members and skills that need to be allocated for your project team, and when you’ll need them throughout the software development lifecycle (SDLC).

One important thing to keep in mind is that resource plans may change and should be adjusted and updated regularly to reflect changes in the scope, employees’ availability, force majeure, etc.

The same study by the PMI shows that RP can save companies 28 times more money due to a more reliable output. In addition to that, as much as 83% of senior executives mention “strategically shifting resources” as their top lever for supercharging company growth. We can’t agree more!

Prerequisites for Resource Planning

Before you can create an effective resource plan, you need input from project stakeholders. At Evolve, we sign up all clients for a comprehensive discovery session used to collect input and specify the project. Having gathered insights, we put together a specification containing a work breakdown structure (WBS) – a deliverable-oriented structure of the entire project scope. It helps illustrate the project with manageable milestones and facilitates the process of a software team formation.

For native mobile application development, for instance, you'll most likely need one iOS (Objective-C, Swift) developer and one Android (Java, Kotlin, and C++) developer, a UX/UI designer, a QA engineer/tester and tech lead to supervise the project.

The next step is to determine an estimated duration of the project so you can start scheduling resources. At Evolve, we use several techniques including CPM (critical path method) which visualizes project structure, includes tasks’ dependencies, milestones, and duration. CPM allows for a rather precise calculation of the total estimated time for project development.

To make our RP more reliable, we use historical data from the previously delivered projects (e.g., timesheets, schedules, estimates, team structure, etc.) and try to avoid “guesstimation”.

Resource Planning Techniques

Now when you have all required inputs, you need to get down to expert judgment, i.e. involve senior software developers, solutions architects, or third-party consultants to review your specification and WBS based on their professional experience and tribal knowledge, insights, etc.

As projects may change over time, make sure to consider different scenarios and identify alternatives. This will allow you to come up with solutions you’ll use in case of a change in project requirements.

At Evolve, we use pattern and lateral thinking methods.

Pattern thinking is a method of pattern recognition that’s based on past experiences. Lateral thinking is an approach to the identification of outside-the-box ideas that may not be on the surface at first sight.

Another effective method we use is called bottom-up estimation. This fairly simple approach involves team members who’re going to work on your project development and relies on their expertise and knowledge in estimating tasks they’re going to fulfill. Although this method is pretty time-consuming, it also provides a useful exercise for your whole team and results in a more detailed schedule.

Cost Management and Resource Planning

When you know how to plan your resources properly, you can find and assign the best resources for your project and, what’s important, you can better manage your project costs. RP is part of project cost management just like cost estimation, budgeting and control.

The project profitability is based on a simple equation:

Budget – (hours spent on execution * hourly rates of team members) = project’s profitability

Keeping track of all resources and using them as per your resource plan will result in both an improved project delivery and a better margin for your company.

Benefits of Resource Planning

To wrap up, here’re the key benefits of proper RP:

  • You can track and update your resource capacity in real-time;
  • You can avoid planning conflicts;
  • You can have a high-level view of your team’s work schedules and resource availability;
  • You can forecast resource capacity and track project budget in real-time;
  • You can make more informed, data-driven decisions;
  • You can avoid team overloads and keep your employees happy;
  • You can increase the project’s profitability.

A Minimum Resource Plan

As we always encourage our clients to start small and scale based on end-user feedback, financial situation, market fit studies, and more, they can use a pilot project to test our RP and delivery capabilities before making a larger investment.

We recommend startup companies working with us to build an MVP first and transform it gradually into a full-fledged commercial product. As such, we assist them with creating a minimum resource plan (MRP), i.e. a minimal set of resources required to jump fast on the software development bandwagon and do a proof-of-concept.

When building an MVP team for clients, one of our goals is to help them optimise/reduce expenses, so we allocate people who can play several roles on the project team. We can also optimise the cost of an MVP team by using developer bundles. That’s a mix of a senior developer and junior developers, where the first acts more as a strategist and executes mission-critical tasks and the latter do repetitive tasks and help get the burden off their senior colleague’s shoulders. 

Depending on your software project size, bringing in additional developers can accelerate time to develop, but it also increases the total time to accomplish a task.

Let’s take an example. Your MVP development duration is three months, i.e., 480 hours. Cost and duration are directly proportional, so each subsequent developer increases the cost by 35%. If we have a single-person team, the cost is clear – 480*developer’s hourly rate. If we add one more developer, that’s how the situation will change: 480*(1+0,35*1) = 648 hours (the total amount). So, the cost grew 35%, while the project duration decreased by 1.48 times.

If we add two more developers, the total amount of hours will increase to 816 hours. The project duration will be 816/3 – 272 hours, i.e. reduced by almost 1.8 times.

Optimal number of developers per project depending on cost and speed

If you think you may speed up development time by parallelizing tasks, you’re wrong, because separate tasks are not executed faster. On the contrary, they take more time because developers communicate with each other, do research, discuss architecture, merge code in a repository like Github, argue over features, look for workarounds and kludges, etc.

If we look at the chart above, we’ll see that three developers are too much for a project that’s up to 500 hours in duration.

Are you thinking of embarking on a software development journey but don't know where to start and how to plan your resources? Drop us a line and let's discuss how Evolve can help!

Create your account