It's quite easy to avoid the "3.5 people" issue by making it a step function (i.e. rounding). Once again your assumptions become explicit, which is good. E.g. you might decide that one person can do the work of 1.3 employees (people can do this for a while when it's needed!) and round everything above that up to 2.
However, when forecasting 3 years in advance as in the article, the fact that your model has you hiring fractional people becomes less important.
It is still very useful for variance analysis. Like, I made 100k, expected 120k...because x person cost more than expected and x person was hired early. It's nothing to get upset about, but it aids your understanding.
A granular 12 month forecast is very useful for the reason you described, but we're discussing longer time horisons here.
Main reasons for this are:
- It enforces discipline. It's easy to make hand-wavy assumptions like forecasting costs as a % of sales and calling it a day
- Small changes to the hiring plan can have a drastic impact on a startup's finances, including the timing of those hires
- If you tether all your expenses to sales, you can't really explore the downside, because you'll always be showing consistent profit margins
To your point though, I agree that it's important to look at expenses both bottom up and top down.
That said, I think most founders should not be forecasting salary expenses on a per-position basis, even if they're under 100 employees. In my experience, you definitely won't know which positions you'll be hiring for further out than 1 year. If you're trying to impress investors it might work, but it will have limited utility for you personally.
Instead, you should group salaries by function (e.g. sales, engineering) and then make explicit your assumptions about labour efficiency. In the model described in the article, these assumptions are also there, but spread out over 40 rows in a table - not good! Assumptions in models should always be explicit.
For example, you could say that, in order to maintain your projected growth, you need to spend 10% of your revenue on sales staff. Or if you're aiming to be funded, you might instead work out how much labour it might take to make one sale, and then extrapolate based on how many sales you intend to make in the year.
You could look at engineering and decide you need 1 person in your engineering team (disregarding job title) per 100 clients. Then extrapolate, once again, based on number of projected clients. Obviously, software is meant to be scalable, so this all depends on how much up-front development you intend to do and at what pace you intend to add new features, so you might want to factor your growth targets in too.
Now, organisations normally bring in layers of management as teams grow. Do you need to account for this? Probably not. Remember, we're focusing on labour efficiency. These managers might increase your costs, but the idea is that they also help your teams function in a scalable way. And if you have good managers, the average tenure at your company should increase, leading to higher productivity.
The benefit of the above approach is that, now that all your assumptions have been made explicit, you can easily tweak them to see how they impact your model, rather than having to dig through many rows of data.
Lastly, and this is nit-picking, but ignoring income tax means this model should only be used to forecast up to periods where the company is not profitable. As soon as there's profit it will be completely wrong. Although it's a nice simplifying assumption if all you're trying to model is your road to break-even.