A Software Engineer s Day at an Agile Development Company
Jeanne parked her car in the small lot next to the modern rectangle of her company s utilitarian building. She trotted toward it, past the security guard at his desk, and into the open workspace her team occupied. The room was nearly one-fourth the area of the first floor. There were cubicles across the end opposite the entrance . Between her and the cubes were several desks with nothing under them to bang knees and shins against. On top of these desks were one keyboard, monitor, and mouse, with two chairs in front of them. Windows covered one entire wall, giving an airy, well-lit feeling. On the windowless wall was a larger white board; the left half contained a drawing of the software architecture of the product, at least as it was two days ago. The right half was newly cleaned.
Going to the area near the white board, she glanced at the Integration Machine, on which resided the code done so far. She went to the other end of the table on which it sat, where there was small refrigerator. Jeanne took a diet soda from it and several pieces of chocolate from a bowl on top of the refrigerator. There was also an open bag of pretzels from a meeting yesterday , but she ignored it.
Taking her drink and the chocolates, she went into her cubicle. There she zipped through the morning s e-mail. None of it was about her project. She also took advantage of the telephone in the cubicle to call her doctor s appointment line, which had just opened.
Leaving the cubicle a few minutes later, she went to the area where the daily standup meeting took place. The rest of her development team had arrived by then. It was called a standup meeting because everyone stood for its duration. The team went over the tasks it accomplished yesterday, and someone distributed to task owners their final task cards of this iteration.
Jeanne would have to wait to do hers in the afternoon, as it was not her turn to pick a partner. She noticed that another engineer indicated that they should pair. The rest of the team also paired off. It was like some of the media-depicted drug-induced pairings at 1960s parties: anyone would do, and you could not say no.
The other engineer was roughly equal to her ability. She was happy that was true today, as she did not want to drag along a junior engineer, or be dragged along by an old hand. They picked a desk and went to work. As he settled in front of the monitor, keyboard and mouse at hand, she got another can of caffeine . With a glance at the task card, she sat in the other chair , moving it to the other engineer s left.
They worked for the rest of the morning on their task. She pointed out five logic errors and about ten typos. When she felt like it, the drinks in the refrigerator and the food atop it, augmented by two new bags of snacks, were hers for the taking. About midway through the morning, her partner took a break to go to his car to retrieve something personal he had forgotten.
They started the morning together by writing several tests for the functionality of their unit. Just before noon, the tests all showed a green passing bar when run. Her partner took a diskette with their work to the Integration Machine. All the tests from previous coding sessions ran the first time. Their code was officially integrated a few minutes after noon.
Lunch was next on the day s agenda. They went to an inexpensive family restaurant in a nearby strip mall. Most of the team was at a rear table. The pair joined them, and what ensued was raucous laughter interspersed with eating .
Returning to the workroom, Jeanne glanced again at her task for the day and the architecture on the wall. She chose a team member from the available pool and prepared to pair. She took her seat in front of the monitor and keyboard. Her partner had been with the organization a bit longer and so should have more experience. Jeanne liked to pair with more senior people when she was driving. She felt that it was better to pair with someone from whom she could learn. Right now, her partner slouched to her left, sipping on a box of juice and looking a lot younger .
He watched Jeanne s tests take shape, making a suggestion or two. Then she methodically wrote code to pass all the tests, finishing just before quitting time. She tested her new code and was able to integrate it. There was a short line at the Integration Machine, since it was the end of iteration.
When all the new code was integrated, a cheer went up. The iteration was finished. The coach, the most senior employee there, led the team to a bar in the strip mall and, for an hour or so, the team celebrated the end of their iteration. Then, those who drank had an extra hour or so to clean up the code. Those who did not (like Jeanne, who nursed yet another diet drink), went home.
The Planning Game for the next iteration (see Chapter 2, Software Engineering Methods ) was in the morning. Tomorrow was soon enough to think about it.