Archive for the ‘PairProgramming’ Category

Last week I published an Agile Thursday Quiz about PairProgramming.
(You can found previous quizes at ATQ )

The quiz was created by Sallyann and you can find her answers below.

1. Which of the following has Pair Programming as a core practice?
b. Extreme Programming. Although pairing is useful in any other the others is it only described as a Core Practice in XP.

2. When pair programming, the most regularly used names to distinguishing which person is currently typing are: 
c. Driver and Navigator. Some say the Driver types, while the navigator looks at the broader problem / real world level. I (Sallyann) dispute this though

3. In Jim Coplien and Neil Harrison’s book “Organisational Patterns”, pair programming is referred to as:
c. Developing in pairs. Illustrated with a lovely ‘Two Amigos’ picture.

4. Pair programming has not been shown to have a helpful effect on:
b. Pair programming has actually been shown to lengthen the amount of effort required to develop a feature, however this is considered a cheap price to pay for the eventual time saved through not having to fix the extra defects found in solo-developed code.

Do you want to learn more about PairProgramming?

Brian Marick wrote a nice post about pairing with Corey Haines 
A Pair Programming Experience by Randal Jenson
You might want to spend a while on Wikiwiki: (If you have never been to the first wiki, make sure you take some time to look at everything written here.)

Research

Remote pairing: 

Books:

You can also find these links and other on my delicious page for PairProgramming

Another Thursday that we have an ATQ. This time written by Sallyann Freudenberg. Some years ago, Sallyann has done reasearch around PairProgramming. Recently she started to reblog her research.
As a kind of publicity for her blog, I asked her, if she wanted to create an ATQ about PrairProgramming.
I hope you enjoy it, please write your answer in the comments.

1. Which of the following has Pair Programming as a core practice?

A) Scrum
B) Extreme Programming
C) Kanban
D) DSDM
E) Crystal Clear

2. When pair programming, the most regularly used names to distinguishing which person is currently typing are: 

A) Parent and child
B) Master and Servant
C) Driver and Navigator
D) Coder and Designer
E) Teacher and Student

3. In Jim Coplien and Neil Harrison’s book “Organisational Patterns”, pair programming is referred to as:

A) Coding in Tandem
B) Delivering as a Duo
C) Developing in Pairs
D) Coding in Couples
E) Working in Twos

 

4. Pair programming has not been shown to have a helpful effect on:

A) The quality of delivered features.
B) The amount of effort (man-hours) it takes to develop a feature.
C) Knowledge-sharing.
D) Peripheral awareness via overhearing.
E) Problem-solving.

The next (already nr 11) person in the “Who isserie is Mary Poppendieck. I have seen Mary talk already in a few occasions. I remember posting a video of a talk she did on my blog, but even I can’t find it back so I guess it must have been in my dreams. (I hope Tom won’t be mad at me that I dream of Mary ;- ) )

On a more serious base: I really met Mary for the first time at Agile Train were I enjoyed discussing with her. I was scheduled to follow her class at AgileEE 2009, but that was cancelled due to Toms illness. What amazes me most about Tom & Mary is that they are now talking all over the world talking about lean & agile in what I would call their second career.

I think many agilists consider Mary & Tom among the top agilists, and yet they stay so accessible. The last x years I have send mails to both of them on small and large questions and I always get an answer, and usually one that blows me away. And Tom deserves a mention as probably the agilist that read most books. When I walked around with my booklist at agile 2010 I think Tom was the only person who know and probably had read all books. Impressed. Oh and Tom is the un-official (or should I say official) photographer of all the agile conferences he goes to. And he was so nice to let me use one of his pictures for our New years video of 2009. (Did I mention already they are nice people? )

Brust-FamilyWhat is something people usually don’t know about you but has influenced you in who you are?

 

The biggest influence on me was my mother, a math teacher who had wanted to be a doctor.  Her father – an eminent physician – told her she should become a nurse, because that’s what girls did.  Well, that was all she needed to decide that she was NOT going to be a nurse. She chose the hardest subject she could – math – and got a Master’s degree. (I also have a Master’s degree in Math.) My mother was 29 when she married; never one to do things half way, she had 11 children in 15 years. The picture (above) is my family when I was 13. My mother often talked about how she was going to write a book, and perhaps this is what kindled my interest in writing. She used to type essays for me, until I learned to type them myself. I got my first job as a programmer in part because I could type!

 

If you would not have been in IT, what would have become of you?

I was thinking of becoming a math teacher, but then I decided that teaching was the thing girls were expected to do, so being my mother’s daughter, I could hardly do that. I considered becoming an actuary, because it required a lot of math.  But there was this new thing – programming computers – that intrigued me. So I took the road less traveled, and it turned out to be a good road. But I’m sure the other roads would have been good roads also – you always take yourself with you wherever you go.

 

What is your biggest challenge and why is it a good thing for you?

The biggest challenge for a writer/speaker is to constantly come up with new ideas. To do this, Tom and I travel a lot and learn from the many people we interact with. Tom is a voracious reader, so he is a constant source of new ideas. Often I have to propose a topic for a conference talk months in advance, so I try to pick a topic which I think is becoming important, intending to learn more about it in the next few months. The challenge is to have something meaningful to say about the topic by the time the conference arrives.  Sometimes I look at the abstract I wrote months earlier as I prepare for a talk and say to myself “What was I thinking?” But I never change the topic; instead I try to imagine why someone would come to the talk and figure out what they are interested in hearing. Some of my best ideas have come to me as I developed a particularly challenging talk.

 

What drives you ?

I write because I would like to do a little bit toward making it possible for people who develop software to love their job.  I always loved programming, and when I returned to the world of software development in 1999, I was appalled to find that the job has become largely one of drudgery instead of passion. This felt wrong to me.

 

What is your biggest achievement?

During the 1990’s I worked on developing new products based on polymers. When I left 3M in 1999, I returned to the world of software development and encountered terms I had never heard of before: “waterfall” – “maturity levels” – “earned value” – terms like that. These concepts did not make sense to me, so I decided to write a book that challenged the prevailing thinking about software development. Along with the hard work and efforts of many others, I think the book and its sequels have helped to change the way software development is thought about and managed today.

 

What is the last book you have read?

I’m currently reading a couple of books:

In the Garden of Beasts” by Erik Larson, about Berlin in 1933.

Specification by Example” by Gojko Adzic

The Clean Coder” by Bob Martin

Probably my favorite, however, is Henrik Kniberg’s mini-book “Lean from the Trenches”

 

What question do you think I should also ask and what is the answer?

You should definitely ask about Tom.

Tom-10

When I left 3M I had five years left before retirement income started, so I needed a way to make some money. I decided to go back into software not because I had done it before, but because Tom was a software architect in a consulting firm. He had been reading widely about the latest developments in the field and suggested that it held a lot of opportunity in a rapidly growing market. The first talk I gave – on object-oriented technology – was one Tom had prepared for a local group, but he had to travel, so I gave it for him. I had to learn a lot about object-oriented technology in a very short time! When Tom first brought home Kent Beck’sXP Explained,” I was annoyed by some of the ideas – especially pair programming. It took a long time for me to buy into TDD, and in fact, the biggest failing in my first book was that I had not yet completely bought into the idea, despite Tom’s best efforts to convince me. Tom is not so much a writer as he is a photographer and physicist (in that order), and that makes him a very deliberate thinker with an amazing ability to analyze situations and find patterns. He is probably more of a co-author than most, because he co-authored all of the ideas in our books. And he is undoubtedly the best book reviewer in the business.

 

Who do you think I should ask next?

Update: if you liked this, please buy the “Who is agile” book. It contains similar answers from other agilists. And Mary’s answer to the question: What is your favorite leisure activity?

Last version of my PairProgramming is like sex presentation.

This presentation was first created as a presentation for students. As they loved the title I kept it. As I don’t want to offend people, the second slide of this presentation I ask the people why they think PairProgramming is like sex.

This is what today’s participants came up with:

  • It’s more fun with 2 (more people)
  • Share feelings warm & cuddle
  • Build knowledge really fast
  • Can make you sick if not done right
  • Discuss what works/what not
  • 2 have more idea’s
  • Requires mutual consent to do it

One thing I added:

You can’t learn it from a book.

You can read the AHA wall on flickr (check for the tags to read the post it’s)

Questions that came up during the course :

  • Can you PP over skype?
  • Do we need somebody to ‘supervise’ the way you do PP ? (Esp in the beginning?)
  • What if there’s no option posibility to use some OS/Computer
  • What to do if there is a conflict between the two, a discussion??
  • It can’t work with any type of character, how do you manage?
  • What if one uses AZERTY and another one QWERTY keyboard?
  • Doesn’t it make it harder to plan a project or resources people (Yves reframed resources to people)
  • Can someone do PP with 1 person and PP for something else with another person?
  • Can you get into “the zone” when you’re PP-ing?
  • Does Promiscuous Pairing kill the flow? (30′ interupts)
  • Why not use PP all of the time?
  • PP= More talking
    =more annoying for other nearby teams?
  • Do you plan who is going to do what or how do you choose whose turn it is?
  • Can you do PP with > 2 people?
  • How do you handle the “Don’t care”?

I answered all these questions during the course, I’m interested to hear your answer.

This week I got a phone call from a local school. They had an international ICT Day, and one of their speakers cancelled. They wanted to know if I could take over a talk on PairProgramming. With a little tweeking in my agenda, that was no problem.

I have been talking a lot about PairProgramming, mostly as part of other courses.

I saw two challenges for this course:

  1. Keeping students interested is hard.
  2. Talking about PairProgramming is like SEX. You can’t learn SEX from a book, you have to experience it to understand it.

So I created a slidedeck in PresentationZen style, that should help for one.

I requested (and got) another hour, where the students will do Programming in Pair. (should help with challenge 2)

(Oh yes I know books about sex can help you to become a better lover, that is also why I do talk about PairProgramming)

Update: I don’t want to offend people with this title. I was looking for a catchy title to use with students. I’m one of the people fighting hard to have more women in the IT world. This Presentation is in no way ment to make fun of women or see them sex objects. Sorry if I make people now think about sex when talking about PairProgramming.

Technorati Tags: PairProgramming,SEX,Books

I know some senior developers that don’t like PairProgram with juniors as they slow them down. First of all, the speed of the team (and thus the velocity of the team) is determent by the slowest on the team, not by the fastest.
First reaction could be: let’s throw out these juniors.
At first sight it might be good to only hire smart, seniors developers. We can advance much quicker. Well not exactly true. A lot of senior people have a hard time asking for help. I prefer to bring the juniors up to speed.

A lot of juniors feel overwhelmed by their senior colleagues. I think a junior has an incredible advantage over most seniors people. They have the advantage of being excused not to know. I blogged before about the TMN acronym.  The questions a junior asks go way beyond this.

And a lot of times some senior’s are happy that someone dares to ask that question.

Unfortunately by the time a junior does not feel overwhelmed anymore,  they might have lost that advantage, and now they might feel that they can no longer ask that question. When I have a junior joining a team I’m coaching, I make sure I explain them that it is OK to ask questions even (or should I say especially) stupid ones. I ‘m saying that I expect it, and that it is part of their job as a junior to ask questions.

I love diversity in my teams. Having a junior that dares to ask stupid questions brings the whole team to a higher level.

The better the juniors on my team do this, the more the seniors start doing this as well and the easier my job as a coach gets. And the faster I can leave this team.