Pages

Saturday, December 31, 2011

Scrum Video Tutorials by Jeff Sutherland


imageRecently came across this amazing library of Scrum Videos. These videos are recorded as interviews with Jeff Sutherland, co-inventor of Scrum.    Jeff explains the concepts in these short videos in a crystal clear way. 

Enjoy the videos by visiting this link

Top 5 Articles from 2011 and New Year Wishes

image

Being in Australia, just started our new Year 2012.  Looking back at 2011, glanced at Google Analytics to see the popular articles. Out of nearly 2 dozen or so articles I have posted  since the last 12 months, almost all articles have more than 3 digits page views.   Thought would shortlist the most popular ones and share it with the readers.

 


I have edited the Top 5 articles into a clean brochure kind of PDF document.  Feel free to download them from here.

Wish you all a very happy new year and warm wishes for the year 2012

Photo courtesy: dreamtime.com

Definition of Ready template for teams - A free one for download

Have you come across teams struggling in iterations bombarded with surprises ? I have seen many times. 
Teams and POs  concentrate mostly on “Definition of Done”  by keeping the end in mind, which is good. However, it is also important to evaluate the readiness before entering the iterations.
As we all know, Garbage in – Garbage Out,  if the team starts Sprints/iterations with weak information, the output produced too would be of poor quality.

 


image

In one of the case studies, Team didn’t have the acceptance criteria for all the user stories. But they were convinced by the PO that, it would be detailed out during the iteration. The team signed up and  incidentally, things didn’t go as per the plan. The team ended up building a few stories with incomplete features.

Imagine having a robust checklist which is used as the gateway into a Sprint. Noting is allowed into the Sprint fort without getting clearance from this gateway.    This gateway is nothing but Definition of Ready(DoR) Checklist.

 



The Definition of Ready checklist will have the list of items that need to be in place before stepping into the iteration. 

Some examples include,

* Clearly defined User stories are one of the key items to be ready before the iteration planning meeting
*  A healthy backlog with enough stories for atleast 2 iterations
*  Healthy Dev and Test environments
*  Availability of team, etc


A few points to remember

* The DoR checklist is a living document and should be kept upto date with the learning from each iteration. 
* Scrum  Master could own this document. 
* The list should have the inputs from not only the Scrum Team but from Product Owner(s) ,Scrum Master, Business Analyst and other stake holders.
 


I have created a DoR template with typical items needed to kick start using it. This is not an exhaustive list, but gives you a feel of DoR items.  Feel free to download the PDF version of the template from here.   This is free to use as a starting point for building DOR checklist.

Monday, December 26, 2011

Secret recipe behind Amazon’s software development methodology

Have you ever wondered What is the secret behind some of the successful product companies ?  

Have you ever wondered what methodology do these companies follow in software development ?

Right now, my favourite companies include  Amazon, Apple, Facebook and Google. I don’t miss a chance to read information about their org structure, software development process, recruitment process, etc.


In this post, I would be uncovering Amazon’s strategy while building a product.  Before Amazon starts building any product, they write the following documents  Press Release, FAQ, Customer Experience and User Manual.  
Press Release is a short 2 or 3 paragraphs note about the product as though it would be published in a newspaper.
FAQ  as the name itself implies covers the frequently asked questions about this product. Questions with What, How and Why trigger thoughts for the stakeholders to see missing pieces of information.


Customer Experience this document captures the stories about customer user experience. This could happen through Mock-up screens or use cases.
User Manual  covers the way the product to be used. 

Following picture depicts this process.

image


They don’t spend months together in writing these documents. These documents are crisp and cover the information on a need basis. They involve all the relevant team members from technology, and business while preparing these documents.

The benefit of this process is, it provides a greater clarity around the product that needs to be built and avoids the confusion.
I feel that these documents could also be used as:
        a. Training manual for new joiners 
        b. Requirement spec  

Do you have stories or secret recipe to share from successful companies ?

Saturday, December 24, 2011

How to be an effective Product Owner ?


Product Owner (PO) plays a pivotal role in Scrum projects. As the saying goes “Garbage in – Garbage out”, if the PO provides poor quality requirements, the developers churn out equivalent code, and in turn an inferior product.  We keep seeing a lot of failed products in the market. If we track back and identify the root cause of these products, it would have some connection to the requirement gathering phase.

In Scrum, the product Owners own the backlog. It is extremely important to do due diligence while choosing a PO. Larger organizations running multiple projects, and many releases find it difficult to identify good product owners for all projects. They end up picking and sending any one with some knowledge of the domain and tagging them as POs. This is dangerous and inefficient way to fill such a key role.

Based on my past coaching experiences on several  Scrum projects, I have found several factors influencing the PO role. I have put together these factors in the form of a picture. Scrum Projects will be very effective if the following points are kept in mind while identifying a suitable person for the PO role.

 

image

 

Following brief explanation is not in any specific order

1. Lack of Agile/PO training: It is important for designated Product Owner to have undergone Agile, Scrum and Specifically PO trainings.

2.  Organizational Complexity:  Large organizations with several groups, sponsors and IT departments creates their own complexity .  I am sure experienced coaches working with large multi national corporations would vouch for this.

3. Lack of domain knowledge: There is nothing worse for a PO to be leading this role with no proper domain knowledge.

4. Leadership Style and Personalities: Even though no Scrum book talks about this point, I feel it is very important for a PO to be

     * Pragmatic
    * Ability to convey the goal and vision
    * Not getting irritated with questions
    * Empathetic
    * Collaborative rather than Command & Control

5. Not enough Authority:  POs with inadequate authority in making decisions, not only leads to waste due to sign off processes, but also creates frustrations among POs.

Are you aware of other factors impacting effectiveness of PO ?

Wednesday, December 14, 2011

Who should be blamed for a failed Scrum Project ?

image
An interesting discussion about  Who should be blamed for a failed Scrum Project ? in Scrum Practitioners forum  made me to write this short article.    


As I started putting the comment together to respond, I was getting more questions than answers.
Here, are some of my thoughts:

  • Personally, I feel that as long as there is a blame game culture around, the weakest one gets the blame. My experience has been that being more vocal one could push away blame easily.
  • As far as I know, there is no democratic debate to nail down the culprit, its all about witch hunting.  Following paragraphs provide additional reasoning.
  • Wearing a purists hat, Trust is the foundation of all the work. Whether it is Software or non-Software work, Whether one follows Waterfall, Six Sigma or Agile. Failure is a hall mark of Mistrust.
  • Failure will not happen just like that one day. It is the culmination of issues built up over a period. The issue keeps accumulating every hour/every day. Scrum Meetings, Retrospectives were recommended to catch the issues at an early stage before it leads to FAILURE. With the context of Scrum in mind,
  • Here is the list of few more questions one should ask:
  • Did the team raise any issue at all during the Scrum Meeting ? If not, why not ? 
  • If, they had raised the issues, did the Scrum Master track it ?
  • Did Product Owner attend the Scrum Meeting regularly ? Did he/she catch the issues ?
  • Are the team afraid of bringing out the issues upfront ? Who is influencing this behaviour?
  • Did retrospective happen regularly, and issues were brought out during retro ?
  • Did stakeholders/Sponsors attend the retrospective ? Did they show any interests in the “What is not working well” column ?
  • If the team is not following any of the Scrum recommended practices, project itself is initiated with the wrong footing. Should someone be blamed for this ?

  • Answers to the above questions evoke a different set of answers and emotions.

    Before ending this article, let me share a good quote 
    As Karyn puts it:
    Blame gives people an easy out. If it’s not your fault then it’s not in your control. If it’s not in your control then there is nothing you can do about it. If there is nothing you can do about it, then you don’t have any obligation or any need to try to change. If you can blame someone else, somehow, it lets you off of the hook

Sunday, December 11, 2011

Duration of Iteration 0

Iteration 0 is typically the duration between the initial “Discovery” and “Evolve Phase” of a software project.  As such, there is no formula or a number to determine the iteration 0 duration, which suits all the projects.


image
I use the following check list to decide the duration

1. Duration of the project :  If the duration of the project is small, then one should be cognizant of spending a lot of time on Iteration 0. 
For a 6 months or 1 year project 1 week of  Iteration 0 should be good enough.

2. Pending items : These are the items which could negatively impact starting of Evolve phase.  Based on my coaching experiences on many projects, I have managed to create a checklist of things typically needed to start the actual development.  

Some of them include:
     a. Development and testing environment readiness (licenses, Hardware, etc)
     b. Is Backlog healthy and ready to support one or two future iterations
     c. Do we have the team ready with the right skills
     d. Does the team need any training before they start the coding
     e. Does the team have all necessary tools to start the project
    
If  the team does not have basic things, then there is no meaning in starting the development and waiting in between.

3. Did it exceed > duration  of 1 iteration ?
The iteration duration varies from project to project, and stays between 2 – 4 weeks (max) in most of the good Agile projects.
I always tend to suggest that the Iteration 0 should not exceed duration of one iteration.  In my world, if Iteration 0 needs more time to finish then there are more challenges ahead for this project.

Wednesday, December 07, 2011

Notes from Lean workshop - Vol 2

image
http://www.techno-science.net/?onglet=articles&article=3&page=3
The Empire State building construction is  a classic example of  application of Lean principles.  It was built within budget and in time.

Here are the few success factors that lead to this achievement.

 



1. Team work: Owner, Architect and the Builder. 

image
In a software development scenario the above team could be compared to the Sponsor, Architect and developers.   Notice that there is no product owner.

Mary, recommends that product lead should have both technology and business acumen. This is opposed to the concept of Product Owners, who are purely coming from business background.

2. Builder was highly experienced in building such large scale systems.

3. Identifying and focussing on the key constraint: Material flow. 

4. The design was based on less coupled systems

 



5. Every one was made aware of the key constraint that was the cash flow.  Every day delay caused nearly 10,000$ (~120,000 $ in today’s term).

6. Constraints were kept in mind while laying out the plan, and not based on the design.

Sunday, December 04, 2011

Notes from David Snowden’s lecture

November month provided me rare and very good opportunity to attend workshops anchored by renowned speakers across the globe. 

It started with David Snowden’s workshop on Complexity theory  followed by  Mary and Tom’s leaders window.  

image
David is known for his contributions towards knowledge management and Complexity theory related subjects.  He has won several awards and a very good speaker.

The 2 hour I spent listening to Snowden is memorable.  I had a few Aha moments during the workshop, and based on Snowden’s pointers, I am continuing research on the areas related to complexity theory.  He is one of the inspiring speakers I have come across. The venue was crowded with eagerly looking lean thinkers and Agilists.

A few points from my notes :


1. Building Inefficiency provides opportunity for innovation

2. Systems thinking provides an idealistic and futuristic view, where as complexity theory looks at current state of affairs



3. One learns things better by failing rather than doing it right or reading “How to” books


4. Complex systems are dispositional but not causal


5. It is important to know the principles, and “why” behind the principles to scale it.

Notes from Lean workshop - Vol 1

Mary and Tom’s Leaders workshop  had been insightful, and a few thoughts are extremely radical in nature. The notes I took during the conference span a few pages, and would be sharing it here in the next couple of posts.
IMG_0447
Got Opportunity to have lunch with Mary, and got an opportunity to take a few pix with her during the conference.

1. Involve diverse team during any decision making process. Healthy conflict is one of the key ingredients in building a successful product

2. Having a meeting like Scrum meeting/standup every day is always useful. However, Mary recommends the Pulse Meeting model that is followed at Scania 

3. Functional requirements should be considered as unarticulated high level designs.  Reading between the lines, there is a hidden design in every functional requirement.  This is also echoed by Tom Gilb.

4. Having a Product Owner between the sponsorer and developers adds waste.  Share the vision with the developers and let developers/technical people take it from there in building the product

5. Find a way to write less code

6. 25 – 30 % Productivity can be increased by eliminating Task switching

7. I was under the impression that PDCA cycle was invented by Deming but learnt that it was Walter A Shewhart from Bell Labs

8. One should be cognizant of  applying the competency or technical leadership styles while forming the team.

9. Also, discussed  Little’s law and Queuing theory in addition to practicing few case studies of its applicability in software projects

10. Trying to utilize 100% of bandwidth reduces the pace rather than improving it. 

Saturday, November 26, 2011

Yow Conference Australia


image
Looking forward to attend Yow Developer Conference next week.  The conference has pretty good and popular speakers. Some of the popular speakers  include Martin Fowler, Mary and Tom Poppendieck,Linda Rising, Joshua Kerievsky, Eric Evans

image
Leader's Workshop, 2 days workshop by Mary and Tom is going to be an important workshop for me to attend.

This workshop is going to cover the following areas:

  • How to discover what customers really want.
  • How to look at your process from a customer's point of view and identify waste.
  • What's wrong with software testing and what you have to do to fix it.
  • How to engage people and stimulate focused innovation.
  • Scaling patterns that have proven successful - and their context.
  • How to frame risk and rethink scheduling to permit confident promise-dating and reliable delivery.
  • Tools for solving problems that everyone in the organization can use.
  • Leadership roles that work - from the perspective of followers.
  • How traditional governance systems can lead to sub-optimization and what to do about it.

Sunday, November 20, 2011

Who is best positioned to write a User Story ?

Someone with a strong domain knowledge is suitable for writing User Stories and It is typically a person close to the business.  Having said that, I strongly believe that  everyone  in a Scrum team should know how to write User Stories.
image
Reflecting back on Ron Jefferies’s Circle of Life, User stories have 3 key aspects:  Cards, Conversation and Confirmation.

Conversation is the key aspect to be noted here.

This is how a typical User Story writing conversation takes place:

1. Some one from Business (Product Owner(PO) or Business Analyst(BA)) would write the Story on a card.
2. They keep this card on a table and invite the delivery team including developers, architect, testers, etc into the conversation.
3. The delivery team will ask questions to understand the story and in turn BA or PO would make a note of these changes, but any one standing there could pick up the card and make necessary changes to the User Story card.
4. Technical people (Architect, DB admin, etc) get involved if the discussion is tilted around technical user stories.
5. Product Owner is the final approver of all the User stories
 

Depending on the size of the project, dedicated people (typically BAs) should be allocated to write User Stories.
In smaller projects, Product Owners can write User Stories.

Tuesday, November 08, 2011

Problem with specialization

IMG_0396


I  saw the above poster on a closed restaurant near my apartment.


First thing that came to my mind seeing this poster was “Issue with Specialization”.   


Let me share this a bit in detail:

Looking at the poster, it is clear that Chef is unavailable for 4 weeks as he is flying abroad to visit family. Due to chef’s unavailability the entire restaurant is closed for 4 weeks (or until his return).

Since Chef is the only specialist available with no “Cross Functional” team in the restaurant, any issue related to Chef impacts the entire restaurant.

Using this analogy on software development, the projects are at high risk when we have specially skilled team members with no backups .

On a lighter note, while reading the poster, you might also feel that the restaurant is being run by a non-English speaking owner.

Tuesday, November 01, 2011

Agile Contracts

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Writing contracts is a key topic for the sales team getting involved in Agile projects.  In the  projects applying traditional methodology, companies had zeroed down on two popular models that are: 

1. Fixed Price and
2. T & M (Time and Material)


While working on Fixed price model, software vendors would analyse  the requirements upfront and commit to a price with the customer.  Many a times, the customer fixes a price and the committed bidder gets the project.  

imageThe uncertainties involved in the software development makes this model a flawed one.   As per the popular and well researched  Cone of Uncertainty,  the initial estimate done at the beginning of the software project could be +/- 400%


 

off-mark than the actual calculated at the end.   In order to mitigate these uncertain risks, companies participating in these contracts have to add a lot of unscientific buffer to accommodate them.

Projects applying Agile methodologies is supposed to have a flux associated with them. The scope could change any time and this needs to be accommodated in the contract and this is not easy. This is one of the reasons for Fixed price contracts not being popular in Agile projects. Even though there are several case studies of application on Agile projects but at the end of the day, the constraints imposed by Fixed Price model might actually destroy the agility.

Photo Courtesy: http://www.construx.com/Page.aspx?cid=1648


Time & Material(T & M) as the name implies is supposed to work well for Agile software development as it has no restriction on price or scope. The customer can keep paying as long as the value is getting delivered. However, my observation has been that this model works  well in an established trustworthy environment. 

Several experiments have been made in creating contracts specifically suited to Agile environments.  Some of them include:

1. Phased Delivery
2. Capacity Based
3. Value Based

Phased Delivery contracts divides the entire project life cycle into multiple different phases. A goal is set for each phase and funds are released based on the delivery. The goal could be the number of user stories to be delivered in each phase providing additional quality related info.

Capacity based contracts would provide X number of people for the project  and no scope related delivery constraints are signed.

I am also envisioning Value Based Delivery contract, and I am not sure if some one has experimented with this.  I feel that, either a $ value or some unit could be assigned to Epics or to user stories theme.  As and when this gets delivered, proportionate amount of fund could be released. Again, quality related matrices could be an additional parameter in the contract. 

An Agile practitioner  has put together a list of 10 styles on Agile contracts . check this link out for more details.


Summary
I strongly believe that  Trust and Contract are inversely proportional to each other. That is, as long as we have less trust, we need more contracts.


image
Copyright protected 2011

Tuesday, October 18, 2011

Managing the Agile rooms

Large Agile projects need larger rooms. Even then, imagethey get filled with  Post-It notes in a short span of time.After some time, It would be difficult to find an inch on the wall to add additional information leading to a chaotic  environment.  Clean, well organized space provides clarity in thinking too.

Some of the key things to watch out include
1. Watch out for stale information on the wall. Find a way to archive the old one.  In one project, we used a large box in a corner to archive old post-its.


2. Post the items in a logical order
3. Identify a few people in the team to manage the wall. Creative people could make a difference.
4. Create a lay out such that anyone entering the room can reach the right information easily.  Without a layout, it looks overwhelmed and confusing.

image

 

 

 


 


Do you have other suggestions to manage the wall ?

Saturday, October 15, 2011

Revisiting 3rd question from Scrum Meeting

 

imageWe all know the most memorable, and the key question of the Daily Scrum Meeting, which is
“What are the roadblocks in achieving my goal” ? 



Typical roadblock answers we hear include:

1. I don’t have the development environment ready yet
2. We don’t have necessary skilled people to augment the team
3. We have not received the licenses yet for the software
4. We have a key person missing in the team

 


 

 

 

 


and many variants of above issues.

The Scrum Master records the blockers, and no doubt takes action on them.  However, over a period of time, my observation has been that,  just sharing the blocker is less efficient. I feel that one should also share the impact of the blocker .

For example the above blockers could be reworded as

1. I don’t have the development environment ready yet, due to which I cannot start iteration 1
2. We don’t have necessary skilled people to augment the team so, we cannot start the project .

Yes, it is implicitly expected that the impact is automatically expected here, but it never happens.

As soon as the “impact” is shouted out, it creates its own listening . It pushes the people to think from the goal perspective rather than just removing the blocker.

Summary:  The answer to the 3rd question could be reworded as
My roadblocks are … . and the impacts on this project are….

Let me know if you think it makes a difference ?

Wednesday, October 05, 2011

Scrum Practices waste of time ?

imageEvery day in some part of the world, I can definitely feel that one of the software projects is getting transitioned to Agile methodology.   Many of the developers working on these new Agile/Scrum projects feel overwhelmed with the new and different practices.

Let us see the typical practices followed in Scrum :
1. Daily Stand ups

2. Sprint Planning Meeting
3. Sprint Reviews

4. Sprint Retrospectives

By the time these “New to Agile” developers, complete their 3rd or 4th iteration, they will start cribbing and saying,

“Oh, these practices are a waste of time, we can deliver more user stories  if we are allowed to sit and code”.

Agree, they can deliver more user stories, but can they guarantee a superior quality code, a valuable product meeting customer’s requirement ?

Let us see why this is not a smart idea to skip any of these practices.



Scrum is all about  Inspect and Adapt
.  
Every now and then, one needs to stop, take a deep breathe, inspect the current set of practices, analyse them well.  If one finds areas of improvement, make a list and strive to adapt the good practices.

Skipping these practices might seem to gain some time, but indirectly it causes more harm than good.

Well known thought leader Ron Jefferies says

In my opinion, if four hours a week[spending on different practices] make any difference, you're cutting things too close. You're likely to make at least one four hour mistake by not planning and tracking.


Summary: Unless you really know what you are doing, don’t skip any of the Scrum (or any other Agile methods) practices. Especially if one is new to Agile, then just follow the book until one gains maturity , experience and good understanding.

Monday, October 03, 2011

Can defect fixing be counted as part of Velocity ?

image
Many a times developers come back with the question,

Can I consider  defect fixing  as part of the velocity ?

Broadly speaking I have seen following types of answers
1. No, do not track it as part of velocity
2. One  should negate these points from the velocity
3. Track it in a different bucket

Let me explain the above types in detail.
1 & 2. Do not track it as part of velocity and may be one should negate it :  Many thought leaders believe that, tracking defect fixing leads to double counting of velocity. People who advocate this believe in delivering quality code with ZERO defects, each time and every time. Velocity is measured as part of delivering a quality code with no defects.  So, the defect found in the future is nothing but your past sin in creating the defect. They believe that, rather than asking for credits,  deduct the velocity.

Many developers feel that deducting velocity is more like punishment, and punishment will not improve the code quality.  There has to be a better way.

3. Track it in a different bucket :   Instead of worrying too much about deducting or not tracking,  go ahead and track it.   Try to have “Defect Velocity” as a separate bucket. During estimation, one could look at the Defect velocity and plan the “DBT(Design, Build, Test) velocity”.
There will be some defect lurking in the code all the time. Even the complex and popular operating systems  like Windows OS and iOS have defects in the shipped product.
As long as the “Defect Velocity” bucket is predictable, its in a good shape.


Summary: Type 3 feels better than Types 1 and 2

Tell me which type do you follow in your project ?

Sunday, September 18, 2011

Tools to build Big Visible charts

The commonly available tools for Agile teams to build "Big Visible charts" include,



   Post-it Notes
   Butcher Sheet
   Flip Charts
   White Boards  
However, while traveling to different countries, and currently in Melbourne I have come across additional tools like:

  Blue Tac 
     Blue tac is like a reusable Gum.  Typically Post-It notes stickiness is not so great.  So, one can use Blue Tac to increase the stickiness.  One can also use Blue Tac to stick the cards, butcher sheet or strings.  Blue Tac can stick to glass panes, wooden boards, etc.  

  Cling on Sheet
      Put it simply, these are reusable butcher sheets
       
Blue Tac                   Cling on Sheets 
imageimage 
Ref: orbostofficesmart.com.au

I also found that it is an art to use these tools properly and arranging them in a way to please the eyes. 
 
One can just stick the Post it Notes on the walls  like below:
image 

Or, order them clearly by separating them either with the strings or with Cello tapes like shown below:
image
Ref: brunomiranda.com

What other tools do you use ?

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