| Home | Site Map | Plans | Crafts | Blog | Challenges | Freebies | Pictures | Energy | Astronomy | Contact | Order |
Extreme Programming Desk 1

Extreme Programming -- Supporting Ideas


Extreme Programming (XP) is a specific approach to writing software professionally. It is fast and low-stress. Yet, like all great breakthroughs, it produces a paradoxical, counter-intuitive result: high-quality software. What follows is my personal, very enthusiastic reaction to this new idea.

Index to This Article

  1. References
  2. What's Available from Woodware Designs
  3. Programming Facilities in a Thumbnail Sketch
  4. Other Workspace Considerations
  5. Extreme Programming in Space
  6. Darwinian Implications of Programming
  7. Supporting this Site
  8. Conclusion
  1. References

    Kent Beck's book "Extreme Programming Explained" Addison-Wesley: 2000) is the founding document and is available for about $35.00 from most of the on-line bookstores.

    Up-to-date information and a great introduction can be found on the Web at: Extreme Programming: A gentle introduction.

    Our related page is Cool Space and our main computer furniture page is Woodware Designs.

  2. What's Available from Woodware Designs

    This Web Site, Woodware Designs, makes available plans for low-stress computer furniture. We are have now added a section for furniture plans designed specifically to suit XP, most specifically paired programming. This is just the sort of thing we have been doing since the Web began and we hope will make a real contribution to XP.

    We will also provide plans for support pieces that can help you turn a basic warehouse type office space into something fun and exciting, that is called " cool space".

    We also work with people to develop new furniture designs to suit the developing ideas with in XP and sometimes build prototypes. We want to hear about your extreme programming facilities needs. Please, drop us an e-mail about your needs and ideas.

  3. Programming Facilities in a Thumbnail

    In XP, the programmers work in pairs at terminals in a central room. There are facilities available for private conversations, but the bulk of the work is done in the central room. There are no rugs on the floor so chairs can roll around easily and, of course, there is a fridge and a coffee maker.

    1. Room Design

      The design of the room is really up to the team and it must suit programmers not interior designers, architects, or administrators. Often the available space does not suit the XP style of operation, so action is needed. But consider:

      • Given half a chance, the programmers will spend all available funds on computers and development software (certainly not on furniture).
      • Often the available funds are from venture capital and are very expensive money.
      • Sometimes the programming staff sells the XP concept to management, but needs to get set up very quickly (preferably over one weekend) or management might change its collective mind.
      • From time to time, customers will be in the programming area alongside the programmers, so the area should look at least a bit removed from the founder's "garage" and be a cool space.
      • Programmers do respond very well if the supervisor pays attention to their well being through reducing the physical stress of the job (they also love snacks and coffee).
    2. Changeover Timeline

      The Woodware Designs approach supports the following timeline:

      • Day 1: Approval -- Management approves but limits budget.
      • Day 2: Team Planning -- The team meets, gets into to action, and defines each person's needs.
      • Day 3: Order Material -- Get the chain-of-supply moving, using outfits with great on-time records.
      • Day 5: First Materials Arrive -- The first ordered stuff is delivered to the site.
      • Day 6: Build Desks -- The first weekend team members buy local stuff and build the desks in someone's garage.
      • Day 7: Finishing -- Team paints and varnishes the desks.
      • Day 8: Complete Finishing -- A few members complete the desks after hours.
      • Day 8-12: More Stuff -- Chairs, whiteboards, etc., start arriving.
      • Day 12: Preparations for the big shift -- Stop work in mid-afternoon and start getting ready.
      • Day 13: Out with the Old -- Remove old furniture, partitions, carpets.
      • Day 14: In with the New -- Move in the new furniture and set up the computer equipment.
      • Day 15: XP In Action -- Start work in the new style.

      This optimistic schedule assumes that things go very well and the team has completely bought into XP.

    3. Other Workspace Considerations

      In addition to the build-it-yourself furniture plans we would like to give you a few suggestions for your physical plant:

      1. Chairs

        A decent chair is critical to reducing stress. Each person must have a good chair that adjusts to their needs. The chairs do not have to be the most expensive on the market, but they do have to be adjustable and they have to stay adjusted (the most common failure).

        You will need several tools to keep all the fasteners on the chairs tight. This usually means a large Phillips screwdriver, medium vise-grips, and 3-in-1 oil. Keep a bottle of Lock-Tite available to put on any bolts that will not stay tight. It is applied to the treads when you reinstall the bolt. Also keep a small knife available to cut away the treads that collect on the chair wheel axils.

      2. Lighting

        Glare creates fatigue for programmers. If your overhead lighting creates a glare on the monitor screens, disconnect or change the lighting. Cardboard visors for the monitors can help temporarily but only if the Glare is from lights directly overhead.

        Visors to be worn for programmers who ware glasses also helps. Here the problem is glare in their glasses rather than the screen. Such visors are widely available with various sports and cartoon logs and you might consider having them made embroidered with your company logo.

      3. Keyboard and Monitor Height

        The most common source of stress for programmers is poorly adjusted heights of the keyboard and monitor. You can customize these heights to individual needs by using our exercise Air Typing. The programmers can do the exercise in pairs and will need to have the good chairs, a yard stick or two, and a few post-ems. You will then have the information you need to set the lease stressful physical workstation arrangement for each programmer.

      4. Windows

        Workspace windows can be both good and bad. When working on a computer,

        • it is good to rest your eyes every few minutes by focusing on something at a distance. Such as the scene through a window.
        • it is intolerable to have glare from a window on a monitor or your glasses.
      5. Walls

        Institutional, off-white wall are just plain boring. Cover blank walls with posters and be sure they are colorful. I like to save old calendars, cut out the artwork, and tape the pictures into strips. These I hang on the walls. My favorites are sailing ships.

      6. Other Furniture

        You will need:

        • Whiteboards (black boards generate too much dust)
        • Refrigerator (full size)
        • Bookshelves -- try IKEA
        • Coffee Maker
        • Water Filter Jugs
        • Recycling Boxes for paper, soda cans, etc.
      7. Other Facilities

        In addition to the main room the team will need:

        • Private Cubicle -- A place for the programmers to make personal calls.
        • Room with a Door -- Sometimes the supervisor must have a private discussion with a worker or a programming pair needs to communicate in private. These conversations are just no one else's business.
        • Meeting Room -- Preparation and practice of presentations is critical to keeping the enterprise moving forward. This room now should include a projecting monitor for a laptop.
        • Food Handling -- Along with a refrigerator, you'll need a sink for food handling and clean up.

  4. Extreme Programming in Space

    Recently NASA has crashed two spacecraft into Mars. Both failures were caused by small software errors that went undetected. I feel that the use of XP concepts at NASA could reduce such failures in the future.

    I hope to give a formal paper XP at a NASA software conference in November. Please look over this abstract if you are interested in the idea.

  5. Darwinian Implications of Programming

    Did your ever stop to consider what an odd human activity programming is? We sit for hours typing code into a glowing screen, giving it our complete attention. We continue even when we are tired, hungry, and even in pain. We are compelled to do it. Why?

    A Separate State of Being

    When we do programming we are are in quite a different state of being from normal live and even from writing text on the same terminal. It certainly is completely different from watching TV or having a conversation.

    Any human activity this powerful must be based on inherent structures in the human brain. All the peoples of the world can program; yet chimpanzees don't get it at all. There must be a basic human state of being that locks us into the programming mode.

    Consider Evolution

    Such structures have been build into the human brain by Darwinian evolution and no other way. Evolution takes time. We have been programming for only a few years so this state of being must have evolved for some other function. In fact, even the agricultural revolution is so recent (perhaps 10,000 years ago) that almost all of human evolution developed before that while we were hunter/gatherers. We lived in small groups with this lifestyle for perhaps 1.5 million years and that is the sort of time evolution takes.

    The question is then, what activities in the hunter/gatherer society have lead us to programming. Programming and these activities must have these characteristics in common:

    Consider the following two scenarios:

    Neither of these seem much like programming but look again. You are concentrating on a detailed task. You are fully present to the situation. Important things are at stake. Your mental state is fully attuned to your activity. That is the exact state I use when I am doing my best programming.


    One consequence of this model is that we treat programming as if it were life or death. We ignore physical discomfort to the point that it can be injurious to our health. Years of typing results in Repetitive Strain Injury; inactivity and bad eating habits produces poor physical fitness; even infrequent bathroom brakes can lead to bladder infections.

    If a company is exploiting this mental state in its workers then it is has a responsibility to minimize the adverse effects. This is also very good business because paying attention to the needs of your workers will reduce turn over and lost time.

    A second consequence is that programming is very nearly a meditation. It is an altered brain state in which the ego diminishes and task becomes all. Human being love being in such states of mind. It is wonderful. It is compelling.

  6. Supporting this Site

    If you like our Freebies, remember we can only keep this Web site open if we sell our Low-Stress Computer Furniture Plans or if you follow our ad links and make purchases from our sponsors. Thank you.

    Rockler order link to first page

  7. Conclusion

    Thank you so much for reading our article. If you take any of our advice or build our furniture plans, we need pictures of your successes for our Web Site. This will show people everywhere that they can get started with extreme programming cheaply. Please, drop us an e-mail with your needs and ideas for cool space.

Return to Cool Space

Return to Woodware Designs

Woodware Designs, Woodware@woodwaredesigns.com
| Home | Site Map | Plans | Crafts | Blog | Challenges | Freebies | Pictures | Energy | Astronomy | Contact | Order |