Sunday, May 11, 2008

Encouraging amicable disagreement.

As the team reached norming stage and adjust their behavior to each others. The team in this stage agrees to a set of rules, values, professional behavior, and, shared working methods and tools. The team in this stage starts trusting each other. The team behaves amicably before establishing the trust.

Alistair Cockburn in his book “Agile Software development” defines amicability as:
“Amicability is the willingness of people to hear the thoughts of another person
with good will and to speak without malice.”

Lets consider a scenario of hierarchical team organization (which typically has top-down chain of command) where a senior programmer is paired with programmer. The programmer might tend to agree with the senior programmer (cause can be various) even when he can provide constructive suggestions. This will surely degrade the quality of deliverables.

The constructive amicable disagreement should be encouraged in an organization for better performance of the team. Sometimes it can be useful to induce amicable disagreement in the team so that the team can share their views. Or the culture of constructive critical feedback should be encouraged in the project team.

Labels: ,


Friday, May 02, 2008

Some thoughts on Staffing an Agile Project

The value for an Agile Team is derived from Agile Manifesto which can be summarized as follows:
1. Individuals and interactions
2. Working software
3. Customer Collaboration
4. Responding to change

Creating a good Agile team is essential for the success of an Agile project. The team should follow the above values religiously as they will enforce harmony in the team. The values of derived from agile manifesto can be micro-analyzed on following factors:
1. Humanity: The team members should acknowledge human weaknesses, leverage human strengths, and balance individual and team needs.
2. Economics: The team should strive together to increase the value of the product they are working on without forgetting the time value for money.
3. Mutual benefit: All the decisions and actions should be aimed to benefit every one (the agile team and the client).
4. Self-similarity: When the team finds a thing works well in one context the team should try to use the same experience in another context as well.
5. Improvement: The team members should always strive to improve.
6. Reflection: The team should reflect how and why they are working.
7. Flow: The team should deliver a steady business value by engaging in all activities
8. Opportunity: The team should take the problem as an opportunity for change and learning and not as trouble or show-stopper.
9. Failure: If the team has trouble succeeding, they should not be scared to fail.
10. Quality: The team should involve themselves to always push themselves for higher quality.
11. Baby steps: The team should understand the importance of incremental growth.
12. Accepted responsibility: Theoretically speaking, no task is assigned to the individuals in an agile team. The team members should be proactive and should accept responsibilities.

An agile project team staffing is crucial for smooth execution of the Agile Project. The team members should exhibit the above values even when they do not have experience of working in an Agile environment.
A good team can make or break the success of a project. That makes Agile Project Staffing very crucial. Does this mandate to choose right personalities, so that they can work together in harmony or does it happen naturally?
Model of Group development (1965) suggested by Bruce Tuckman says every team goes through four phases namely:
1. Forming: This is the stage when members knows each other and makes friends. This is the stage where we can see how each member works as individual and responds to pressure.
2. Storming: Though this stage is necessary for growth of them but leads to low motivation and could be destructive. This stage is unpleasant and even painful if the individual is averse to conflict. The tolerance of each individual is different.
3. Norming: This is the stage when team members adjust their behavior to each others as they develop work habit that makes teamwork seem more natural. Team members do this by agreeing to a set of rules, values, professional behavior, shared methods, working tools and even taboos. This is the stage when the team member start trusting each other and the motivation starts increasing.
4. Performing: Some teams will reach performing stage. At this stage the will start working as a team without conflicts and without external supervision and hence setup a high performance team. The team has become interdependent and is highly motivated.
5. Adjourning: This stage involves completing the task and breaking up the team.


Agile Methodology suggest to build team which has people from different backgrounds (different culture, geographical location etc) as they have different thinking patterns. If we talk about personality, different personality type contributes to a successful team. At the same time, the behavior of people with same personality might differ but it forms a base of behavior people feel comfortable with. Awareness of behavior and personality type can help create a favorable team mix.

The agile team should exhibit following behaviors:
1. Willingness and ability to learn
2. Willingness and ability to mentor the team
3. Willingness and ability to be tolerant and patient.
4. Willingness to work in team.
5. Exchanging suggestions amicably.

The success of staffing Agile project by minimizing the time to reach Performing stage. The personality type defines:
1. Motivation: How energy flows in an individual?
2. Information processing capabilities: How an individual takes information?
3. Decision making capabilities: How an individual makes decision?
4. Lifestyle: What kind of lifestyle an individual prefers?


Some methods to analyzing personality type:

1. DISC assessment: DISC is the four quadrant behavioural model based on the work of William Moulton Marston Ph.D. (1893 - 1947) to examine the behaviour of individuals in their environment or within a specific situation. DISC looks at behavioural styles and behavioural preferences


2. Enneagram of personality: Don Riso has defined the Enneagram as "a geometric figure that delineates the nine basic personality types of human nature and their complex interrelationships." While the Enneagram suggests that there are nine basic personality types of human nature, there are, of course, many subtypes and variations within the nine fundamental categories. Nevertheless, the assertion of Enneagram theory is that these nine adequately map out the territory of "personality types." (More information: http://www.enneagraminstitute.com/)


3. Myers-Briggs Type Indicator (MBTI): The Myers-Briggs Type Indicator (MBTI) is a personality questionnaire designed to identify certain psychological differences according to the typological theories of Carl Gustav Jung. The typology model originated by Jung (and further developed by Briggs and Myers) regards personality type as similar to left or right handedness: individuals are either born with, or develop, certain preferred ways of thinking and acting

The norming stage is critical as it’s the stage where the working style, roles, expectations are set.

Finding out the personality type:
The personality type of the candidates can be found out by face to face behavioural interview. The personality types can also be gauged by assigning the team with a team task.

Agile advocates a team with appropriate mix of people of different personality types as people of different personality has different thinking pattern. We know that the basic behavior and personality type of the people can not be changed. It would be advisable to filter out the extreme introverted personality while staffing an agile project. The agile project needs self-motivated, highly energized extroverted individuals. Knowledge of individual’s personality type can help a lot. An appropriate mix will help the project to reach norming and performing stage early.


Final thoughts:
1. Access technical skill of candidates.
2. Shortlist candidates based on their technical skill.
3. Assign the team of selected candidates with a fun activity to access their behaviour.
4. Assign the team with a simulated task and observe how each member behaves in the team.
5. Collect the feedback about the activities.
6. Final selection (based on the project requirements)

Labels: ,


This page is powered by Blogger. Isn't yours?