Site name
Applied Math

Can We Build It? Staffing Optimization with Linear Algebra

PMTheTechGuy
··3 min read
Can We Build It? Staffing Optimization with Linear Algebra cover image

The Scenario: You're an IT Manager. You have a team of 3 developers. A new project comes in requiring specific amounts of Python, SQL, and Cloud Architecture work. Do you need to hire a contractor, or can your current team handle it?

Most managers solve this with a gut feeling. But if we treat skills as vectors, linear algebra gives us a definitive "Yes" or "No" answer instantly.

In my recent Coder Productivity Analysis, I explored how we can map developer capabilities to project requirements. Here is the math behind that decision-making process.


The Model: Skills as Vectors

Let's imagine every developer is a vector in 3-dimensional space, where the dimensions are [Python, SQL, Cloud].

% Capabilities (Output per week)
Dev_Alice = [40; 10; 0];   % Heavy coder
Dev_Bob   = [10; 40; 10];  % Database pro
Dev_Carol = [5;  5;  30];  % Cloud Architect

Our team is the set of these vectors: {v₁, v₂, v₃}.


The Project as a Target Vector

The new project requires a total of:

  • 100 units of Python work
  • 150 units of SQL work
  • 50 units of Cloud architecture
Project_Target = [100; 150; 50];

The Question: Is the Project in the "Span" of the Team?

In linear algebra terms asking "Can we do this project?" is exactly the same as asking "Is the target vector in the Span of the team vectors?"

If the answer is Yes, there exists a combination of hours (scalars) c₁, c₂, c₃ such that:

c₁*Alice + c₂*Bob + c₃*Carol = Project

If the answer is No, the project is theoretically impossible with this team, no matter how hard they work. You must hire someone (add a new basis vector) to expand your span.


Solving it in MATLAB

We can solve this system using an augmented matrix and rref, just like we did in my tutorial on Vector Span.

Team_Matrix = [Dev_Alice, Dev_Bob, Dev_Carol];
Augmented = [Team_Matrix, Project_Target];
 
rref(Augmented)

Interpretation

If the last column (the project) has a pivot, the system is inconsistent.

  • Business Meaning: You have a skills gap. Even with infinite time, the ratios of work required don't match your team's ratios. You need to hire a specialist.

If the system is consistent, the values in the last column tell you exactly how many weeks of work you need from each person.

  • Business Meaning: You have the skills. Now it's just a capacity (scheduling) problem.

Real-World Application

This approach scales. In my recent assessment of coder productivity, I used this concept to analyze not just 3 developers, but an entire department against a portfolio of projects.

By calculating the Span of the department's aggregate skills, we identified exactly which project types were causing bottlenecks—not because we lacked people (count), but because we lacked the specific linear combination of skills (basis vectors) required to deliver them.

Math doesn't just solve equations; it solves business problems.

Tags

#MATLAB#Linear Algebra#Business Intelligence#Staffing
Newsletter

Stay updated with my latest projects

Get notified when I publish new tutorials, tools, and automation workflows. No spam, unsubscribe anytime.

Follow Me

Share This Post

You might also like

How to Find a Basis Using MATLAB cover image
Academic

How to Find a Basis Using MATLAB

A basis is the foundation of vector spaces. Learn how to extract a basis from a set of vectors and complete it using MATLAB's rref function and the identity matrix technique.

2/1/20263 min read