Seems like he managed both.
This item makes Joel's scheduling idea a no-go at most companies. Schedules are set by management or sales and programmers are expected to meet the date or get PIP'd.
I had my first programming job around this time, and there wasn't scrum and all that crap. I was a Jr engineer, still in the last semesters of univ. And yet, we were treated like you read in the post: We were handed a feature and asked to do it. First estimate it , then ask the Design guys for UI and finally start coding it.
Now Software dev feels like sweatshops, business people think we are sewing jeans. And Software Developers became code monkeys.
Its quite sad.
It was a different age, with different products. I’m sure there are still products built the old ways, but Joel was writing before SaaS and CI/CD and endless roadmaps.
He seems to have other posts on the lifecycle of software and product budding. Maybe it wasn’t mainstream then but some folks were doing meaningful parts of it.
Both products were initially once-off purchases that you had to install and run on your own infrastructure, and with new, major versions packed with new features that you had to buy if you wanted, but could ignore if you didn’t.
The move to a SaaS model came years later for both products.
That process isn't free. For many features, it's the largest share of the work.
Even for features that stay on the cutting-room floor. Especially for features that stay on the cutting-room floor.
This post from spolsky is always amusing to me because it came 6 months after Microsoft was convicted of antitrust violations to crush Netscape. So it's funny that he claims Netscape killed themselves, when the courts actually said that Microsoft killed Netscape. Obviously Netscape made critical bad decisions, but Microsoft's illegal behavior was what actually killed them.
It has to be interpreted through modernity sometimes to account for changes but overall his stuff feels really solid
One of the points he makes that a bad estimate is better than no estimate. If you have no estimates, you literally can't plan. Even if you are going to be off by 3x it's better than not knowing. A lot of the companies have no clue about the cost of what they are doing. So, he fixes that by making them predict cost of their plans. Which in turn forces them to do time estimates. Like Joel says, breaking things down helps making better estimates.
Another point he makes is that different people can come up with wildly different cost predictions for the same thing. That's still a lot better than not having any cost at all. Whenever you get wild divergence in cost estimates, that signals that there's no collective understanding of what a team is doing. That's a problem that needs fixing or somebody needs a reality check with their expectations (e.g. managers). If they are low balling an expensive thing, they are going to look pretty bad when that doesn't happen repeatedly.
And then he introduces a concept called "cost of delay" which is a simple potential revenue based mechanism for calculating what it would cost if feature X ships 3 months late. Now you get money based prioritization. We make more money if we do X before Y.
And a final point he makes is that empowering people to come up with money saving measures can actually be hugely beneficial. Some things get cheaper if you rethink a design, maybe re-implement some thing, etc. Instead of making people beg for permission to do that, it's much more cost effective to let people figure things out. Up to a certain dollar amount. That amount can go up or down as people gain experience. But the point is that rewarding people for things that are profitable is a very sane thing to do for companies. And usually the experts have the best understanding of where the potential gains are.
All very simple ideas conceptually. But the thing is, many software shops have no clue about any of this. They don't understand their own cost. They don't understand the dollar impact of choices they make; including important things like prioritization.
I don't actually practice any of this. But it's an intriguing way to look at estimations. Well worth checking out his work.
1) write down everything you're going to do
2) write down how long that's going to take
3) add them all up and voila! You have a schedule!
The ways this breaks down in practice would be comical if not for the fact that everybody takes it so seriously. The biggest problem is that step 1 takes longer than the actual software development task all the time, every time. That might not be _so_ bad other than the fact that it's also always completely wrong.It took me a few hours to do and as Joel says in the article, it was not a fun thing to do (jumping right into code was more fun) but I stuck with it and did the whole thing.
Then I followed that list of tasks and kept track of when tasks started and ended and I was pleasantly surprised when after a few weeks the project was done right on schedule as predicted by the excel sheet. So my experience (data point of 1) was that it works if you do it exactly how he says to do it in the blog post.
I did it only that one time so take that for what it is.
SyneRyder•4d ago
Unfortunately Mr Schedule and the pietschy.com website disappeared. I made my own recreation using REALbasic / Xojo at the time, but never released it and faded from using it.
Joel Spolsky expanded the idea later with Evidence Based Scheduling:
https://www.joelonsoftware.com/2007/10/26/evidence-based-sch...
That takes the estimates from Painless Software Schedules, but runs a Monte Carlo simulation using your estimates & data on actual time taken, to create a confidence distribution curve graph of when you'll be finished.
awesan•1h ago
The most important is that the team needs to actually use the task board (or whatever data source you use to get your inputs) to track their work actively. It cannot be an afterthought that gets looked at every now and then, it actually needs to be something the team uses.
My current team kind of doesn't like task boards because people tend to work in small groups on projects where they can keep that stuff in their own heads. This requires some more communication but that happens naturally anyway. They are still productive, but this kind of forecasting doesn't work then.
rwmj•35m ago
eweise•40m ago