A Day in the Life of a Software Engineer in a Conventional Company

A Day in the Life of a Software Engineer in a Conventional Company

Joe walked the long hall past the giant aluminum shaping machines, flinching from the noise. Despite the discomfort, he was happy to see the result of his work pile up at the end of the assembly line. Veering to the right halfway down the big building, he came to the door of the East Lean-to, as it was called. Entering a code into numbered buttons near the knob, he entered. What appeared to him then were two sets of cubicles separated by a wider aisle than was usually between rows. The right set was nearly empty. It had housed as many as 50 engineers , working on a project some thought upper management used as a loss leader. Now only a few testers were left, the others having been transferred to other projects as this one wound down. The project was already a year late.

The other cubicle group was mostly filled by colleagues on his project. There was one secretary for his team, sitting in an open space in front of the cubicles. They smiled to each other and he made his way to his cubicle amid a storm of greetings from others in his row.

Joe threw down a few papers and tried to clean his cup by running a finger around the inside. He then filled the cup from a never-ending urn of bitter coffee. Making his way back to his cubicle, he looked inside. There were two pieces of furniture available: a desk, the surface of which was halfway occluded by a monitor, keyboard, and mouse; and a shelf on one wall. Once, before time-sharing, the surface space was enough, because printouts could be spread out on the desk. Now, the computer hardware was too big (the company was at least a decade from making flat panel displays ubiquitous) to fit on the shelf, so a lot of real estate was used on the desk.

Joe sat down, tried to figure out where he stopped the previous day, and began coding his task for a couple of hours. Promptly at 10 a.m ., whether or not they were at a natural stopping place, his row left their cubicles and made their way to the cafeteria. The plant held too many workers for the number of seats in the cafeteria, so the room was time-shared , each area of the plant having strict break and lunch times.

Joe made his way back to his cubicle with a sugar buzz ”not too unpleasant. After scoring a diet soda from a dispensing machine, he found one of the senior engineers in his cubicle. The senior engineer wanted a verbal introduction to the automated test suite. About an hour later, they ended the conversation.

Joe took out some code that was to be reviewed after lunch. He clocked his time, thinking that it was good he had to report how long and not when. About an hour later, a friend from a different project with the same lunch shift came by and they found their way to the cafeteria again for the half-hour break.

Right after lunch, the code review (see Chapter 9, Program Comprehension, Code Inspections, and Refactoring ) was scheduled in the windowless conference room adjacent to his cubicle area. Four persons were present: a moderator, to keep attendees from exchanging blows and keep the meeting moving along; a reader, to paraphrase aloud or read the code verbatim; the developer, who explained obscure sections of the code and recorded defects; and Joe, who, like the others, looked for defects. After all told the moderator how much time they spent preparing for the inspection, the reader began by paraphrasing the first 10 lines of code, and they spent nearly the next two hours working through the logic on their segment, sometimes spiritedly.

When Joe got back to his desk, it was nearly 3:00 p.m ., time for his daily inventory of e-mail. There were only 72 messages today. He was one of the few who checked e-mail as rarely as daily, or sometimes twice daily, the minimum for others. He also turned off the beep when a new message came in. First, he went down the title and return address list looking for obvious spam. He quickly deleted irrelevant mail, pausing to click the REMOVE link if one was present. Then he started down the remaining list of about 50 or so. About half concerned his project, and the others were of general interest or personal contacts. An hour later he had cleared the message queue, something that was rarely done. He figured that if he saw mail only once or twice a day, he would clear his queue and keep nobody waiting too long. Still, he got the occasional mail asking if he had received a message sent two hours earlier.

The last hour and a half of the day he spent going over the code he wrote in the first two hours. He looked again for places to insert comments, and then brought all the other concerned documents up to date, finishing a few minutes past quitting time. He left the cubicle area for the walk to his car, again passing the raucous assembly line, with the second shift now on duty. The Sweathog Stampede, as some called it, of first-shift machinists had already left. The departure of the engineers was timed to avoid the big exchange. As Joe unlocked his car, he had already filed work away in the back of his mind.

  1. List all the human contacts Joe had during his day. How much time did he spend on them versus working alone on his project?

  2. What proportion of the human contacts had to do with the project?

  3. Would you like to work at the same company as Joe? Why or why not?