Tesugen

About roles (Irrational Software)

The first software project I was in is still my biggest. It was what extreme programmers (XP’ers) would call a BDUF project (as in “big design up front”) – we spent about eleven months just analyzing and designing! Much of what I know about building systems came from that project, and primarily from Kjell, who put a lot of faith in me and encouraged me to contribute with my ideas (although the discussions became very heated from time to time) even though I was a newbie.

I’ve thought about the roles of us who were involved. We were four people doing the analysis and design: Kjell, Janne-Berit, Ørjan, and me. Kjell’s role was the experienced designer, who contributed with own ideas and criticized ideas from other people – based on what his experience told him.

Despite this being my first real project (I had been a solo programmer at a small company for a few years), the environment and the people made me feel confident enough to express my opinions, come with ideas and criticize other people’s ideas. I think I was quite creative. I came up with lots of ideas, of which many were rejected by the others, but some of them I felt extremely confident about and they made the final system even though the others were doubtful initially.

Janne-Berit’s role was the one who knew the requirements to the tiniest detail and could reject or accept the ideas that the others came up with. She might not have contributed with as much ideas, but she was an extremely effective filter for us. When she accepted an idea, we felt confident that it would work.

Unfortunately, Ørjan was overcome with humility because he thought he wasn’t as good as the rest of us. Perhaps it was intimidating that I, being so young, played such a dominating role in the design process. I wish that this hadn’t been the case. He had ideas, but when others questioned them, he withdrew them. Perhaps we should have been more careful with him, but an important part when having design discussions is to toss out ideas and criticize them. It’s not the people having the ideas that are criticized, is the ideas! After a couple of months, he left the project, partly because he felt he couldn’t contribute, but also because he felt bad about only being with his family in Norway in the weekends.

This constellation, with Kjell, Janne-Berit and me was extremely effective. The roles weren’t assigned – they emerged naturally, by accident. I don’t think that you can select people and achieve effective constellations. Or, if you can, it would be done by looking not primarily at the skills of the people, but at things like whether they are open to other people’s ideas, whether they dare to express their ideas and tolerate having them criticized or rejected by the others, etc.

This is something I thought about during an XP interview I was in a couple of days ago, how an “XP dream team” would be selected on these premises, rather than simply gathering the most skilled people you can afford. You want people that respect other people and realize that even an unexperienced person can contribute – not only for pair programming to work, but for the entire process to work.

The above was posted to my personal weblog on May 31, 2002. My name is Peter Lindberg and I am a thirtysomething software developer and dad living in Stockholm, Sweden. Here, you’ll find posts in English and Swedish about whatever happens to interest me for the moment.

Tags:

Related posts:

Posted around the same time:

The seven most recent posts:

  1. Tesugen Replaced (October 7)
  2. My Year of MacBook Troubles (May 16)
  3. Tesugen Turns Five (March 21)
  4. Gustaf Nordenskiöld om keramik kontra kläddesign (December 10, 2006)
  5. Se till att ha två buffertar för oförutsedda utgifter (October 30, 2006)
  6. Bra tips för den som vill börja fondspara (October 7, 2006)
  7. Light-Hearted Parenting Tips (September 16, 2006)
Bloggtoppen.se