Tuesday, December 22, 2009

My perspective from 2009 AYE conference

Wow... what a trip! I enjoyed a truly delicious time at this year AYE conference, and offered afterward myself and my beloved wife a great (way too short) trip through the Arizona state... gorgeous!

I did attend to the full 5-day version: the “pre-conference WarmUp tutorial” on november 8, followed by the standard 3-day conference, and finally ending with the ‘post-conference full-day workshop” on november 12.

In one short sentence, I remember a friendly and fun atmosphere with plenty of focused and brain-intensive conversations (in small groups, triads, or pairs).

I finally got so intellectually exhausted that I unfortunately couldn’t take full advantage of the last day workshop... I guess the continuous english-to-french translation effort partly contributed to this result.

Everyday from 9am to 4:30pm, information was continuously flowing among hosts and attendees. The evenings then were certainly more easy-going and relaxed, but the flow never really stopped... and I definitely liked that!

Extraordinary People

This aspect had already been “advertised” on the conference wiki, and I confirm that the conference acted as a networking booster for me. I definitely thought it would be a positive side effect of this kind of event, but I quickly discovered it was actually one its core properties!

Immediately on my flight from London to Phoenix, I was very lucky to get seated next to the only other conference attendee on the plane, Leonardo Almeida. Naturally I didn’t know, until I decided to continue my progress reading “Secrets Of Consulting” from Jerry Weinberg ; my neighbour suddenly laughed, staring at my book: ”Hey! I bet we’re both heading to the same final destination! You know what? I was precisely thinking about getting my own copy of this book from my bag...”. This coincidence was just crazy! From this moment, we had long and interesting conversations about our respective experiences, concerns, hopes and ultimately our core motivations to come to this conference... This made the flight appear considerably shorter in time, and I think I have won a good brazilian friend.

At the conference itself, I then got acquainted to several other great persons, like Moto San (Japan), Udo (Germany), Tom (Netherlands), Jon (GB), Henrik and Rhaza (Sweden), Gerry (Canada), Eric, Chris, Kurt, Fiona and Marije (US)... I apologize for the persons I didn’t mention. I am very confident some of these relationships will survive the coming years.

Of course, I have to thank very much our hosts: Johanna, Steve, Don, Esther, and Jerry!We (attendees) were honored and thrilled to chat privately with you guys... I am looking forward to meeting you again soon.
Another unexpected and awesome extra was this dinner with Jerry on monday: he expressed at his first session the desire to share an evening with up to 5 conference attendees he didn’t already know, in a nearby restaurant. I eagerly jumped on this unique occasion! The subjects of conversation were varied (for a good part related to Software Engineering Management of course) ; we all knew the extraordinary author, and happily discovered Jerry, the lively person. Check out this page for more details on this dinner.

What did I get from the Sessions?

I will try to summarize hereafter what I have learned from the sessions I attended. For the most part, I won’t narrate the sessions themselves, but rather present a snippet of the information I extracted from them. It is important though to remember I didn’t suffer any long and boring presentations, but participated in activities for illustrating theories, and interactive discussions. I found it essential for all the core wisdom to sink in. Consider the following lines as a vague foretaste of the true conference content, and don’t hesitate to apply if you get the opportunity.

I already had read about a large part of the presented concepts. For these, I revised, but more importantly, the conference made me reflect upon my basics, and develop some new perspectives.

Disclaimer: this kind of conference can’t be objectively summarized in an article. On top of that, I have already forgotten plenty of details, so I will share only those that I remember at the time I am writing this post.

Day 1 - WarmUp Tutorial

The purpose of this first day was to learn or revise a vocabulary to be shared for the rest of the conference (like MBTI types, Congruence, and a few of Virgina Satir’s concepts and techniques)

The small audience (about 25 participants) helped me getting introduced gently with the event, in a very relaxed atmosphere. Steve an Don did a great job at leading the day!

Workshop n°1 - we formed triads, interview each others and each drew important aspects of his/her life (only what we felt was interesting sharing of course) on flipchart pages, and presented it to the rest of the group in a 1 minute time box

What did I notice?
- Truly International, worldwide conference
- Different backgrounds
- Mostly Agile-Oriented software people (but not all!)
- Jerry Weinberg, regularly presented as the initial motivation for attending
- Common genuine curiosity for teh science of people interactions

What surprised me?
I realized that many came not only for practical matters in their professional assignments, but more generally to improve their lifes, help reframe their day-to-day issues in a larger picture and get a deeper understanding on how to handle them.

Workshop n°2 - The Satir Interaction Model

Human communication is not reduced to the audible and visible exchanges (words, body language), far from it... although this explicit part shouldn’t be ignored, it represents only a fraction of a complex and invisible process. This lack of understanding explains why we all have experienced or witnessed people interactions going inexplicably awry. Improving the quality of our communications requires to understand better these inner dynamics.

Virginia Satir, a renowned family therapist, has developed a very powerful, yet simple, theory involving a 7 steps process : Sensory Input, Interpretation, Feelings, Feelings about the Feelings, Defenses, Rules for Commenting, Observable Outcome.

For helping non specialists like us at least remember a few most remarkable phases, Jerry Weinberg simplified the model into a 4 steps process: Intake, Meaning, Significance, and Response.

Of course, both the reality is still more complex ; 2 or more steps can overlap in time, thoughts can loop several times before finally issuing a response... The value of these theories is the same as with all thories: to help us getting a better grasp on an infinite complexity.

If you’re new to the theory or want to revise, I suggest you take a look at this nice article from Joe Rainsburger for an introduction.

Jerry has presented those concepts in many forms in several of his books (for instance in Chapter 10 of “Becoming A Technical Leader”).

Virginia Satir has also written a book dedicated to the topic: “The Satir Model: Family Therapy and Beyond”. (I haven’t read it, but it is said to be worth reading)

Workshop n°3 - MBTI Personality Type Preferences

The Myers-Briggs Type Indicator also improves our ability to communicate and understand each others. This stands as one among several models attempting to explain why people don’t have the same reactions in similar situations, and the great value this variety can represent. It is crucial to remember this tool should never be used as a means for classifying or appraising people: this would not only be unethical, but also completely senseless.

Basically, the MBTI distinguishes 4 axes for describing personality types:

1- Where do you get your Energy from? Extravert (External) / Introvert (Internal)
2- How do you extract Information from the world? Sensitive (Facts) / iNtuitive (Possibilities)
3- How do you take Decision? Feeling (Warmth) / Thinking (Logic)
4- How do you prefer to act (Lifestyle)? Judging (Organisation) / Perceiving (Adaptability)

There are numerous articles, books and online tests on the subject, so I won’t delve into details. This is really worth the discovery though, both for personal introspection and as a team building tool.

Workshop n°4 - MBTI Temperaments

The notion of ‘Temperament’ looks at MBTI personality types from a different, reduced scope, perspective:

- SJ types are called Organizers, or Duty Seekers
- SP types are called Troubleshooters, or Action Seekers
- NF types are called Catalysts, or Ideal Seekers
- NT types are called Visionaries, or Knowledge Seekers

When interacting with your manager or a difficult colleague, you should attempt to guess their temperament and then address accordingly what you deduce could be their true concerns.
More details can for instance be found on the Web, or in Weinberg’s 3rd QSM volume: “Congruent Action”.

Workshop n°5 - Temperature Reading

Temperature reading is a technique for uncovering the state of group. A facilitator leads the discovery, and asks 5 questions in the following sequence:

1- Appreciations (positive aspect of past experiences between members)
2- New Information: any news someone might want to share with the rest of the group?
3- Puzzles: anything that puzzles one or more members of the group?
4- Complaint With Recommendation: any complaint to formulate, that you have a suggestion for? (“I don’t like this. I recommend that for fixing it.”)
5- Hopes and Wishes : what would you like to have happen in the future?

If the facilitator makes sure everyone has a chance to speak up for each question, this technique provides an explicit framework for the team to openly share information and concerns and cool down emotionally, before delving in the meeting agenda itself.

I strongly believe this activity can deliver great value when applied at the beginning of every team iteration meeting (providing that the team members buy in with the idea of this kind of ritual).

Workshop n°6 - Congruence

I like to look at congruence as both a source and a consequence of self-esteem. Congruence is a fundamental asset to effectively deal with any situation. It fosters genuine and healthy human relationships.

The first challenge is to be congruent with yourself: make your thoughts, your words, your feelings and your acts all aligned. For instance if you feel angry, appear so and say so! For all sorts of reasons, we can often be very prompt at disguising or distorting our genuine feelings. This attitude invariably acts as an energy drainer... I guess as a first step out we could all try to recognize when we fall in such situations (more difficult than it looks!).

The second challenge is to be congruent with the situation. This roughly means:
- be aware of the variety of potential actions (always try hard to find 3) in front of a given situation,
- don’t get blinded by the system,
- think ‘out of the box’!

Yet another perspective of behaving congruently is to consider and balance the requirements of 3 distinct components: Self, Other and Context.

Most typical incongruent behaviors found in nature are:
- Blaming (ignoring Other)
- Placating (ignoring Self)
- Loving / Hating (ignoring Context)
- Super Reasonable (Context only)
- Irrelevant (ignoring everything!)

This is a wide subject, explored in depth in Jerry’s book “Congruent Action” (vol 3 of the QSM series).


Day 2 Morning - Managing Change (Steve Smith)

Every person, every organization has to deal with change. Virginia Satir has developed a model for helping people better handle changes in their lives. This session consisted in a game, illustrating the Satir Change Model.

The change process can consistently be decomposed into 5 steps:
- Late Status Quo (how things were before)
- Resistance to a new, foreign element (sudden external pressure, new competitor...)
- Chaos (people have accepted the need for change, but can’t organize effectively)
- Integration (people have discovered a “Transforming Idea”, that will help organize)
- New Status Quo (the transforming idea has been turned into a new working standard)

You can find more material in Steve’s excellent article on this topic.

Day 2 Afternoon - Saying No that really means No (Jerry Weinberg)

How difficult it is (at least for me) to turn down an offer, reject a proposal, or refuse to take one more “very urgent” task in charge!

Jerry alloted the afternoon for that thorny, though universal, subject. Here are some interesting quotes I extracted from that session:
When asked a question, never begin your answer by arguing. Choose between
- just tell your point,
- don’t close the door and ask for more time.
Know your bottomline BEFORE your negotiation meetings.
Don’t necessarily engage, but take it as a joke “ (grinning) Why not? All is virtually possible!”
If you’re the field expert and you know something’s not feasible, make this clear and stick to your point!
Make a rule of refusing any deal if someone pushes you (like “You have to decide NOW!”, “There’s no choice!”)
Deal directly and only with the person in charge (that is in a sufficient position of power)
Don’t set a trap for yourself (you want to say No, but to be kind you say you’re OK if the other is ready to change something...)
Check people around you to see if they can say No (ask unreasonable questions) => good test for trustworthiness

Day 3 Morning - Make the Changes you want: Finding Organizational Levers (Esther Derby)

When you begin to notice that your team or your organization develop bad habits, what strategy can you develop to produce effective countermeasures?

According to Esther, 3 main factors drive patterns* in organizations: Containers, Differences and Exchanges. (definition of pattern in this context is “repeated behavior that has meaning over time”)

Containers refer to anything that hold focus. There are 3 main categories of containers
=> physical containers, like buildings, floors, rooms, clusters of desks, cubicles, but also VCS repository, bug tracking system...
=> organizational, like functional groups (developers/DBAs/testers/marketing/support...)
=> psychological, like social groups, cultural affiliation

Differences in gender, age, proximity, inclination, sense of urgency... can all trigger behaviours and distort working relationships in human systems.

Exchanges occur between containers AND within containers, of material and immaterial goods (resources, communication, energy, knowledge, ideas...)

The technique begins with listing those 3 kinds of factors in your current environment. Then, you’re ready for identifying what actions you should take for stopping the development of the bad pattern, and replace it with a better one:
- think about which factors or combination of factors in your list is likey to reinforce the unproductive pattern, and look for missing ones,
- could you add a new container or remove another to help?
- look at the timing of the exchanges: is there something you should change here?
- ...

Day 3 Afternoon - Beyond the Org Chart Illusion (Jerry Weinberg)

Clear disctinction between “Process Description” (diagrams, that you happen from time to time to follow - if ever) and Process (actual actions performed)

This session was a time for picturing our perspective of our working organization on flipchart pages, following a Virginia Satir technique for family therapy. Weinberg guided us step by step in the process, and finally drove a group conversation on two pictures from 2 persons from the same organisation (the drawings were surprisingly very different!).

This technique pictures on a workable map how you perceive your working place. From there, you can think more comfortably about the nature and origins of your problems, notice important interactions and systems, and look for what to do next. This was fun and insightful!

Day 4 Morning - Structuring your Conversations (Johanna Rothman)

Unless you’re an ermit, you hold conversations many times in a day, with your spouse, your children, your colleagues, your managers, your clients, your friends, and even strangers on the street...
When it comes to professional life, we may have to convince, to negotiate, to brainstorm or just to gather data.

The quality of the gathered data largely depends on our ability to build a relationship through the conversation. Johanna has shared with us her strategies for consistently achieving that purpose. We explored her framework through little workshops in pairs. I won’t expand much on the explaining the full framework here.

Here are a few quotes of wisdom extracted here and there from the session:
- Physical connections (like handshakes) allows the emergence of emotional connection
- Always give your undivided attention for at least one minute, and smile (be engaging)
- Find techniques to stay present, practise active listening
- Be aware of personal boundaries
- Don’t ‘confront’ each other face to face around a table
- Look for energizing common grounds (builds up a conversation)

Day 4 Afternoon - Don’t Let a Four-Year-Old Run Your Life (Jerry Weinberg)

Jerry explored with us the intricacies of the human nature, by running a live interview with a volunteer from the assistance. I had read several times about the theory in some of his books, but I just wasn’t able to make it practical. This live session, I think, has allowed me to go past my doubts and give it a serious try on me...

Lets review quickly the theory (you’ll find lots more in his books of course):

Detect when you notice you resist something and you don’t know why. Some survival rule might be at work!
4 year-old is an age where kids begin to try to make sense out of the world.
Survival rules are old programs from this age that “haven’t been updated”: it feels almost like you’re going to die if you break them.

Here are a few examples of survival rules:
- I must always do a perfect job
- I must never ask for help
- I must be liked by everyone
- I must never be angry
- ...

Unfortunateley, such “programs” can’t simply be erased and replaced by others. Instead, Jerry (and Virginia Satir, behind the scene) suggests to just try to transform them gradually (starting by introducing some exceptions to the rule), and let time to the idea to really sink in between each step.

Let’s take one of my own strong survival rules, and apply Jerry’s transformation steps:

1/ State the rule precisely: “I must always solve problems of people around me”

2/ Change ‘must’ to ‘can’: “I can always solve problems of people around me”
Is this true? NO

3/ Change ‘always’ to ‘sometimes’: “I can sometimes solve problems of people around me”

4/ Select three or more circumstances when you can follow that guide:
“I can sometimes solve problems of people around me when:
the person has explicitly asked me for help,
I have time to do so,
I am motivated to help,
I am sufficiently qualified on the topic.”

At first sight, this progressive transformation might not look as interesting as it really is... just give it a serious try, and let me know how it worked (at worst, it should open a small breach in your rule... which should then appears a little less oppressive).

Day 5 - Collaboration Tools For Leaders (Esther Derby & Johanna Rothman)

We shared this full last day with Esther and Johanna.

Provide a focus in your meetings: hang a big sheet on the wall with the following informations:
- Outcome / Objective: What do you want to get out of this meeting?
- Agenda: Which steps/activities will we go through to attain that goal?
- Roles: Who has a special role in the meeting? (facilitator, scribe, domain expert...)
- Rules / Working Agreements: What behaviour do you want, or don’t you want, from participants during the meeting?

The Kaner’s Participatory Decision Making Diamond Model provides a very useful practical support for guiding a successful meeting progress: you can find more information here (Kaner’s book review). I think I vaguely was aware about this multi-step approach, but I began to really understand and appreciate it through this practical workshop.

We ran multiple activities from the book on a few real-life examples, from the divergent to the convergent zone, and ended up with a concrete action plan. The simulations were accompanied with numerous precious feedbacks from Esther, Johanna and the whole group.

Conclusion

Again, please don’t believe the conference can be summarized only by what you have just read in this article. I have highlighted a few theories, quotes and events particularly interesting to me, and I realize it might give a false, over-simplistic view of the conference...
Participate to the next and check by yourself!

Monday, November 02, 2009

AYE Conference 2009

Why have I subscribed to the AYE conference this year?

Like Jerry Weinberg's "Becoming a Technical Leader" book describes (inspired from Virginia's Satir Change Model), I think I have attained a strong plateau in my professional abilities... I mean, I certainly continue to progress, refining some of my mental models, principles and techniques ; technically, I also try to learn other frameworks from home, but... I somehow feel the unpleasant and growing belief of a stagnation. I'm going there to be intellectually jiggled. I'm now looking for ways to aim at my next "great leap forward".

Listening to experienced people, opening my mind to different perspectives will constitute one of the keys to unlock the barriers impeding my personal 'Continuous Improvement'.

On top of it, the conference format and the idea of meeting prestigious hosts have finished to convince me to join the adventure this year.

"Amplify Your Effectiveness" - what an appealing tagline... OK, let's play the game! Here's a list of some key areas I want to be more effective at:

  1. exchanging views with archetype Routine managers (those who look for stacks of documentation / who tend to favor blaming or ultrareasonable style of management),
  2. pinpointing and eliminating sources of impediments for a team progress,
  3. fostering a energetic, positive team dynamics (and making it last),
  4. quickly recognizing system patterns in foreign environments (and jiggling judiciously),
  5. managing projects with unmeetable schedules and/or technical debts,
  6. reflecting on myself and my actions (to learn about me, my strengths and weaknesses).

What a program... daunting isn't it? May the conference help me to grow!

I promise to post another message in a few weeks, to describe what I have learned / liked / disliked.

Stay tuned!

Tuesday, March 24, 2009

On the Path to Excellence

How to improve in the software field? What is the best path to excellence?

Cynics might say that our future as software engineers is doomed to an endless enslaving race, lost in advance. As a matter of fact, the wide, increasing variety of development languages, with their frameworks and libraries, can’t be mastered by a single individual. For 50 years, the hardware industry has obeyed the Moore’s law prophecy for processing speed and memory capacity... and the software technologies followed cheerfully! Will this evolution slow down one day soon? I doubt it, for the 50 years to come.

On top of it, the technical expertise (languages, frameworks, system) constitute only one portion of the software field. Numerous other disciplines have developed in parallel: system architecture, code design, ergonomics, security, testing, organisational methodologies...

State goals

The obvious response to that diversity of complex disciplines could consist in considering each discipline in total isolation, and creating silos of activities... here’s coming the good old Waterfall! Hum... I won’t delve here into the limitations of this strategy.

In XP, anyone can ideally participate and bring fresh ideas to any aspect of a project. I personally welcome field specialists only if they understand the basics of other fields, and willingly participate in other problematics with the rest of the team. A truly shared vision in a team only comes at this price.

Now, I totally feel specific field knowledge is a strong asset to a team. If a teamate feel a natural inclination for a subject related to the project, investing in her knowledge is the same as investing in a financial, secure asset.

Let’s try to explore some ways an individual can accelerate her learning pace in a discipline.

Practice

Nothing’s better than actual practice, with its necessary bunch of failures. This requires a lot of personnal commitment, patience and tenacity: a genuine experience to gain decent authority in programming can sorely be acquired in 10 years minimum, I think.

One can understand why many people may find this reality too frustrating and disheartening. A few (too many, if you ask me) hide their ignorance behind a complicated vocabulary, that sound very clever and knowledgeable. Others give up hope to get one day a leadership or expertise position in the field; they stop to learn and their skills start to devaluate slowly, but inexorably until they decide to improve again.

Please, hold on, don’t lose heart! I can attest from experience that the life of software professionals can (and should) be a lot of fun. How come? Precisely thanks to the nearly infinite depth of the field, along with its exciting youthfulness and vitality.

Training

A training program certainly provides an overview, along with some tips and tricks. Furthermore, a living expert in person (if the training is serious) can answer directly your questions.

Unfortunately, people tend to give too much credit to training courses, secretly hoping that they will be able to become specialists in a week. The sad truth is, the same people often forget 75% of the course content less than a month later, and, if they don’t practice, 95% is gone 3 months later.

Communities

Get in touch with communities through mailing lists and conferences. Networks of professionals provide a means to share opinions, or occasionally ask for advices from field experts... and it is so fortifying not to feel alone! However, don’t expect to ever become an expert this way.

Books & online tutorials

Try to learn at home from books, online resources (websites, screencasts, podcasts and so on).

The Pragmatic Programmers Andy Hunt and Dave Thomas suggest reading one book a month on average. I’m a slow reader, I read about a book every 2 months... but, even at that pace, I am sure I have been learning much more from this source than from school.

My advice: if you don’t really enjoy a book you’ve just started, put it immediately back on the shelf (or get ready for a very long, boring and useless journey!).

Mentoring

Look around in your circle of coworkers ; you may find someone more experienced than you and willing to share his knowledge. This person could even stand as your temporary mentor. In the long run, I believe mentoring to be a very powerful path to excellence, but it requires a win-win relationship to last: show your curiosity, share your thoughts, challenge ideas in a constructive manner! Be more than a basic apprentice.

In my (still short) career, I have met many interesting, smart people, and I learned a lot to their contact. These were not my mentors. I have been deeply impressed by no more than a handful out of them all. These were not my mentors either. One out of this small group has greatly influenced my thinking for almost the 10 past years. This is what I call a mentor.

Finally, I find mentoring great, but... there is a but! It can become unreasonably addictive (I know what I speak about ;) Be ready to “disengage”, gain your intellectual freedom.

Conclusion

We do not learn equally from the same sources: some prefer to experiment from examples, while others assimilate more from the theory of books. Whatever your path, hold on steadily to your goal, long enough to feel the genuine pleasure of a true improvement.

Sunday, February 22, 2009

Agile going mainstream

Let’s try to map the technology adoption lifecycle bell curve along a timeline for Agile methodologies:

  • 1995-2000 - Innovators for a coherent set of values, principles and practices,
  • 2001-2005 - Early adopters, spreading the word and crossing the chasm,
  • 2006 up to now - Early Majority.

As Martin Fowler suggests in his recent post on Scrum, from now on, the highest risk of decay for the movement stems from the lack of understanding of the huge mass of new adopters. They tend to focus exclusively on the practices, while forgetting about what truly matters and represents a competitive advantage, namely values and principles.

The worldwide proliferation of Agile Conferences for the 10 last years constitute a sure sign that the approach has become more accessible. I highly encourage those who want to gain an accurate insight of what it is all about, to attend to one (or more) of them.

Here is, in chronological order, a list of Agile conferences I know about for this year (2009):

  • XP Day Swiss (Geneva, March 30, french) - If you speak french, please welcome the first edition of this event in Swiss ; I know a few organizers of this one and believe they will make it a great, practical and useful experience for the participants!
  • XPDay France (Paris, May 25 and 26, french) - every year since its first occurence 3 years ago, I have dutifully attended to the Paris conference ; the french community is more active than ever, and I am very happy to meet new talents from my country. In addition, the place where it will take place is truly gorgious ; once again, I just can’t miss this event!
  • XP2009 (Sardinia Italy, May 26-30) - The tenth International Conference on Agile Processes and eXtreme Programming in Software Engineering
  • Agile 2009 (Chicago USA, August 24 to 28) - This event gathers the international VIPs and some founders of the Agile movement. The far geographical distance makes it a bit expensive for us europeans, but I am considering maybe giving it a shot this year.
  • XPDay Benelux (likely November)
  • XPDay London - (likely December)

I address this post to Agile newbies that want to succeed in their projects: “Please, pay a visit to one (or two) of these conferences, to get in touch with more experienced folk, and try to understand what the essence of Agile is truly about”.

Saturday, February 14, 2009

Work Smarter, not Harder

Isn't it a nice tagline?

Both Agile methodologies and Lean push in that same direction : use the combined brainpower of the team to build and maintain the most efficient system in terms of value to the customer and return on investment.

In our daily work, we try as a team to work that way... and the more we try, the more we feel strong and confident (but also the more we measure how incredibly far we stand from true efficiency!).

Around us, a basic “routine” organisation (pattern 1 in the set of cultural patterns of software organisations, as described by Gerald Weinberg in his first volume of the QSM series) interact with us. Most project managers seem to value this single equation:

     "people count * average individual productivity = added-value per day"

They hardly allow a hint of self-criticism to reflect on their habits. From time to time, they buy expensive tools, ask for a quality audit, or add people to the workforce, confident that it will bring the great leap forward they need in their ability to deliver fast and with high quality.

Everybody knows (or should know) there are tons of insightful litterature about the pitfalls of that approach (the oldest I know being “The Mythical Man-Month” from Fred Brooks), so I don’t feel like repeating these brillant analysis.

In this starting year, I’d rather like here to list what I believe, from my experience so far, to be fundamental rules for a “small” team for succeeding in any complex software project, independently of the adopted methodology:

  1. Reduce the number of “simultaneous threads of activity” for a same person: our conscious brain is mono-threaded, and the cost of switching between contexts is daunting,
  2. Allow some slack time for your team, priceless for the long run success (promotes innovation and a spirit of continuous improvement). Encourage individual studies and organize team workshops on various aspects (product vision, software design, work environment, organisation...),
  3. Prefer developping the competence of your team before hiring external resources; then consider the latter action to help achieving the former,
  4. Stop the dumb rat race for features - numerous studies have clearly demonstrated that most softwares are overloaded with features, that are seldom, if ever, used and a pain to maintain: rather, slow down a bit and choose judiciously the new functionalities by focusing on their alignment with a coherent product vision,
  5. No mercy for defects: pause the current activity as soon as a defect has been detected. Fix it immediately if it should take less than a few minutes, or plan for a better (still near) time otherwise, but never forget to hold on the task flow, to analyse and look for the root cause of the occurence of this defect,

I may certainly have forgotten other important points, but I believe the respect of these define a necessary backbone of good habits for a software team.

To end this post, I will quote Robert Martin, describing what I believe to be the core discipline of all members of a “smart working” team:

“[The professional craftsman] adopts an attitude of calm, focuses on the problem to be solved, and then step by step solves that problem without rushing, without yielding to the need for speed, without surrendering to the desire for a quick conquest”.

Sunday, November 02, 2008

The Art Of Conflict - phase 3: Redirection

Finally, we have managed to talk! The alignment phase has brought some level of reciprocal trust back in the game.

The third and final phase of the technique consists in presenting our perspective in a way that does not threaten the quality of the dialogue, and allows the true magic to develop: the creative synergy of two minds from a positive, rational confrontation of opinions.

This quality of dialog certainly represents the only property worth to monitor. A golden rule is: be ready to come back to steps 1 and 2 as often as needed (whenever you feel the balance of the relationship starts to deteriorate).

The following list presents a few effective recipes we’ve been able to apply so far with some degree of success:
  • Share and understand all opinions, feeling, theories, and experiences, before bargaining
  • Differentiate facts from opinions: both have value, but only the latter is questionable,
  • Set a timeslot for a brainstorming session where you note every innovative ideas (especially rough, incomplete ones),
  • Stay focused: don’t get sidetracked by new issues that could arise in the middle of the conversation, but consciously choose what you need to address now,
  • Finish clearly: Who does What by When, set a follow-up time if needed, hold people accountable for any planned action (from the book "Crucial Conversations")
I do aknowledge that this article is very simplistic on the matter, but instead of writing a long article, that (seriously) nobody would read to the end, I instead recommend those of you who are interested to get a look at the following books on the subject, that I found truly inspiring:
  • Leadership and Self deception
  • The Anatomy of Peace
  • Crucial Conversations
  • Crucial Confrontations
And now, some quotes:

Virginia Satir
Integrity, honesty, responsibility, compassion, love-all flows easily from the person whose self-esteem is high. He feels that he matters, that the world is a better place because he is here. He has faith in his own competence. He is able to ask others for help, but he believes that he can make his own decisions and is his own best resource. Appreciating his own worth, he is ready to see and respect the worth of others. He radiates trust and hope.

Gozo Shioda (a very famous aikido sensei) sayings:
It is said that Aikido is the Way of Harmony.
I think it is simple to explain this saying.
If you face someone, and you can make that person's animosity
disappear, by your own true character,
This is the Harmony of Becoming One. This is not a compromise.
Harmony is a matter of having strength yourself, and then making the
other your ally.
He becomes your partner. This is "making harmony in opposition".
But, unless you accumulate virtue, it is impossible.
To sum up, the foundation is your inner strength.

Friday, September 12, 2008

The Art Of Conflict - phase 2: Alignment

If my Centering phase has succeeded, I should now be able to show genuine curiosity and seek alignment. The tricky part is learning to lose one’s ego without losing one’s balance.

The bottom line of the alignment phases is to openly look for a balanced, win-win partnership in the dialog, and continuous improvement for both: it usually pays off thousand times the investment! 

A graceful win/win resolution first requires establishing the connection to restore sanity (or harmony). While Aikido looks for a physical contact, we actually look for verbal alignment techniques.

The first level of Alignment consists in clarifying facts, and agreeing on a mutual purpose. Is this an argument on goals, or the means to achieve those goals?

“Please, could we stop arguing and think for a minute? Can we clearly state the aim of this discussion? Are we speaking about the same thing? Do we share the same goal?”

Even when this stage brings no fresh data to any party, it at least diverts the focus from a dumb opposition to a constructive thinking, which is a considerable gain.

I haven’t directly read any essays from Virginia Satir, a famous family therapist, but have learned about her work through Weinberg’s books and friends of mine. She’s described for instance a precise, and widely accepted model for a communication between two persons, in which the several transformations an idea goes through often alter the accuracy of the message, and sometimes distort its meaning. The visible part of the communication represents only a fraction of the whole message journey from the source brain to the destination brain! (I unfortunately couldn't find a diagram on the Internet, but will post it as a comment to this post as soon as I can get such a link)

Instead of making assumptions about how to interpret what the other said, keep asking questions: “Did I well understood your point? Do we put the same meaning behind this word?...” Remember this: to be a learner, you’ve got to be willing to be a fool.
To reduce the risk of a misunderstanding when I feel there could be one, I also try to repeat my point with different words.

Once certain the wording is clear and the goals are the same, we can gradually move to the sensitive subject of the conflict, starting with the facts, and exploring all possible means to attain the goal as objectively as possible.
“Let’s gather all the raw information we have got so far on this subject... maybe either you or I is missing some critical data to agree on a decision...”

Make clear that you are willing to listen to and understand the other’s perspective (of course be honest about it!).

The second level of Alignment is emotional: make it safe for your interlocutor to talk freely.

A conversation would be too simple if we only had to deal with facts, logic and interpretation problems. Under the smooth surface of rationality, each sentence often echoes as emotions on the human interlocutor, that sometimes attain her/his self-esteem.

Forgetting to take this irrational dimension into account invariably jeopardizes the success of the alignment phase. 

Dialog with empathy: learn to recognize safety problems in the other’s attitude (look and listen for silence/violence, frown, signs of annoyance...).

Whenever you notice a safety problem, underline the importance of his opinion, and the sincerity of your intentions. There is a high chance that your own past behavior has been fueling the problem.
We can follow some tools from “Crucial Conversations” book to restore mutual respect. Here are the ones I particularly liked:
- Apologize when appropriate (when your words may have been inappropriately hurtful)
- Contrast to fix misunderstanding: “I didn’t mean that..., but rather...”

Whatever what happens next, I have to remember the conclusions from the centering phase, and stick to a respectful attitude of curiosity and patience. The contact has been made, and I am looking toward the same direction as him.

As soon as the partner feels respected and listened to, he should be ready to consider my opinion. This defines the last and final step for restoring an healthy dialog: Redirection.