Scrum and other buzzwords
Alright. The time has come when I've been involved enough in projects that are/were using Scrum.
I don't know about how you guys operate, but I don't have velocity all the time. In fact, most of the time my process goes like: think long and hard about how you're going to do the what, while fiddling around with some prototype code, rewriting and redesigning stuff if and when the real problems become clear (or as your "architect" shifts his perspective about intended system behaviour). In short, I usually don't appear to make any progress until, well, I do.
I could also patch up a prototype, ready for others and testing, but that's shit I only pull off when we're 5 days before a deadline. Also, when I'm pissed off.
So, regardless of the way you work, you get stuck in a scrum every morning. What have you done in the last 24 hours? "I have been thinking about the implementation of the flux regulator for the reporting subsystem". That usually means I've spent my day staring into space, taking notes and drawing boxes on paper while toying with some code. Looks of disapproval everywhere. "Err, I prototyped the Traffiker report distribution code and enhanced it with some logging". Now the looks are neutral or passive. Meanwhile, I'm drawing cartoons. I'm bad at drawing. My stickmen could easily be mistaken for flow charts. Stick that in your UML, I fucking dare you.
But I've never felt good about the humiliation of scrum, every single stupid morning.
Even when I have done actual work, like fixed a dozen NPDs I spotted and that annoying bug that's kept Network Verification on our tails for two months, I don't get the time to convey any useful information. "And you know that bug, the reason you get 50 mails a day? Yeah, I found the cause for that one and fixed it. It manifests in..". Mike, we don't have time for that, you can explain it after the scrum. Yet "after the scrum" is magically and constantly 20 minutes away..
Things are different the second or third time you do something. By then you know what you're doing; you're on a mission from god and whoever gets in your way is gonna lose. By that time you can also lock yourself in a basement and delete all the fucking meetings from your calendar. Get things done.
Then again, we allow burndown charts to be used against us, so..
I haven't seen Scrum "done right" so far. I'm told others have. Here's a caricature of how it usually goes for us:
- The team will meet for at least 15 minutes, occupying a urinal if possible or otherwise disrupting traffic. The meeting will be held at a different time each day, to accomodate the Barn Manager's schedule.
- We have goats and we have cows. The goats are generally uninvolved in the process, unless they have to get blamed for something. Cows must stand and talk (moo) about inconsequential nonsense, or about deeply boring esoteric technical details that mean nothing without an open vim window.
- The Barn Manager must conduct the meeting wearing a hat, holding a baton but never in a tuxedo. Her job is to assemble the team, go around the room asking what has everybody had for breakfast, whether they've had their coffee (and if not, provide it) and after a long polite exhange of pleasantries, inquire as to how things are faring on our beloved project, if it's not too much trouble.
- Cows' status reports are one of:
- "Things are going great, Moo."
- "That bug has been fixed. I committed the fix in the right svn branch. Moo."
- "Our fix didn't work for all use cases. Moo."
- "I'm trying to fix the mess that goat (point finger) created. Moo."
- "I can't implement this test case unless the customer personally acknowledges it is satisfactory for him. Moo."
- "Who made me a cow on this team anyway? I was way happier in XXX until I got dragged to help you sort your shit out. Moo."
- At this phase, all goats stand around looking at each other, frequently rolling their eyes at cows' utterances (like using SOAP for RPC, monkey-patching database access code instead of using the API, performance tests the results of which nobody will ever see, etc).
- Cows also report what will they be working on, using a keystroke-mouseclick granularity. The assumption is no cow is ever blocked by anything (horn usage is mandatory, alternatively dual wield axes WoW-fury-warrior-style).
- After the scrum is concluded everyone heads for the cafeteria for a good hour of rest.