These counterarguments are excellent but I still think there’s a lot to be said for hard nudges and opinionated software. It used to be horribly common for newbees to set the initial slope to zero for lack of having thought of something better. Then Beeminder would just never make them do anything and all the mustering of willpower that made them set up the goal was wasted. Or, worse, they’d not understand anything about setting slopes of yellow brick roads and such and Beeminder would just seem broken.
So Beeminder saying “no, a zero slope defeats the whole point” is not crazy. If you’re sophisticated enough to know that you really do want a zero slope then prove it by working around it (the 0.000001 trick or dialing it back to exactly zero after you create it).
I also appreciate the argument that we should just give you an “are you sure?” pop-up. But the counterargument is that users just breeze through things like that without reading them. (It’s pretty amazing how much that’s true, even for super nerdy users. [1]) So making you think about whether you want a zero slope instead of telling you to think about it might be important. Or there may be a different UI that achieves the best of both worlds!
[1] Funny story: I once submitted a Beeminder bug report (probably by complaining to @bee) because some UI thing (I forget what now) wouldn’t let me click on it. Right next to the unclickable thingy was a little block of text, that I myself had written, explaining, with much wit and eloquence, I’m sure, exactly why the thingy was unclickable. My eyes passed right over it and I jumped to the conclusion that there was a bug because I had an expectation and the UI violated it and it just seemed obviously buggy. The point being: (1) designing stuff is hard, (2) I’m an idiot, (3) as both a user and a designer. But also, even hardcore Beeminder users are totally like that and adding words to explain things is usually a bad idea. You have to make the right thing happen when the user breezes through the UI on autopilot.
This concludes my defense of not letting you create a goal with a zero slope.