Everything I Need to Know About Pair Programming Etiquette, I Learned From My 4 Year Old
August 5th, 2008
The folks at Integrum recently had a discussion about avoiding distractions while pair programming. We all know how many distractions there are in today’s world, everything from email to blogs to Twitter. It’s hard to not get distracted by all of these things, as they have become so prevalent in our lives. We want to be in the know and there are many tools out there that let us do just that. They constantly run in the background or popup, they email us, they text message us, they demand our attention…
Look at me, I’m a tweet!!
No, I’m working.
But I’m a direct message from iJustine!
Well… okay, just this once!
But it’s not once, it’s all the time… constantly interrupting (seriously Justine, stop, I’m not going to respond). When someone is paying you for your time, they don’t want to be competing with all these distractions.
So what’s appropriate etiquette for a person working in a pair programming environment? I asked my 4 year old over dinner to see what he thought.
The Interview
me. Do you know what it means to work in a pair?
ethan. When 2 people are working together.
me. Good. What about focus? Do you know what that means?
ethan. Stay on track. Concentrate. Keep an eye on what you’re doing.
me. How about respect, do you know what that means?
ethan. Be nice?
me. Okay good, let’s get started.
me. When you’re working with someone as a pair is it okay to check your email, instant messenger or twitter?
ethan. No.
me. Why is it not okay?
ethan. Cause we might lose focus.
me. If we were working together and I was having trouble solving a problem, how could you help me?
ethan. I could tell you how to do it.
me. What if you didn’t know how to do it?
ethan. We could think of an idea and do it.
me. Should we think by ourselves?
ethan. No we should talk and hear… and choose what we want to do.
me. If were working together and I get distracted, what should you do?
ethan. Daddy, what are you doing? Please pay attention. You made me distracted and I don’t know what I was working on.
Conclusion
This interview proves beyond a doubt that my 4 year old knows what it takes to work in a pair programming environment. He was polite, but forceful in his remonstration of my lack of focus. His answers were not overly complex, he kept it simple. Which is as it should be since it really isn’t all that complex – there’s a reason the acronym KISS exists.
So there you have it, think like a 4 year old and you’ll do just fine in any pair programming environment :)
Getting Opinionated
June 16th, 2007
Lately I’ve been wondering what the hell happened to the old me. Something has insinuated itself into my being and changed me; changed the way I think and feel. I don’t want to sound too cliché here, but it all started 10 months ago when I began learning Ruby on Rails.
At that time, I was fresh out of a master’s program and the defense world, having previously worked for Raytheon Company. I was purposefully unemployed (gasp!) and I was intent on learning Rails while trying to create something useful. This was the direction I wanted to take my career. I didn’t want a stodgy 40-year stint at some boring company. I wanted every day to be fun, challenging, exciting… uh… then I had to get a job, cause a savings account doesn’t last forever.
When I re-entered the workforce I didn’t realize how much my personality had evolved. Working with Ruby on Rails had reawakened a passion for software that had been dormant for several years. That same passion enabled me to, once again, care. At first it was related to programming, but soon it was expanding into other areas of my life. I was starting to care, to have opinions, and I wanted to discuss those opinions with people.
You’d be surprised (or not) by how many people just don’t care – about anything. I don’t think I was quite to this point, but there were a lot of things I ignored. People have told me that my new communication style is “direct” or “blunt”, but I don’t look at it that way. I am simply expressing my opinion openly and honestly. Discuss it, refute it, agree with it, whatever… You listen to mine and I’ll listen to yours. Maybe we’ll agree and maybe we won’t, but at least we’re communicating.
Several people I’ve talked with recently seem to have a hard time with that communication style. They either don’t know what to say or they get defensive and/or irate. This happened recently and I couldn’t help but think of a line from the movie Jerry Maguire, where Cuba Gooding Jr. says something like “You’re getting mad and I think we’re just starting to talk.” I thought that line was just humorous before, but I believe it means when people are emotionally invested in the dialogue they begin to care.
I have also become a little more brazen. I’m not as reserved when expressing a more radical opinion and I am more likely to call bullshit when I see it. Yet another thing some people don’t appreciate… Imagine, though, if we were able to actually cut through the BS and talk openly and honestly about things. Think about that the next time you’re buying a car, negotiating a salary, or fighting with a loved one. A pipe dream? Maybe…
Joining the Phoenix Developer Community
June 7th, 2007
When I came back from RailsConf I realized how poor my local participation has been. I’ve been in Phoenix for almost a year and I haven’t been to a single local group meeting. Shame on me :(.
But that all changed on Tuesday when I attended the Refresh Phoenix meeting at Inza Coffee in Scottsdale. The Refresh group is trying to create a “strong community of designers and developers.” Cool!
I was surprised by the turn out (in a good way) – there were about 50 people there. Of the people I talked with, most were designers. They had about six demos from various groups on applications and ideas they were working on. My favorite was probably JumpBox because they demoed an app they created to help with setting up SVN and Trac in one fell swoop. In fact, they did it live during the demo. They have some other ones you can check out on their applications page.
It was a pretty good gathering of folks, but people just split afterwards. I wanted to meet more locals and start forming a network, but was only able to talk with a few people. Rumor has it that some people hit Rock Bottom after the meeting maybe next time.
I’m also going to attend the Phoenix Ruby User Group and AZ on Rails events this month. I’m really interested in meeting people in the Phoenix area, so look me up if you go to either of those.
Business Culture
June 2nd, 2007
As I read my blog feeds, I will routinely save posts that I don’t have time to read thoroughly, but would like to in the future. Then I come back later (sometimes much later) and read them.
I just came across an article by Dick Costolo titled simply Company Culture. He briefly examines why establishing a strong culture is important to a company. He states that without a strong culture you might get some of the following:
- Bureaucracy. Without an implicit understanding of how things work around here, everything has to be explicitly articulated, documented, and instructed.
- Office politics. Companies with a very clear vibe or feel to them find that politics don’t encroach on the landscape as quickly as companies without a distinct culture. Probably because people start sniping or backbiting when uncertainty and policy are the order of the day.
He also talks about companies having a fake culture where leadership is trying to force a sense of spirit and excitement into the environment and everybody can sense that it’s forced.
When it is just one or two people defining the culture for a very small team, things may be manageable. When you have possibly hundreds of leaders in the company espousing their take on the culture it is a lot less manageable. This is where politics and bureaucracy rear their ugly heads.
What about the situation where the company actually does have a strong culture, but the culture is not changing fast enough (or at all) and therefore, cannot retain top talent? A culture that may ultimately be self-destructive? For example, I believe that Google may be experience this as they struggle with becoming a large corporation. I have read many articles claiming that entrepreneurial types are departing Google because of cultural differences. Is this just the restless nature of the entrepreneur or an indication of a weakening culture?
Personally, I try to avoid bureaucracy. As Grace Hopper said it’s easier to ask forgiveness than it is to get permission.î I recently learned this the hard way and I won’t make that mistake again anytime soon. As far as politics goes, I generally give it the finger and refuse to play. This can be hard sometimes when you feel your job may hinge on your ability to politically maneuver within the organization. I still think it is better to speak your mind, do what you feel is right, and not back down without a good reason.
Vision
December 20th, 2006
When I was completing my Master’s in Computer Science I took several classes on Software Engineering. Software Engineering deals mostly with the lifecycle of software from conception through maintenance. It is different from core CS classes because it does not focus on the software itself. Instead, it focuses on everything that goes into and around the software to make the project successful. I took classes on software process, maintenance, standards, testing, etc. All of this was in addition to my core CS classes on operating systems, networking, graphics, etc.
I found that I already knew a lot of what was being taught in those classes through my experience at my former companies: Project Technology, Inc. (acquired by Mentor Graphics) and Raytheon Company. Some of it was also common sense. However, common sense is not always common practice.
One of the things that I thought I understood well was the concept of vision. Communicating your idea about a product as a whole; what it is and what it will become. As you carve up your vision into manageable chunks, or projects, you define the project scope. That is, what portion of the overall vision is addressed by this particular project. Vision shouldn’t really change much, whereas scope may be more fluid and adjust as needed.
So now that I am shifting into the entrepreneur’s seat, I see parallels with this line of thinking and the business entity itself. I realize that not only do I have a vision for this particular product (a niche social networking website), but I have begun to shape a vision for the company that will create the product. This vision includes ethical and moral codes of conduct that are modeled after my own personal thoughts and feelings on the subjects. I have thought about how the business entity should conduct itself when dealing with members, clients, etc. I have also thought about employees and the culture I would like to see in the company.
All of these thoughts happened subconsciously and then bubbled up to my conscious thought. Maybe it is all coming about because of my pursuit of the business side of the company in recent days. Regardless, it is comforting to know that my brain has already thought about and formulated an opinion on these topics that I can use as the basis for building a solid company.
Absolutes
December 12th, 2006
I talked with a friend recently about the use of absolutes in his vocabulary (e.g., never, always, impossible). He is trying to reduce, or possibly eliminate them altogether. I thought this was interesting because I have also thought about this and try not to use these words.
Absolutes are often associated with negative uses. For instance, “I’ll never do that” or “That is impossible” or ” I always screw it up”. We may not realize it but these thoughts and/or phrases could have a psychological effect on our self-esteem and actually cause what we said to become true. If you think something is impossible or that you will screw it up, then you may not try in the first place.
I believe this kind of self-reflection is very beneficial to an individual. Why don’t you give it a try? Let me know how it goes.
Apologies
December 12th, 2006
I was thinking recently about apologizing. No, not making an apology, but the act of saying “I’m sorry”. I asked myself how many times a day I apologize and are my apologies real or reflexive? The answer I came up with was probably what cause my subconscious to elevate this thought in the first place.
I found that a majority of apologies during a given day were reflexive. That is, I say I’m sorry, but I’m not really. I just say it as a reflexive response to something. This means that most of my apologies do not carry any weight, which further reduces the weight of real apologies. I also found that I will turn to an apology for very small, trivial things.
All this thinking and reflecting has caused me to make a preemptive new year’s resolution: Acknowledge my mistake and turn apologies into promises of improvement.
As a small example, I have the bad habit of leaving my dirty dishes next to the sink instead of rinsing them and putting them in the dishwasher. My wife gets annoyed and points it out over and over. Normally, I would say “Sorry” and do what I was supposed to do… then I would repeat next time. This apology and action were reflexive.
With this new resolution, I would need to consciously think about not apologizing, but instead examine my actions and focus on how I could improve myself in the future. So in the situation above, instead of apologizing I might say, “You’re right, that is annoying. I will try harder to remember to rinse and put away my dishes.”
This also got me thinking about other reflexive phrases I use or that people use on me. Here are a few that I came up with. Add your own in the comments.
- How are you?
- What have you been up to?
- It was nice meeting you[, too].
Discrimination Based on Appearance
November 21st, 2006
I had a conversation recently about discriminating against someone based on their appearance. Appearance, in this case, being controllable outward appearance such as body art, hairstyles, clothing, etc. My stance was that discrimination is wrong in all its forms, should not be allowed in the workplace, and each person should strive to ignore appearance when dealing with another person. The opposition stated that it was their right as a business owner to discriminate based on appearance.
I think that as long as a person is performing their work at a satisfactory level, then there is no problem. My sister-in-law is forced to cover her tattoos at her workplace, either with clothing or makeup. Why? As if nobody has seen a tattoo before or most of the people she deals with don’t have tattoos. Personally, I don’t care if she exposes them at work, nor do I care if other people have visible tattoos, piercings, or uncommon hair-styles.
Some discrimination is banned through law, so I asked the people I was debating why it was okay to discriminate for certain things and not others. They said those protections were for things you could not control. Yet there is one protection in particular that you can control (although this might be debatable too), religion. In my opinion, religion is a choice, just as the clothes you wear, your hairstyle, tattoos, piercings, etc. are all choices. In this instance, a person’s choice is protected from discrimination by law.
It’s a sad fact that discrimination is alive and well in many forms and will probably never go away. Humans are too visually inclined to ignore outward appearance and, therefore, anything that is different is caught by the human eye. I don’t think laws can help except as a reactive measure to discrimination. It is not possible to introduce a law and then have everyone just stop discriminating. It is a more deeply rooted problem that cannot be washed away in such a short time.
A little bit of background about where I am coming from in this debate. At my previous employer, I was a member of their Diversity Council…yes, it was a large enough company to have an employee-run diversity group. We were very active in promoting diversity in the workplace. This extended to more than just race and gender, as is so commonly thought of when speaking of diversity. Our goal was to open the eyes of the employees to the plethora of differences in humanity – and there are many. These differences are what make humans so unique and wonderful. This experience also helped opened my own eyes, or rather, helped shut them. It will probably be a lifelong struggle for me, but it is a struggle I look forward to. When you cannot see a person’s differences, only then are you truly aware.