Friday, June 3, 2016

The Agile Manifesto in English - 11



Principles

Agile principles are concretization of agile values.  Agile manifesto lists 12 principles. These principles are iterated in the form of assertive statements.


6.     The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.

We already know that communication plays big role in software development and maintenance and face to face communication with an opportunity to sketch is the richest form.
This principle simply states this fact. 


But we all know that in today’s world teams are spread not only geographically but temporally and culturally as well.  This distribution is not only due to cheap offshore labor but availability of skill as well.  While forming software teams you need to consider few factors w.r.t. communication:

  • Geographic distribution 
  • Temporal distribution
  • Cultural distance
  • Number of teams
  • Team size of each team
  • Inter-dependencies of teams

Communication is not only about flow of information but context as well. Moreover component of context increases many fold if at least one party in conversation is from high context culture.

Communication = Information + Context

Though Allen curve is about physical distance and about frequency of communication. In my experience Allen curve very well incorporate temporal and cultural affinity.




Cultural distance is a two sided sword, if team is homogenous, it increases the communication richness as well as frequency but on negative side ideas from diverse backgrounds are lost.
While having communication via audio and video recordings, do not forget that in both cases it is painful to locate specific moment in recordings.  Try to keep recording duration within few minutes.
If your teams are distributed, do not forget Conway’s Law which is always present everywhere and every time.

Though it is not stated specifically number of persons in team and number of teams also play big role in effective and efficient communication.  Here Dunbar’s number plays a significant role.

In scrum, kanban, and devOps frameworks, this principle is reflected in following practices:


  • Daily Standup
  • Information radiators
  • Collocated teams
  • Shared sketching environment 
 

Thursday, June 2, 2016

The Agile Manifesto in English - 10

Principles




Agile principles are concretization of agile values.  Agile manifesto lists 12 principles. These principles are iterated in the form of assertive statements.



5.     Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.

Unlike manufacturing and assembly line type of work, software development and maintenance is once off activity. Every problem is unique and requires its own unique solution. This type of work requires motivated individuals. 

In Maslow’s hierarchy of need, software professionals already have bottom two needs (physiological and safety) satisfied. They are looking for top three (love/belonging, esteem and self-actualization).






To keep software workers motivated, you can’t rely on Taylorism.  Software development and maintenance is intellectual work not the menial one. 

In “Drive – The Surprising Truth About What Motivates Us “Daniel Pink says that people are motivated by autonomy, mastery and purpose. In my experience, I find Pink is saying true and these factors are by product of any self-organizing team.

In a hierarchical setup, it is difficult to fulfill higher needs of individuals especially if crowd is big. To tackle this challenge, you need motivated individual and provide the environment of trust and autonomy.

In scrum, kanban, and devOps frameworks, this principle is reflected in following practices:


  • Self-organization
  • Autonomy
  • Retrospective

 

Wednesday, June 1, 2016

The Agile Manifesto in English - 9

Principles




Agile principles are concretization of agile values.  Agile manifesto lists 12 principles. These principles are iterated in the form of assertive statements.



4.     Business people and developers must work together daily throughout the project.

This principle is again a clever way of saying, how first two principles can be realized.
In this principle, essentially word “Business people” stands for consumer and stakeholders. If consumers and stakeholders are always present for devTeam, feedback loop shrunk to few hours to few minutes. In such a small feedback loop, business requirements and software are always in sync.

In scrum, kanban, and devOps frameworks, this principle is reflected in following practices:


  • Customer is always present for team
  • Ambassador user
  • Vertical slicing of user stories
  •   Demo at the end of sprint