Friday, September 23, 2005
40 Hour Work Week, Energetic Work, Sit Together and Points
We view items in the title as all having something to do with each other, in our particular context. Currently many people work "off-line". I frequently start at 5:00 in the morning from home, and don't go into the office until 10:00. Others may work late at night. It is our believe that this is an anti-pattern, in that it violates "Sit Together" and "Pair Programming". (Yes, we won't be pairing - but we'll be "group programming" of a sort).
We also all have other projects we are responsible for. XP talks about not time slicing - but we don't think we can get away from it - and we've all done it for so long that we *think* it will be fine. But what we have done is come up with our "Team" hours. During that time, we'll Sit Together, and that is the ONLY time we'll really work on the project. (We may build some test harnesses, etc. "off-line" - but all building tests, code, stories, etc. will be done "on-line"). So mostly we'll work on our other projects off-line.
We have picked 23 hours a week where we will work on-line. We believe that this will provide Energetic Work - in that is when we'll be focused on this project, making good progress, running tested features, measuring velocity over weekly iterations, etc. We won't violate the 23 hours a week - or not violate it much (an hour or two here or there maybe). That will be our "40 hours a week". We will never work late (for us), never work the weekend, etc.
In addition to never working off-line, we also will only do work if there are 2 of the 3 programmers present. This will occur almost all the time - so we shouldn't lose too much down time because only one person is present. If one person is out, the other two will bring them up to speed when they return.
In looking at our 23 hours a week of "energized work" - we decided we can produce 46 hours of work, rounded down to 45 (division of 3). We'll use this for estimating. Yes, Ron suggests to start with 1/3, but we are going with 2/3s of the hours of the team. We think we can sustain that. We might be wrong. We'll then translate that into 45 points per iteration, with each person doing 15 points. 1 point per hour is perhaps pretty fine - but some of our stories are pretty small. That is the nature of how we do things and we believe it will work for us. We'll see.
One of the great things about XP (we believe) is incremental design. And we feel (based on reading, email list, etc) that we can apply it to XP itself. So much of our conversations contain phrases like "Well we don't exactly how we'll do this yet, but we have an idea, we'll start in that direction, and we'll refine as needed."
I love the line from the pink book.
What if we don't have the process totally define yet... don't worry, we don't.
We also all have other projects we are responsible for. XP talks about not time slicing - but we don't think we can get away from it - and we've all done it for so long that we *think* it will be fine. But what we have done is come up with our "Team" hours. During that time, we'll Sit Together, and that is the ONLY time we'll really work on the project. (We may build some test harnesses, etc. "off-line" - but all building tests, code, stories, etc. will be done "on-line"). So mostly we'll work on our other projects off-line.
We have picked 23 hours a week where we will work on-line. We believe that this will provide Energetic Work - in that is when we'll be focused on this project, making good progress, running tested features, measuring velocity over weekly iterations, etc. We won't violate the 23 hours a week - or not violate it much (an hour or two here or there maybe). That will be our "40 hours a week". We will never work late (for us), never work the weekend, etc.
In addition to never working off-line, we also will only do work if there are 2 of the 3 programmers present. This will occur almost all the time - so we shouldn't lose too much down time because only one person is present. If one person is out, the other two will bring them up to speed when they return.
In looking at our 23 hours a week of "energized work" - we decided we can produce 46 hours of work, rounded down to 45 (division of 3). We'll use this for estimating. Yes, Ron suggests to start with 1/3, but we are going with 2/3s of the hours of the team. We think we can sustain that. We might be wrong. We'll then translate that into 45 points per iteration, with each person doing 15 points. 1 point per hour is perhaps pretty fine - but some of our stories are pretty small. That is the nature of how we do things and we believe it will work for us. We'll see.
One of the great things about XP (we believe) is incremental design. And we feel (based on reading, email list, etc) that we can apply it to XP itself. So much of our conversations contain phrases like "Well we don't exactly how we'll do this yet, but we have an idea, we'll start in that direction, and we'll refine as needed."
I love the line from the pink book.
What if we don't have all the stories defined?
Don't worry -- you don't.
What if we don't have the process totally define yet... don't worry, we don't.
