Thursday, February 25, 2016

agile or anti-agile

I am big believer of agile but having terrible time wrapping my head around wide-open noisy spaces. I am not denying the effectiveness of face-2-face communication but the need to make entire organization sit together on an open floor, does not jive very well with me. I have noticed people working with headphones on. Isn't it defeat the entire purpose? 

"The most efficient and effective method of conveying information to and within a development team is face to face conversation." - Agile manifesto
I am not sure, how this line gets translated into: "Please make multiple teams sit together in an open space". I like playful environment but can't focus in too much noise. A simple disciple can solve this problem but everybody has to be on same page. 

Also in 20th century face-to-face communication can happen over Skype/Hangout/Facetime or any other channel. It isn't necessarily mean being physically present. We are in the era of distributed teams. My team is spread across three different time zones. We use hangout all the time to communicate and as a team don't feel need to be sitting next to one another.

Since the needs are changing, our adaptation should change too.  One last point, development is an art and like any other craft, engineers need their quite moments to think. During organizational transformation, we should make sure feature/product team is sitting together, but they also have places to go and think. 

Engineers should get flexibility to work from home as well. Just because we are following agile developer ONLY loses the privilege of working from home. They have to be in office all the time. Isn't this unfair?

There are few other issues as well, but may be, I should stop my ranting for today. Let me know, if you agree or disagree with my above points.

Manisha


Tuesday, January 12, 2016

Understanding the Stages of Team Formation

Of-late teams are my favorite subject of study and understanding different stages of team formation was very helpful to me as an agile coach. It helped me in understanding my team and I was being able to help my team become more effective more quickly. 


Lets discuss what are stages of team formation. As per psychologist Bruce Tuckman, every teams has following stages: Forming, Storming, Norming and Performing.  He published his article in 1965 about development sequence of small team. He used it to describe the path that most teams follow on their way to high performance. Later, he added a fifth stage, "adjourning". 

Lets see how we can use this model to build a highly effective team: 

Forming
-----------
In this stage, most team members are positive and polite. Some are anxious, as they haven't fully understood what work the team will do. Others are simply excited about the task ahead.
As leader, you play a dominant role at this stage, because team members' roles and responsibilities aren't clear.
This stage can last for some time, as people start to work together, and as they make an effort to get to know their new colleagues.

Storming:
-------------
Next, the team moves into the storming phase, where people start to push against the boundaries established in the forming stage. This is the stage where many teams fail.
Storming often starts where there is a conflict between team members' natural working styles. People may work in different ways for all sorts of reasons but, if differing working styles cause unforeseen problems, they may become frustrated.
Storming can also happen in other situations. For example, team members may challenge your authority, or jockey for position as their roles are clarified. Or, if you haven't defined clearly how the team will work, people may feel overwhelmed by their workload, or they could be uncomfortable with the approach you're using.
Some may question the worth of the team's goal, and they may resist taking on tasks.
Team members who stick with the task at hand may experience stress, particularly as they don't have the support of established processes, or strong relationships with their colleagues.

Norming
------------
Gradually, the team moves into the norming stage. This is when people start to resolve their differences, appreciate colleagues' strengths, and respect your authority as a leader.
Now that your team members know one another better, they may socialize together, and they are able to ask one another for help and provide constructive feedback. People develop a stronger commitment to the team goal, and you start to see good progress towards it.
There is often a prolonged overlap between storming and norming, because, as new tasks come up, the team may lapse back into behavior from the storming stage.

Performing
---------------
The team reaches the performing stage, when hard work leads, without friction, to the achievement of the team's goal. The structures and processes that you have set up support this well.
As leader, you can delegate much of your work, and you can concentrate on developing team members.
It feels easy to be part of the team at this stage, and people who join or leave won't disrupt performance.

Adjourning
---------------
Many teams will reach this stage eventually. For example, project teams exist for only a fixed period, and even permanent teams may be disbanded through organizational restructuring.
Team members who like routine, or who have developed close working relationships with colleagues, may find this stage difficult, particularly if their future now looks uncertain.

As a leader our goal is always to help teams reach Performing stage as quickly as possible. Identify the stage your team is in and then slowly move forward towards Performing stage. Based on team's stage adjust your approach and behavior towards your team. Provide enough help during Forming stage, would be my suggestion. During Storming give them structure and try identify their strengths and weaknesses. This stages is usually the hardest. Give them context and autonomy to resolve things on their own but do help if need arise. Once you are over this stage, you should simple step back and your team should take over the responsibility of moving forward. Once Norming stage is over, you should pat your back and go for vacation since your job is mostly done. Last stage happens a lot in all organization, so celebrate before leaving each other and remember. 

"The world is round and the place which may seem like the END may also be the beginning" -Ivy Baker Priest

Enjoy
Manisha

Sunday, January 10, 2016

Storyboarding/Storymaping/Journeymapping a requirement

"We don't write our stories we draw them." - Walt Disney

I am big believer of being agile but just hated using it as an excuse to be half-assed about requirements and design. Two areas whose mastery has extreme impacts to project success.

It might take little time to create storyboard but we create an understanding on paper then team can make it happen on code. Storyboard can cut off lots of unnecessary work upfront. I want to this blog in value first style, since I completely concur with Simon Sinek and like to start with WHY questions first. Hence lets start with answering our first questions and slowly move forward.

"WHY we should use storyboards?"

Short: Teams are better aligned and confident doing a change or developing a new feature. It helps in building shared understanding in the room.

Long: A picture worth thousand words. Storyboards are extremely useful, when we have a very long narrative to explain. It brings the communication overhead down by multiple notch. It helps in creating a shared understanding where developers can apprehend, what the client or product owner is imagining and why. It is not that a person is right or wrong but with sketches and sticky notes around, we evolve our shared understanding in the room lot quicker which is super-hard with just words alone. It is very easy to make changes and alteration on storyboards vs. on real projects. We can't measure shared understanding but after trying storyboards my teams definitely feel more aligned and confident.

"How we start with storyboards?"
I always like to start with an empty template, like below: There are lots of templates available on google (search world story board template). Or make one, which works best for your team. Choose the one you like.
Start off by visualizing your product or feature. Tell the requirement in the most simplest form before you start building them in most complex form.

Close you eyes and start to think about desired out come.  Who it is for and why are we building it. Think about the tasks a user would perform. Imagine big picture and include pains and joys of user. Write them down on sticky notes and arrange them from left to right flow (also called story telling flow). Try to use verbs to specify tasks. Write phrases in your user language. You must have noticed that each sticky note is a step, and hidden in between each sticky note is the nifty little conjunction phrase, "... and then I ...".  Keep in mind when you are thinking about user using your product. They might have different goals. They may use it in different contexts. This may evolve different types of users or things. Explore other types of users.
Use the goal-level concept to aggregate small tasks or decompose large tasks. Alistair Cockburn uses an altitude metaphor where sea level is in the middle and everything else is either above or below sea level. A sea-level task is one we would expect to complete before intentionally stopping to do something else. 
So far we got all happy path. Now start to think about ".. what about..". We will get some alternative variation for our storyboard. By now, you should get pretty wide board and little deep if you have explored few tasks. 
Now if you will step back a bit, you will find bunch of stories that seems to go together. Cluster these task which seems to go together to help reach a bigger goal. Put another sticky on top of these tasks and write a short phrase on it that distills all the tasks underneath it. This will help us in identifying high level tasks or activities. 

To slice out minimum solution that would both delight people and help reach it's goal, Identify minimum set of tasks that would make that outcome possible. Bingo! In short
  • Tasks are short verb phrases that describe what user do.
  • Tasks have different goal levels.
  • Tasks in a map or board are arranged in a left to right narrative flow.
  • The depth of a map or board contains variations of alternative tasks.
  • Tasks are organized by high level activities across the top of the map.
  • Activities form the backbone of the map.
  • You can slice the map to identify the tasks you'll need to reach a specific outcome
Don't forget so far all these are hypothesis so don't forget to add stories for risk and how to measure our hypothesis. Now it's time to develop things which we identified. Focus on risky things. first

In gist building a map helps you see a big picture, to see the forest for the trees. That's one of the biggest benefits of story mapping but if you are the one responsible for building the forest, you make sure to plant one tree at a time. Two most important things which makes them work :
  • Use storytelling with words and pictures to build shared understanding
  • Don't just talk about what to build: talk about who will use it and why so you can minimize output and maximize outcome.
What are storyboarding or storymapping?

"What I was thinking of was the way users sometimes tell stories about the cool new things the software they use does. [ For example,] if I type in the zip code and it automatically fills in the city and state without me having to touch a button. I think that was the example that triggered the idea. If you tell stories about what the software does and generate interest and vision in the listener's mind, then why not tell stories before the software does it?"
                                                                                                                             - Kent Beck
So the idea is telling, and you know you're doing it right if you're generating energy interest and vision in the listener's mind. That's big and it sounds a lot more fun than reading a typical requirements document. But folks who start using stories for software development and who still have a traditional process model in their heads, tend to focus on the writing part and gets frustrated.

If you are not getting together to have rich discussions about your stories, then you are not really using stories correctly in your project. To get that experience sketch your requirement then tell the stories to explain those sketches during discussion capture the facts as acceptance criteria.

There's some evidence that a fact wrapped in a story is much more memorable than the fact presented alone - 22 times more memorable, according to psychologist Jerome Bruner.

Enjoy mapping your stories
Manisha 

Sunday, November 15, 2015

Comparing agile teams maturity using "Aikido Shu Ha Ri model"

As per wikipedia "Shu Ha Ri" is a Japanese martial art (particularly Aikido) concept, and describes the stages of learning to mastery. It emphasizes on first learn, then detach, finally transcend.
  • shu means "protect", "obey", "following" — traditional wisdom — Novice or beginner; narrowly following given practices
  • ha means "detach", "digress" — breaking with tradition — Journeyman; following, but extending, perfecting, occasionally breaking the rules, 
  • ri  means "leave", "separate", "fluent" — transcendence — Expert; perfecting to creating your own practice, coaching or mentoring
Our teams also differ in their maturity level and its important for any agile coach to asses that.In my opinion if your team is struggling to answer any of these WHY questions they belong to Shu level: 
  • Do you understand why we are doing agile?
  • Do you know the purpose of standup?
  • What is the goal of retrospective?
  • Why switching focus is bad? 
  • Do you know the values of Scrum/Kanban/DAD/LeSS/...?
  • What is the fundamental concept behind any agile methodology?
  • Are they reluctant to adapt new challenges?
  • and any other questions in similar path...
As per the technique, teams at Shu level are following and not questioning the practice. Where-as in our world we should always be questioning and tweaking the practices to our need. This is a big difference so while using the terminology for teams in agile space, please use with caution.

A team is at Ha level if they understand the WHYs and have tweaked the process as per their need. They should have clarity and should be able to define the intent. Here are few questions along those lines:
  • Have we found anything, which does not work very well for our project or organization?
  • Have we found anything, which we believe is better and would give us more milage than following what has been asked us to do?
  • Have you ever failed in trying a change? 
  • Do you do change or experiment a change?
  • Do you do any fun as a team?
  • i am confident, we can find many more questions...
Once the team has good grasps on WHY, WHAT, HOW and has tweaked a process as per their need. In my perspective they are transitioning themselves into Ri level. They should be able to take goodness from all the existing agile patterns and create their own pattern, which will be tailored specific to their organizational or business or project need. They will take the foundation and would build their own structure. I am confident such a team is very easy to spot. Never the less these questions might help:
  • How different their current process is and what benefit are they getting?
  • Observing how they get pass a team problem without involving anybody from outside. Do they only discuss about problem or try to solve the issue by fixing the root cause. 
  • Noticing how they handle new challenges. Do they come up with something creative to tackle the problem?
  • See what they care more about, process or getting value. How often do they complain vs. suggest a change. They are not process slaves they amend the it to rule. 
  • Do they focus in past or future? It should be 80:20, keep an eye on future while observing  the past.
  • ..... 
Knowing a team's level helps me a lot:
  • I can come up with right frequency to introduce an experiments based on their maturity level vs. making them mentally excused. 
  • I can focus on having a long DoD(Definition of Done) for SHU team vs. a shorter one for HA. 
  • I am usually more disciplined with SHU teams vs. HA. 
  • I try to coach SHU team on value and understanding every practice more vs. HA team I tend to focus more on experimenting and decision making techniques. 
Cheers!
Manisha

Monday, November 2, 2015

are we Afraid of estimation or commitment?

"We don't do estimation because we follow Kanban".

I am sure every coach must have heard this statement countless times.  Many teams moving from agile methodology to Kanban to simply escape from estimation. As per them, Estimation is:
  • Waste of time 
  • Useless 
  • Can be stressful
  • Considered harmful 
First of all, nowhere in Kanban it says, "no to estimate". It is up to the team. I am all for challenging the status quo and questioning everything. But is estimation really a waste? I believe estimation helps teams to stay focused. High level gut feeling always helps in decision making and prioritization. So why some teams are reluctant to do estimation? In most of the cases estimation gets abused or treated as commitment. This is completely wrong. The main goal behind estimation is to size your work queue and not hold team responsible. Mike Cohn has very nice article on it.

Teams might also be unwilling to estimate when they don't understand what they are estimating. So as coach we should be able to answer "why we are estimating?" I found few technique very useful while estimation discussion. Each of these tips can be used standalone and are very detailed topics on it's own: 
  • Story vs. Story Maps: Story at time does not tell the entire conversation. I found Story Maps to be more useful. Map only what you need to support your conversation. . Make sure team has discussed ways to tackle the problem at high level. ( Story Map technique). 
  • Brainstorm the problem enough to consider the solution. Making sure that there is nothing better out there (always within the scope and time boxed for sure). 
  • Focus on making Functional walking skeleton first. This is very important step. 
  • Have a high level plan to manage your budget. Budget should lead the timeline and strategy for development. Also will help team keeping focus. 
  • Create a Story Board and have in the room. 
I would suggest to keep the mind open to make sure estimation is being used in the way it is useful and meaningful.

Cheers!
Manisha

Thursday, October 1, 2015

What to keep an eye on?

Thought of summarizing few points for agile coaches or agents on the field.

Here are few focus areas which might help :

  1. Keep you board neat and clean : Always focus on active work. Make sure inactive work is either moved back in the queue or removed. Make sure that what’s on the board is what the team is actually working on. 
  2. Know the work priorities: As a manager or senior member of the team know, what needs to get done. You should take charge of prioritizing all work that comes to your team. This would require communicating with stakeholders and management. 
  3. Project/feature overview: Make sure you have one board where stakeholders, team members or managements folks can get a complete overview of product features or concepts, teams are working on. Having big picture always help team member across every level. 
  4. Quality: Make sure your team is making small and consistent improvement. Have metrics to track improvements. Always do something, regardless of how small, to improve the current state. People do what you do not what you say you would do. 
  5. Create a helping culture: Think of it as relay race. As leader observe, how the work was passed to other teams or departments.  Was it done at the right time, in the right hand, with the right information? We should make sure we are providing every support and help to other teams effectively and efficiently. Doing it late still takes the same amount of time!.
  6. Always Compare now and before: Look for trends and make them visible to teams and management. It will help you, as leader, to identify improvement areas. Always be vigilant and pick one improvement at a time.  
  7. It's okay: Celebrate! Recognize the team’s/individual member's accomplishments/failures and contributions. There is always something positive. 
Hope it helps
Manisha

Friday, September 25, 2015

We are neither Jira administrator nor gate keepers

I was having dinner with few hard core developers (yes!!! they eat, breath and drink technology) yesterday and as per them they don't need any scrum master/lean delivery agent/ agile coach/ manager in their team. They don't see the value of having them.

They have a board, they do daily morning standup and collaborate beautifully with customers/domain experts/sales people and above all deploy in production 3 times a day.  So thought of summarizing our role for them. 

What we are not:

  • We are neither gate keepers nor quality control representatives
  • We are neither managing team members nor their schedule
  • We are neither there to schedule meetings for team nor to make sure they show up on time
  • Our job is also not to facilitate meeting for team 
  • We are neither a lead developer nor a project manager
  • We are not responsible for their personal development as well
  • We are not Jira administrator as well
Now! you must be thinking, what we do, Am I right?

WHAT WE ARE!!!! 

  • We are people who observes events and behaviors for long period of time to provide focus and direction for improvement. We look for what is possible in a given scenario. This is not always seen from the Visual board, one has to observe and pay attention to it.
  • We should be able to understand a situation to come up with actions out of them. 
  • We should be able to cultivate trust-factor between management and team about each other capability and involvement. 
  • We should be able to suggest an improvement focusing on whole vs. part. Development is just one piece of entire puzzle.
  • We are there to ensure, we fail as fast as possible and organization should be ready to experiment and pivot. Imbibing this culture sometime takes months if not years. It is not processes that drives improvement but it's people's initiative.  
  • We should provide right information at right time to help team or organization take good decision faster. 
  • We should help team to identify fastest way to deliver value
  • We should take responsibility for improvement ideas
  • We should separate observation from learning, to apply them appropriately. Leading using long-term thinking is our trait, by making small sustainable improvement over time in culture, technology and leadership. 
  • We should make sure people have curious mindset. Any thing they try is an experiment. Try for a period of time and evaluate the result. 
  • We should be able to learn from outcome, which is more meaningful and valuable than checking off improvement actions. 
  • YES! We are their to help team / guide team / coach team if we feel the need of it.
GOSH!! I knew, I can do it. We are like bee on the wall, nobody can see us but are there :). I am sure this list is can be extended by many other colleagues of mine. Please feel free to do so.

Cheers!
Manisha