I’ve been involved in a few projects that were using Scrum.
I don’t know about you, but I don’t have velocity all the time when I work. My working style is more like: Fidget for a while, noodling with things until they appear to work, re-writing and re-designing and throwing stuff away as the real problems become clear. I don’t appear to make progress for a while, then stuff comes together and starts working.
So I’ve been stuck in a scrum every morning. What have I done in the last 24 hours? I make something up: “I oprimanded the access code in the Glorok module, and got maybe half of the Schnorketic logging written.” In reality I’ve been mucking about with interfaces and playing with some sample code, or staring into space and taking notes and drawing boxes in my notebooks. Drawing cartoons, if things are really fuzzy; space-ships crashing into each other could be B-Tree nodes if you didn’t really know. Put my laser-eyed fighting robots in your fucking UML, I dare you. This works for me.
But I’ve never felt very good about the humiliation of scrum, every single stupid morning.
Things are different the fourth or fifth time you do something. The fourth or fifth take, you generally know what you’re doing — you’re on a Mission from God and on a good day you’re unstoppable. Lock the door and delete all that crap from your calendar. Get things done.
Scrum seems pretty good for doing things that you’ve done before, that is, when you have a pretty good idea of what you know you have to do. Scrum is a lousy fit when you’re doing exploratory programming, or debugging, or when you’re dependending on miracles  or anything else profoundly unfit for scheduling.
 A miracle is when you have a bunch of contingency plans, and A through maybe E didn’t work, then you wake up in the middle of the night and realize that F is going to get to you G which will, by gum, work. But you won’t get to this realization until you pay the dues.