is a low-cost employee benefit that has many resulting advantages for employers. It can also help to reduce problem areas in some of the XP practices.
With a standard working week, teams with an odd number of programmers potentially lose 40 paired hours. By flexing the working week, it is possible (although not typically practical) to regain those 40 hours.
Unlike the odd numbered team, the even numbered team suffer when a team member goes sick or must take unscheduled leave. Flextime can help here too; as well as alleviating the need for the programming team to schedule their holidays in tandem.
More usually flextime helps day to day, by encouraging the programmers to switch pairs often (PairPromiscuously
) particularly outside of core hours. It also reduces the daily noise level and load on all office resources when working with many others in one room (WholeTeam
Flextime's most commonly recorded benefit is its boost to the morale of the team. But less often publicised is the increase in staff loyalty. This really pays off when the stress levels rise (usually around a release) where the ability to flex working hours, along with a willingness to do so for the good of the company, can avert the need for overtime - voluntary or not.
However, some feel that a flextime policy can conflict with some of the XP practices:
- Conflict: PairProgramming -- The canonical rule is that only pairs can write production code. With small teams, variances in hours are magnified, meaning that there will often be an odd number of programmers present at any one time.
- Resolution: In practice, a non-paired programmer available most of the time is a benefit to the team, providing slack which can be taken up as required, thus smoothing your team's velocity and helping them maintain a steady working week (SustainablePace). It also encourages pairs to switch regularly (PairPromiscuously). See also: PairProgrammingWithSmallTeams (soon-to-be-renamed).
- Conflict: OnSiteCustomer -- The consequences of developing without a customer around are easy to underestimate. Forcing your customer to be present during the entire range of hours isn't good.
- Resolution: In practice, your team is unlikely to require 40 solid hours of interaction with the customer per week. As with everything else in a shared office (WholeTeam) the customer is a resource under load. Flextime actually reduces that load outside of the core hours. And the customer is always available during core hours. But if this really isn't enough then you might consider more than one customer (CustomerTeam).
- Conflict: StandUpMeeting -- If there's too much flex, it becomes difficult to even figure out a good time to have the StandUpMeeting. Is the StandUpMeeting best held first thing in the day? I can think of some advantages ...
- Resolution: Use a flextime policy that has core hours, when everyone must be present, and have the meeting during those.
- Conflict: CollectiveCodeOwnership -- If one rogue pair writes code when no one else is around, it could end up smuggling some surprises in.
- Resolution: CollectiveCodeOwnership. Then fix it. It's our code, not theirs.
Alternatives to flextime:
If flextime is impossible or undesirable for whatever reason, here are some possible reasons why people might want/need flextime, with alternative solutions:
Alternatively, have everyone be 9-5 people, but have the morning people drive first. The night people will be less effective for the first hour or two, but they can still pick out problems.
- Reason: Lengthy commute times. It's a harsh world when people have to be up by 6 to make it to work by 9. Erratic traffic can make the arrival time even more erratic.
- Solution: Move the teams' hours forward. We probably shouldn't move the hours too far forward, or else we'll have problems with programmers unable to eat with their families.
- Reason: Rush hour restrictions. For example, the major route to the office is restricted to car pool use only from 6:30 AM to 9:00 AM and from 4:00 PM to 7:00 PM. Early birds want to arrive before 6:30 AM and night owls want to arrive after 9:30 - 10:00 AM. This requires a major switch for at least one of the two groups.
- Solution: ?
- Reason: Some people are "morning people" and others are "night people".
- Solution: People debate about how set-in-stone this attribute is. What about settling the debate this way?: Try having the morning/night people temporarily become "9-5 people", and see if it works.
(I think this misses the point: the night people will be less effective for the entire day if they aren't getting enough sleep.)
- Reason: Individuality.
- Solution: "Express your individuality by the way you wear your XP ball cap, not the way you [come to work]." In other words, just ask them to give up their differing schedule. If they won't, maybe there's some nefarious reason why they won't.
"Express your individuality by the way you wear your XP ball cap, not the way you [come to work]." In other words, just ask them to give up their differing schedule. If they won't, maybe there's some nefarious reason why they won't.
This sounds to me a lot like "the company requires all its employees to wear 15 pieces of 'flair' to express their individuality" (OfficeSpaceMovie
). A wise man once said that "providing free soft drinks does not imply that you're people oriented". In the same way, having a loose dress-code does imply that you're people oriented. Beware of the trap of being people oriented only in the buzz-word sense.
XP isn't flexible. It doesn't do flex time. Period. It compensates by never letting
you work overtime. (This sucks if you want to build up vacation time, though. Not like it matters in the end because you're more likely to have a life if you work FortyHourWeek
I find it hard to believe that an XP spokesmodel could have said this. Even *I* wouldn't have said it. --XpHammer
Well maybe that didn't come out right. XP is a high discipline team process. It can't be flexible because it requires everyone to be on the same page. The tradeoff is that everyone goes home early, so it's not as bad as it sounds.
Maybe XP is not flexible, but it is morphable (mutable?). Its practices must be changed to best suit the team and project, but cannot be arbitrarily flexed by individuals. Or, the whole team is using the same instance of XP.
Hmm. I have ample personal evidence to _know_ that there are hardwired biological differences between night people and early birds. Therefore any XP team that forces the night owls to 9-5 will simply miss on the best creative potential of such people. Conversely some particularly weird and interesting OpenSource
project will benefit immensely. I know one of TheThreeExtremos
is a very hard-ass 9-5 type boss and I'm very pro-OpenSource
, so maybe I shouldn't argue too long and loud.
I believe that none of the XpSpokesModels is a very hard-ass 9-5 boss and I know all of them rather well. Perhaps Mr Carter would do well to ask them their opinion rather than try to induce it.
Still, a little "out-of-the-box" thinking on any particular team will enable the night owls to work with the photophiles. You choose, some choices lose. -JohnCarter
Say Joe, how about we put in a couple hours programming at the coffee shop by your place tomorrow morning so as to miss the rush hour commute?
You know Fred, this isn't working. Why don't we knock off early. I'll see if I can work out the algebra tonight and have email waiting for you in the morning. Would starting over around 10am work for you?
This discussion reminds me of several management books I've read recently - written by managers eager to tell ius how they turned around their business, how everyone's empowered now, etc. In each case, if you read carefully you find a phrase like "some people weren't able to change/fought against what I was trying to do, and we had to let them go/get rid of them". In other words, if you were different, you were out. Some empowerment.
The above reads like that. If you're not a 9-5 person, if (like me) commuting takes 150% longer if I aim to arrive at work after eight, if you have a partner who also works and need to not work the same schedule each day ... then you can't work with XP. Sad.
Some days I can't program (or write, or otherwise create) myself out of a paper bag. Others I'm unstoppable. Am I really that unusual?