InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Opinion: Putting Overtime in Perspective

Posted by Deborah Hartmann Preuss on Sep 13, 2006

Sections
Process & Practices,
Architecture & Design
Topics
Agile ,
Leadership ,
Agile Techniques ,
Delivering Value
Tags
XP
Mitch Lacey is a Program Manager at Microsoft in Redmond, with a passion for Agile software development.  When appropriate to the work, he loves to help a team get fully agile - practicing XP and Scrum, absorbing and living the principles.  Lacey recently blogged about the XP core practice of "Sustainable Pace", which has also been adopted by ScrumMasters and other Agile practitioners, because Agile work, when done in a disciplined, creative way, tends to be very intense.

Definitions on how to implement Sustainable Pace vary, though, from the dogmatic 40-hour rule to "whatever the team can sustain".  For those unfamiliar with the concept, Ron Jeffries, an XP originator, has written:

Extreme Programming teams are in it for the long term. They work hard, and at a pace that can be sustained indefinitely. This means that they work overtime when it is effective, and that they normally work in such a way as to maximize productivity week in and week out. It's pretty well understood these days that death march projects are neither productive nor produce quality software. XP teams are in it to win, not to die.

Lacey goes on to say: "I used to get hung up on this and even today I continue to see others getting hung up on this.  I used to think that I had to work at a sustainable pace and that I would fail if I worked overtime."  He now understands it differently, and makes some suggestions on determining the value of overtime (rather than rushing ahead and doing it for the usual reasons) in his MSDN blog entry called Breaking the Rules of Agile - Working Overtime.

For more on why sustainability is important, read Ron Jeffries' Impact of Overtime on Productivity, which starts out with:
More features will always bring more revenue, more customer satisfaction, other good things. Therefore there is always pressure for people to work harder, longer hours. This is demonstrably a Bad Idea. Here's some evidence, and some ideas about how to know if pressure is too high.
and along the way he covers topics such as these:
  • Industrial Accidents and the Professional Programmer
  • Mental Acuity for Programming
  • Disproportionate Impact of Defects
  • Practices Slide Under Pressure
If you're interested, there's more on Jeffries' site on overtime.
IMHO working overtime miss the point by Stephane Boisson Posted
Re: IMHO working overtime miss the point by Deborah Hartmann Posted
  1. Back to top

    IMHO working overtime miss the point

    by Stephane Boisson

    Isn't feedback based iteration supposed to expose problems , so the team can find a way to fix a problem or re-adjust estimation?

  2. Back to top

    Re: IMHO working overtime miss the point

    by Deborah Hartmann

    Yes, Stephane, I agree with you. The inspect-and-adapt cycle is a good place to react to such problems and head them off. There really isn't any excuse for a deathmarch on an Agile team that is doing retrospectives.

    But I've also seen teams that don't perceive overtime as a problem so it doesn't come up in the retrospective. Or perhaps there is organizational pressure from outside the team, and they can't shake the feeling that they should comply, so it gets swept under the carpet.

    These teams need some leadership - someone (a team member, a scrum master, a manaer) who encourages them to discuss it, as the author suggests. This can reset expectations and reveal options that can then be dealt with over time in retrospectives.

    What do you think?

Educational Content

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.