Pages

Sunday, August 28, 2011

2 Pizza Team

 

 

 

imageArrange a Pizza party (not Pasta nor Burgers) before formulating a team structure for a project !    No, this is not to celebrate commencement of work, but to ensure an effective team.  

How can Pizza (not Pasta nor Burgers) help in defining the team structure ?    Let me tell you the story…


I was watching a documentary about the devastating earth quake that hit New Zealand some time back and the way city was rebuilt. The documentary showed the way the city mayor consulted the local residents and got their suggestions for improvement.  I could see the efficiency in which the situation was handled.
 
While I was watching this documentary, I noticed that most of these meetings with the residents had at most 5 – 6 people, and it was very orderly.   This efficient working style triggered many thoughts and came back to my computer to do some research on effective team structures.  
During this search, I stumbled upon this article “Inside the mind of Jeff Bezos”.   In this article they explain, Jeff’s idea of “2 Pizza teams”.  Whenever he encountered problems, he used to divide the problems into smaller chunks and each chunk was assigned to a team of not more than 2 Pizza team size.

So, what is 2 Pizza team size  ?
If you can't feed a team with two pizzas, it's too large. That limits a task force to five to seven people, depending on their appetites.


It seems even, Apple Inc follows similar concept !

Scrum recommends 7+/-2 as the optimal team size  but I guess, this number closely follows 2 Pizza team concept.  One of the major problems with larger teams is less accountability.   There are researches to prove that individual productivity reduces in larger teams due to this concept of social loafing.  As the number of people in the group increase, people tend to feel devalued.   One can get more details about the research here

So, How large is your team now ?

Sunday, July 24, 2011

Understanding Scrum


imageEven though Scrum has touched souls of most of the software developers across the globe, it still seems to be understood as set of practices.  There are many yet to catch up with the principles behind the Scrum.   In the recent blog, Ken Schwaber  reviews the typical mistakes done by most of the Agilists and specifically large organizations. 

Here is the summary of  key points from his blog post with my 2 cents added in between.  Ken’s comments are in Italics.

1. Our tendency and tooling from waterfall and predictive processes is to view people as assignable, parsed, optimized resources. This works great if you are running a factory line and people are doing simple work. It really sucks if you are trying to do creative, complex work where there are many competing ideas and solutions emerge from interactions.

Even  now I have seen many people using the word “resources”  to mean mostly the “developers and testers”.  Even worst, they are also called many times as “heads” or “bodies”.   This is not only demeaning and disrespecting the people around us, but also shows the lack of seriousness about the knowledge workers.

2. People don’t have measurable capacities when they are performing intellectual, creative work. Things move back and forth between different parts of the brain and some of the best ideas come at 2:00am in bed


This is a radical thought process isn’t it ?   All of us work from 9 to 7 PM shift, and we have to think and complete our work in this duration. It is easy for every one around us to be predictive and work in the same time zone. In reality,  this is not possible.  However, the stress, which reduces creativity can be minimized by removing many of the enforcement on the employees at work.

3.

Last, but I’m sure I’ve missed others, is the idea of “assigned” work. This is a common smell of a development team that is not self-managing. Who “assigns” work if a development team is self-organizing? Development teams select work, figure out how to do it, and go do it. Assignments are a dysfunction.



Most of the issues like “assigning the tasks”,  “Architects doing the estimation on behalf of every one”,  “Project Manager approving leaves”  are the vestiges from the Waterfall era.  It is always better to coach and train the people in the top before it affects the bottom.  As the phrase goes “Fish always rots from the head down”.

You can read the entire article here.



Image courtesy: http://www.dreamstime.com/the-right-way-or-wrong-way-thumb2307359.jpg

Thursday, July 14, 2011

Increase in Iteration Duration for benefit

Deciding the iteration duration is not easy. It depends on various parameters like  Duration of the project, Agile Maturity of the team, risk mitigation factors, Project domain etc.   Most of the Agile proponents suggest 2 weeks iterations. 

Typically  2 Weeks iteration looks like :



image


In a matured Agile team with good domain knowledge, the Iteration Planning duration over a period of time becomes stagnant. In the sense,  that the team need not spend too much time understanding  set of user stories or requirements  during iteration planning. 

For example, The team who has spent 2 years working on a particular domain can easily understand the enhancement requests. image


While working with experienced teams, I have observed that whether it is 2 weeks or 3 weeks iteration, the iteration planning duration stayed almost 2 days. In such projects, it is beneficial to extend the Iteration duration to 3 weeks to gain additional 1 or 2 days saved from reduction in effort spent on Iteration Planning meeting.  

Sunday, July 10, 2011

User Stories - How detailed it should be ?

Data Flowchart During the initial days of requirement gathering session, the product owners end up writing the epics. These epics needs to be broken further down into the user stories .   One common question repeatedly asked by the novice product owners is when is the right time to stop splitting the user stories ?   

If you Google around there are many articles written about this topic. 

Some of the options proposed by various authors include:


1.  Stop detailing when you feel the user story is big enough to be implemented in 3 – 4 days



2. Stop detailing when you feel the user story can be implemented in one iteration

3. Quite commonly referred acronym is the “INVEST” model.  More details about this model can be found here,   
    
I really like the INVEST model however,  if the Product Owners(PO) and developers are new to Agile, the above model will not help them much. I still feel that it looks pretty abstract to them.  

In one of the real world case studies, a group of “new to Agile”  product owners and developers  applying the INVEST model on user stories got into a debate for couple of days. They were not willing to budge with their own understanding of  “What testable” means, as each of them had their own explanation.  

So, just telling some one to follow the INVEST model may not be sufficient.

I have my own opinion about this,  while I am coaching the Agile teams, I recommend an iterative approach to detail out the user stories. Each time the user story is created, I ask the product owners to apply the INVEST principle to begin with and then share it with the development team to check their confidence level . If they are able to understand it easily and say that they can code this story, then probably it is the right size.   If not,  then the user stories needs to be split or detailed out further.  The developers take the important seat here. The developers need to review it because, they are the people on the ground implementing the same.

If the team is working in distributed model with POs  and developers distributed across the globe, then the POs could write the user story on Wiki or JIRA kind of tool . The developers on the other end can write their comments/questions as part of the feedback loop.

Saturday, June 25, 2011

A good example of Collaboration

During the weekend reading, stumbled upon this fascinating article which talks about Collaboration  with a real life story.

 

 


 

 

 


Check this article out

 

 

 


Team work is needed, but one should not just nod for all requests. It could take the entire project down.

Thursday, May 19, 2011

Funnier ways of implementing Agile projects

image Have you observed that every company wants to be known as an Agile company(company implementing Agile methods), but no one wants to really follow Agile by the book ?.

Software Project teams do a lot of Agile tweaking during the journey of implementing Agile to fit the company’s culture. Since, company’s culture cannot be changed so easily, they tend to modify Agile practices to fit the companies needs.  Here are few and funnier ways of tweaking that I have observed :

1. Have start and end dates of project carved on stone, and all the requirements are then tried to fit in between the dates.  But, the coding, design and Test are done in 2 or 3 weeks cycle. All the new requirements that emerge during iteration has to be implemented no matter what within the duration

2. Measure Velocity week after week and set a goal for the team to achieve the velocity

3. Measure velocity of all the Agile teams and standardize the Velocity number (like number of story points to be delivered in an iteration) across organization

4. Project Manager would be renamed as Scrum  Master after the CSM training and he/she would continue doing what they were doing earlier

5. Testers are separated from the main team

6. Testing is done at the end of all iterations with a dedicated testing iteration

7. While signing the contract with the customer, sign the fixed bid contract based on the number of stories


8. Having an iteration duration of > 6 weeks

9. Staffing the project with all senior people with the assumption that Agile projects need only “matured” people. See more myths here


Photo credit: http://www.rgbstock.com/photo/mhAT2b2/so+happy+2

Sunday, May 08, 2011

PMI is offering Agile Certification

image Finally the PMI, big dinosaur as per agilists,  is offering the Agile certification.  Even though PMI is famous for its waterfallish process support, but its team looks like finally has woken up by the noise Agile methods like Scrum, XP is creating in the universe.



Take a look at PMI’s  Agile website for more details.
On and off, we keep hearing about  Agile certifications being offered by Scrum Alliance and other well known organizations. However, so far many of them have either not taken off successfully or have died down after a brief hype.    Now PMI, too seems to be planning to offer  Agile Certification, need to wait and see if it gains popularity.  check out the  PMI’s Agile Certification FAQ from here.

PMI seems to have taken help from Agile thought leaders like Alistair Cockburn, Mike Griffiths, Michele Sliger, etc  in making the Agile certification happen. These people carry a lot of credibility in the Agile world, and so, we could definitely expect a quality Agile certification from PMI in the end.

 


I still believe that these certifications will improve the knowledge but can’t change a man(or a woman)

Friday, April 22, 2011

10th Year Birth Anniversary of Agile

image



      Between 11th and 13th of February 2001, the lodge at Snowbird ski resort in the Wasatch mountains of Utah gave the space to Agile Manifesto to be born.  The 

17 people at this logde were not merely talking, relaxing and skiing. They were brainstorming about the issues that software developers (including themselves) were facing every day.  The final day took the birth of  Agile Software Development Alliance.

 



Read the story of Agile Birth here.  

Now after 10 years of  Agile invention, Alistair Cockburn  had organized a reunion event.

 

In addition, 16 out of the 17 signatories will take the stage on Aug 8th at  Agile 2011 Conference.     

During this conference, attendees will enjoy open access to all 17 stages hosting speakers, classes, workshops and special events, plus a stage dedicated to Open Jam: a place for problem solving and collaboration where anyone can convene a session, share questions and quandaries, talk to the experts, demonstrate software and techniques, and experiment with emerging Agile practices and ideas.  

Agile2011 promises a stimulating week of learning, collaborating, brainstorming, and sharing problems and solutions while networking and making valuable connections

Wednesday, April 06, 2011

Agile Vs Lean

image
There are a lot of articles on the net explaining the differences between Agile Vs Lean.  There are eternal debates about them too.  But this article AgileVersusLean by Martin Fowler gives the most simplistic explanation about the subject.
In the above article, Martin ends by saying I think of lean as a strand of thinking within the agile community, like a pattern in a rich carpet.

Picture courtesy:
http://www.popgadget.net/2008/02/flexible_hanger.php

Friday, April 01, 2011

Importance of Cross Functional Teams

clip_image002As per the Harvard Business Review professor Tiziana Casciaro, an expert in Organizational Behavior 

“Working with similar people leads to limited perspective and heterogeneous group brings different perspectives to the table and bring truly innovative approaches to solve a task” 


I guess this could be one of the key reasons of having cross functional team practice in Scrum.  In most of the Non-Agile projects, the teams are formed based on architecture layers.
For ex: UI team, Database Team, Middleware team.  

Each of the above is a homogeneous group and there is less innovation.  

However, most of the Agile methods recommend team formation based on the story or Requirement as opposed to the architecture layers.   This would encourage having team members from UI, Database, Middleware, Testing, etc.  working together leading to formation of heterogeneous team.  Heterogeneous teams are found to bring different perspective to the table and thus bringing creativity

Saturday, January 15, 2011

Delivering Fast with right technical Debt – Forrester research upcoming Webinar details

  image According to recent survey data by Forrester Research, Agile methods are now the predominant development approach. Their success is due to their promise of both delivery speed and business value. But agility is more than short term speed.
Short term speed can actually reduce long term business agility.

This reduction of agility is illustrated in the simple metaphor of “Technical Debt” which describes how short-term decisions that aid speedy delivery can, over time, end up drastically slowing down your ability to deliver value.

Agility means achieving the right balance between speed today and speed tomorrow.

Hear Dave West, principal analyst at Forrester Research discuss how organizations are striking the right balance between delivering fast yet keeping their Technical Debt down so that they can remain truly agile.

Dave will cover the following topics:


  

· The state of Agile development – drivers and current practices 
  

· The rise of Technical Debt
 

· The elements necessary to achieve the right balance between speed and Technical Debt
   

· A checklist for Agile success

Date: Thursday, January 27th
Time: 11AM EDT (5PM CET, 4PM GMT, 8AM PDT)
Please register for the webinar here: http://www.castsoftware.com/Worldwide/events/012711.aspx?gad=blogger

Tuesday, January 04, 2011

Agile estimation and Planning – Presentation

image 

 

 

 

 

Recently Mike Cohn presented the summary of his book Agile estimation and planning during Las Vegas Conference.

 

 

 

 



The deck covers different types of estimation and levels of planning in detail with very good easy to remember examples.

The pictures in the slides speak thousand words.  One can download the deck from here

Wednesday, October 13, 2010

Poka Yoke – Mistake proof marketing

image Definition of poka-yoke (as given in Wikipedia) is,  any mechanism in a lean manufacturing process that helps an equipment operator avoid (yokeru) mistakes (poka). Its purpose is to eliminate product defects by preventing, correcting, or drawing attention to human errors as they occur.   

Googling around on the benefits of Poka Yoke would throws up tons of results with astonishing numbers. People have reported nearly 98% increase in accuracy in their system , 0% error, 98% cost savings etc.

 

 

A very good introduction about Poka Yoke is available here

The popular methods in Mistake proofing include:

 



1. Contact Method
2. Fixed Value Method
3. Motion Step Method

You can get more details about each of the above methods here.

At the end of the day Poka Yoke is all about finding ways to stop mistakes or identify the mistakes before they occur.   Even though it was initially invented for the manufacturing industry, it is being applied to other industries like software too.



Some thoughts about applying Poka Yoke in Software development can be found here and here.  Automated software testing practices applied on Unit, Component and Integration testings are classic examples of Poka Yoke in software development.

Recently I came across this website where the author has offered some tips about  applying Poka Yoke for mistake proofing marketing.  One can also download free presentation about the concept on the same website.



This website is dedicated about Poka Yoke with wealth of materials about this concepts, certifications, etc. 

Monday, October 04, 2010

2 Minute Introduction to Lean and Kanban

image Check this SlideShare presentation which gives a very simple and animated introduction about  lean and Kanban.

Thursday, September 23, 2010

Attending the Java Oracle Open World 2010 Event

CIMG6956 3 days of highly enriching sessions in Oracle Open World 2010 is keeping me occupied in San Francisco. Most of the sessions ending or beginning with Security, Scalability, Performance were sold out. It was tough to get seats for these sessions. Apart from attending Larry Ellison’s Keynote, I attended many sessions. I am listing a few of them here, and once I am back in India I am planning to blog about other sessions in detail on my architecture blog

1. Hadoop vs. Relational Database: Shout-out Between a Java Guy and a Database Guy.  This session focused on few tips around choosing Hadoop and when to choose RDBMS. Very interesting session

2. Mission Critical Enterprise Cloud Application

3. Journey to the center of Java Universe

4. Keeping your options open even if the cloud is not



5. More Best Practices for Large-Scale Websites: Lessons from eBay

 

 



and many more…

Nearly 41,000 developers from all over the world participated in this  event and as part of appreciation, Oracle had organized the Rock concert.  I enjoyed  listening to Don Henley and Black eyed Peas before heading back to the hotel late night.

Sunday, September 19, 2010

How British Airways uses Agile

image Here is a good article describing how British Airways IT department have started applying Agile methods and have started seeing a lot of benefits. 


Couple of points I liked in this this article include :

1. If you are interested in implementing Agile in your organization, start with a pilot project with a small team
2. Try to employ a coach to help you to begin the journey. They might be expensive but worth having them on board
3. Put people who are interested in Agile as part of initial pilot team rather than pessimists
4. Scale the Agile projects slowly to rest of the IT organization as opposed to scaling it quickly.

Tuesday, September 14, 2010

Scrum @ Home

image Many scrummers have been implementing Scrum practices outside of Work but silently. 

My own example of

* Using  Information Radiators to track progress of tasks at home,
* Prioritizing the work,
* Retrospective with my family, etc.  

Recently I came across few blogs where Scrum practitioners are sharing info about applying Scrum practices outside work. 

Check them out here


Scrum For Kids
Scrum in Schools

You can also see few pictures of  how Saturday Chores could be handled in Sprints

. Don’t miss reading the details about how Sprint Planning was done, tasks picked by kids, etc just below the picture.

It is fun to see all this and at the same time good perspective of how Scrum can be applied outside work.


Are you getting any new ideas now to apply Scrum @ home ?

Thursday, August 26, 2010

Google Wave, Innovation and Agile

image The recent news that Google is officially shutting down “Wave” came as a shock.  Even though I never expected this to happen, I appreciate Google’s courage to shut down the product built with considerable amount of effort and money. This courage reminded me of the courage, one of the core values in Extreme Programming(XP).

 



Courage in XP is explained with as example as
  :
Courage is knowing when to throw code away: courage to remove source code that is obsolete, no matter how much effort was used to create that source code

 

 


After re-reading the core values, I have been getting more questions than answers !
Do we really practice Courage in our projects ?  What fear do we have ?  Why do we hesitate to take risky decisions ? Who influences our decisions while we are on the project ? What do we need to change to practice courage ?

Coming back to topic of Google wave, the reaction to the Google Wave shutting down news has been pretty much mixed. Broadly the reactions were of 2 categories:



 

One really bashing Google for not thinking through  and finally shutting down the product

A

ppreciating Google’s courage and ability make quick decisions


I felt that these two reactions could be compared to Waterfall thinking and Agile thinking respectively.  The reason for this analogy is, Waterfall mentality is to force every one to think through all the possible things and create a plan engraved on stone. Agile being incremental and iterative in nature gathering constant feedback taking quick decisions every day. 

Even though waterfall way theoretically looks to work, it never does.  Agile thinking is all about quick action, getting the feedback and making course corrections, which I think Google did it as in the case of Google Wave.

Keeping the Google’s cue in mind, if one key value like courage is injected in Agile projects, then Agile teams will get an additional teeth to be more innovative. Without Courage, they would end up stuck with Waterfall thinking in the guise of Agile.

Tuesday, August 17, 2010

Agile Testing

image I have come across many projects claiming to be Agile, however they are really doing nothing more than mini-waterfalls. They do the Requirements, design, coding and Testing incrementally and in a bi-weekly fashion. If you carefully observe, still testing is done during the last days of sprint/iteration.

What is not Agile Testing ?

Testing within Sprints in projects following Agile methods is not Agile testing



Developers have to do their own set of testing for “building the quality in” as per lean. However, the developer testing is not a replacement of traditional practice of testing. 


It is disheartening to note that, many people give a little or no value to the testing in Agile projects. According to me, Agile testing is important as a practice as Scrum Meeting or retrospective.


Myth around Agile Testing
There are still some myths around Agile testing.

* It is a myth that in Agile projects all the testing would be done by developers.  
Testers role would become obsolete in Agile projects

Additional factors that are given importance in Agile testing includes

 


1. Testers are no more reactive, they are proactive.
2. The testers are not in the project to identify defects but to build the quality in the product
3. Testers participate in all the activities of software development, right from Requirement analysis to design, architecture and till the end.
4. Testers play the role of Generalized Specialists taking one or two additional responsibilities  apart from testing. 
5. Test Automation is given importance than the manual testing

Agile Tester


With so many additional factors involved in Agile testing, is it really possible for traditional testers to switch gears quickly to accommodate the new changes ?    Answer is “NO”. 
It takes its own time and in the sense, it could take sometimes months. The rate of change depends on the support given by the management to the testing team.  More the support, smoother and quicker would be the change. 

 

 



Some of the mindset changes needed by Agile testers include
1. More stress on improving the communication skills
2. Courage to drive quality in by taking charge of projects
3. Proactive mentality rather than reactive
4. Eagerness to learn new technologies and framework to become generalized specialists.

In Summary:  Agile testing is all about change in mindset and focus on building the quality in the products.

Monday, August 02, 2010

Most Valuable Blogger

image
I have been awarded as the Most Valuable Blogger(MVB) by DZone. I am very excited about this news.