pointer-image   9   Feel the Rhythm

 

“We haven’t had a code review in a long time, so we’re going to review everything all this week. Also, it’s probably about time we made a release as well, so we picked three weeks from Tuesday for a next release.”

images/devil.png

On many less-than-successful projects, events happen on an irregular, haphazard basis. And that sort of random threat can be hard to deal with; you’re never quite sure what’s going to happen tomorrow or when the next all-hands-on-deck fire drill is going to occur.

But agile projects have rhythms and cycles that make life easier. For instance, Scrum protects the team from requirement changes during a thirty-day sprint. It’s helpful to defer large-scale changes and handle them all at once.

Conversely, a lot of practices have to happen “all the time,” that is, throughout the life of the project. It has been said that time is nature’s way of keeping everything from happening all at once. Well, we need to take that one step further and keep a couple different rhythms going so that everything on an agile project doesn’t happen all at once or happen at random, unpredictable times.

To begin with, consider the day itself. You’d like to end each day with some resolution, without having anything major hanging over your head. That’s not always possible, of course, but you can plan on having all the code you’re working on checked in and tested by the time you leave. If it’s getting late in the day and the code you’re working on just isn’t amenable to getting done, perhaps it might be best to erase it and start over.

Now that sounds like pretty drastic advice, and maybe it is.[9] But as you’re developing in small chunks, it can be helpful to time box yourself in this manner: if you don’t have a good, working solution by a hard deadline (e.g., the end of the day), then maybe you should try a new tack. And it establishes a rhythm; at the end of most days, everything is checked in and tucked away. You can start the next day fresh and ready to tackle the next set of difficulties.

The stand-up meeting (Schedule Regular Face Time) is best held at the same time and in the same place every day, say around 10 a.m. or so. You start to get into the habit, and you have everything ready for the meeting at that time.

The biggest rhythm of all is the iteration length (Use Short Iterations, Release in Increments), which should be something like one to four weeks long. Whatever length you choose, you should stick with it—a consistent length is important. That regular rhythm makes it easier to reach decisions and keep the project moving forward (see the sidebar here).

images/angel.png

Tackle tasks before they bunch up.

It’s easier to tackle common recurring tasks when you maintain steady, repeatable intervals between events.

What It Feels Like

It feels like consistent, steady rhythm. Edit, run tests and review, over a consistent iteration length, and then release. It’s easier to dance when you know when the next beat falls.

Keeping Your Balance

  • Plan on having all code checked in and tested by the end of the day, with no leftovers.

  • Don’t let that trick you into working overtime constantly.

  • Run the team’s iterations (Use Short Iterations, Release in Increments) at a fixed, regular length. You may need to adjust the length to find a comfortable value that works, but then you need to stick with it.

  • A regular rhythm that’s too intense will burn you out. Generally, as you interact with entities outside your team (or outside the organization), you need to adopt a slower rhythm. So-called Internet Time is probably too fast to be healthy.

  • Regular rhythms make it harder to hide things; and help give you an excuse to have courage (see Damn the Torpedoes, Go Ahead).

  • As with losing weight, a little success is a great motivator. Small, reachable goals keep everyone moving forward. Make successes memorable by celebrating them: pizza and beer or a team lunch can help.

Footnotes

[6]

See My Job Went To India: 52 Ways to Save Your Job [Fow05].

[7]

Pragmatic Bookshelf publishers Andy and Dave hear from a lot of folks who have set up reading groups to go through their books.

[8]

This can still be the case in some embedded systems development.

[9]

Ron Jeffries tells us, “I wish people had the balls to do that more often.”

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.129.23.214