Coding Environment

Borrowed from Code Institute

As mentioned in previous blog posts (here and here), I’ve been reading from Kent Beck’s “Extreme Programming Explained.” Sure, he talks about how to write your code (with a simple design and many tests, adhering to code standards, etc.), but there are so many environmental factors to consider when writing code.

40-Hour Work Week

For instance, working a 40-hour week and no more beyond that. A couple of years ago, I happily worked well beyond 40 hours. I lived and ran errands close enough to work that I thought it was okay to stop by the office and knock off some things in my to-do list. I distinctly remember meeting a man (who would later become my boyfriend) on a Saturday and then leaving to the office afterward. He was shell-shocked that I would do such a thing. Afterward, another job expected its employees to stay beyond the conventional 40 hours. Months into working there, my boss expressed that we should work maybe 60 hours/week. I was the shell-shocked one this time. My job was over an hour away by train and there were more than a handful of times when I left late at night (e.g. 9pm) and the rare times when I had to leave at 4am. Needless to say, I didn’t feel as if it was a particularly healthy work environment.

I’ve come to realize that working more than 40 hours, especially without overtime compensation, is a fruitless effort. In college, I overextended myself to the point where stressed-induced nausea and vomiting was a daily occurrence. I didn’t exercise. I didn’t eat healthily. I didn’t even have time for cultivating friendship. There is value in periods of rest and leisure. Being well-rested allows you to take your mind away from a problem to be able to look at something with fresh eyes. As someone whose family can attest to my diligence (full disclosure: I refused to go to Disneyland as a kid because I had homework to do), I value play a lot more after experiencing the downsides of too much work.

Pair Programming

Secondly, working with a pair, which I’ve come to value. Working with a fellow apprentice on a Scala project helped open my eyes to different ways of writing code. We worked through decisions around naming conventions and design. We ping-pong paired, taking turns to write tests and getting them to pass. We had to talk through issues to gain better understanding. We took turns being the one to drive (being the one at the keyboard) and the one to navigate (being the one who is thinking more strategically, at the larger picture). It still makes me uncomfortable to pair, because I am so self-aware of how I may be perceived (e.g. still not very efficient at Vim) but I’m working through it.

For the next four weeks, I will be spending time with software crafters and pair programming. The end of my apprenticeship is signified by a two-week pairing tour, in which I pair with a single person all day. But I get the opportunity to have two weeks to pair, to experience a day in the life of a crafter, participate in stand-ups/IPMs/other meetings, etc. Should be interesting!

Facilities

I was surprised, but still delighted, that Beck wrote about one’s workspace. This is extremely important to me. I am one of those people who can work really well at home, but requires my apartment to be tidy (it usually always is) and my desk to be cleared (of course). I usually never do work at a cafe because there are too many environmental distractions, especially when considering the need to buy a beverage (which one?), find an outlet, use the restroom, have someone “watch” my belongings while I use the restroom. There’s just way too much logistics.

Beck encourages open work layouts. The first time I worked in an open bull-pen was in early 2011 when I was interning at a fairly prestigious (read: academic) D.C. think tank. The bull-pen was reserved for interns. This style of working has become the one consistent factor of all my workplaces. While accidental communication and constant collaboration is great, it still has its setback in terms of productivity for me. This basically sum its up:

In that sense, I’m afraid of what it may be like to work in a client office where there will be tons of people, constantly moving all the time, asking questions, talking. It will be like a cafe! 😱 But still, I do believe that a more open layout is better than enclosed office spaces which prevent opportunities to talk to, plan and troubleshoot with one another.

On the note of facilities, one thing I’ve come to realize is how much I abhor overhead lighting. This is no news to the 8th Light LA office. I can be found sitting wherever overhead light is not present. Natural light is great, but bright lights just do something terrible to me. I feel like I’m in an exam room (either standardized testing or doctor’s office — neither conjures up good memories). As Beck eloquently states:

Taking control of the physical environment sends a powerful message to the team. They are not going to let irrational opposing interests in the organization get in the way of success. Taking control of their physical environment is the first step toward taking control of how they work overall.

I wholeheartedly believe that where you work and how you work affects your work. Beck also states, as if speaking directly to me: “If the lights are too bright, they are taken out.” Will do, Kent Beck, will do.