Top
Best
New

Posted by MonkeyClub 4 days ago

Painless Software Schedules (2000)(www.joelonsoftware.com)
42 points | 29 commentspage 2
cs_sorcerer 2 hours ago|
It is always interesting to me how Joel’s writing is so relevant despite how long ago it’s been written.

It has to be interpreted through modernity sometimes to account for changes but overall his stuff feels really solid

The_Fox 2 hours ago|
Agreed- just a month ago I told my team to read https://www.joelonsoftware.com/2006/06/16/my-first-billg-rev... and note how Spolsky knew the details of his application (weird date issues in Excel and VB). If you want to be a senior engineer, you need to know where are the odd edge cases in your app. I don't want to be the only one on the team who remembers that stuff.
jillesvangurp 2 hours ago||
Don Reinertsen did some nice work on what he calls lean 2.0. Part of that is basically doing cost estimations for work. Cost estimations basically just boil down to hours times cost per hour. The nice thing of thinking in dollars instead of hours is that it suddenly becomes a money game. Now there is a stake. Because companies are usually budget constrained and while they can pretend there are more than 24 hours in day, pretending there are more dollars in the bank is a lot harder. The tradeoffs get a lot more real.

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.

cratermoon 3 hours ago|
4) Only the programmer who is going to write the code can schedule it.

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.

xtracto 2 hours ago||
This was written at a time were Software Engineering (not Developers) was valued more.

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.

cratermoon 1 hour ago||
I've been in the industry since before this article was written. Notice I said most companies. Back when programmers were valued more, we still didn't always get much say in schedules. Certainly more than we do now. Your term "sweatshop" is on the mark, too. Since the advent of "open plan" offices, we even look like rows of tailors sitting at sewing machines stitching together jeans.
pan69 2 hours ago||
Exactly the reason why such organisations tend to fail.
mandeepj 2 hours ago||
Are you saying companies where the schedule is set by management tend to fail?
wtallis 2 hours ago||
The companies don't always fail, but the software projects frequently do. When was the last time you saw a headline about a massive software project and the outcome was that it was early and under budget with all planned features working?