Professional Documents
Culture Documents
Colossal, Scattered, and Chaotic (Planning With A Large Distributed Team)
Colossal, Scattered, and Chaotic (Planning With A Large Distributed Team)
357
look at the whole development process as a system and 3. Overcoming Meeting Inefficiencies
not focus on improving one piece of the system. In
this case the Agile Customer had a huge queue of How do you make a meeting with 35 people
business information that needed to be turned into user effective, efficient, and beneficial for everyone
stories and acceptance criteria. Meanwhile the involved? You don’t! Most meetings do not need
developers were idle waiting for work or worse writing everyone and rarely is there a topic that is relevant to
code that was not what the customer wanted. By everyone on the team.
having the developers perform a part of the customer
role they were no longer idle and the customer’s work It was very frustrating for the team to have a
queue was reduced, increasing productivity. planning meeting that lasted a whole day and at the end
of the meeting team members still didn’t really
This allowed the team to create feature owner understand what needed to be done. During
representatives in both of the global locations. The retrospectives it was difficult to get some people to be
team was able to temporarily relocate a senior open and honest in a large group environment. Even if
developer with business domain knowledge to the everyone felt comfortable speaking in a large group it
remote office since those skill sets were limited there. would take forever to discuss everyone’s issues and
Having feature owner’s in both locations did increase come to a consensus on what needed to be done.
the remote office’s productivity. Retrospectives were reduced to showing a happy face
or sad face on a sticky note as to how you felt and no
The ideal solution would have been to have a real changes to the team processes were made after the
permanent full-time Agile customer located in the meetings. Standup meetings were also affected by the
remote office as well as the senior technical person. large single team, lasting an hour or more. After
This would have allowed the domain knowledge of the operating like this for about a month it was finally
team to grow much faster and increase productivity. obvious to everyone that a restructuring of the team
The idea was considered but the team was unable to needed to take place. The team needed to be broken
find someone, with the necessary business domain into sub teams.
knowledge, to relocate or find someone that could be
hired before the project was completed. However, the It was decided to initially break the team along
team was able to send the Agile Customers from time technical boundaries, the GUI, core business logic, and
to time to the remote location for a couple of weeks. a team that dealt with back-end integration with
customer systems. For those screaming, “NO” right
As Krakow team lead Adam Szczeblewski said now, it is understandable. This was a terrible way to
“Feature owner is not the best idea, but the best we divide the team and caused more issues than it solved.
could come up with within constrained resource
situation. In the future I'd like to see more Agile The team knew there was a risk in dividing the team
Customers (decision empowered business people) in a this way. However, they also knew they had a
project of such a scale”. Many people on the team significant issue with the chosen GUI framework. The
voiced this concern and believe they functioned best framework met the basic design ideas that were
when all roles were performed in all locations. desired, but the framework for it was not completely
implemented. Several key features were missing and
The biggest mistake the team made with the the team was working with the owner of the framework
“feature owner” role was asking a developer with to implement these and stay with the frameworks
limited domain knowledge to take on the role. This design as best as possible. Therefore, the team went
caused the team to have incomplete stories and ahead and split the sub teams along the technical
acceptance criteria because the feature owner did not boundaries with the understanding it would be fixed as
ask the right questions to the Agile Customer. This led soon as there was enough of a technical framework to
to some of the same issues the team had prior to do so.
introducing the role.
In the beginning things were much better than they
It would be nice to say that fixing the Agile were on the large monolithic team. Meetings were
customer role was the silver bullet that fixed all the more meaningful and valuable and the team started
team problems but it didn’t. making good progress again. Iteration planning
meetings became very productive and took only one to
two hours depending on the sub team and difficulty of
358
the stories in the iteration. Standup meetings were familiarity and being able to read body language as
taking 15 minutes or less and were beneficial for well as hear what the person is saying. The problem is
everyone. Retrospectives also became useful and real technical issues slow things down significantly. If you
issues were not just talked about but changes were have a 30-minute issue, which is not uncommon, and
made to resolve them. the meeting was scheduled for one hour you have
wasted a lot of time. Day-to-day and weekly meetings
Although things on the individual sub teams were such as standups and iteration retrospectives and
better it wasn’t long before we started to see problems planning were not efficient with the video conference.
across sub teams. Stories weren’t complete from a The video conference was best for long four-plus hour
user perspective. Teams were working on different meetings such as release planning and release
features at different times with different acceptance retrospectives.
criteria. There was a lot of re-work coming back into
the system. Teams were blaming each other for A conference call from a conference room phone
incomplete functionality, failing builds, test, etc. It was the next attempt at making the daily and weekly
was obvious that the team ended up making the classic meetings more efficient. Each office site would get
mistake of sticking to the technical division too long. together in a conference room and call each other.
In hindsight, the technical split should have been This seemed like the next best thing to everyone in the
avoided when dividing the teams and should have been same room. But oddly enough technology got in the
structured along functional or feature lines. Dividing way again. Using the best conference phone available
along functional lines allowed user-valuable pieces of to the team provided terrible coverage of the room.
functionality to be completed and delivered at the end This caused conversations to be difficult for everyone
of each iteration. Eventually, the teams evolved to to follow. The main problems with conference phones
work on customer functionality and features that cut were sound quality and following etiquette of only one
across all the technology layers in the system but this person talking at a time. Poor sound quality lead to a
took too long. lot of repeating and misunderstandings. Fixing the
sound quality is possible by providing more external
Once the structural issues with dividing the teams microphones. However, the etiquette issue is more
were dealt with the communication across the sub difficult to solve.
teams was much more productive. This gave each of
the sub teams a common overall team goal every If one person from each location tried saying
iteration. The teams collaborated more and paired with something at the same time you would only hear the
each other more often, fixing many of the build issues, person in the room with you. If several people in the
broken test problems, and eliminated the finger same conference room are talking at the same time,
pointing. that conversation can be followed by the people in that
room but the remote location can not. Even the
Dividing the teams wasn’t a silver bullet either. slightest overlap caused others on the phone to loose
The Agile customers and testers needed to be available what was said. Most conference phones are designed
and work with all teams including attending all team to eliminate background noise and if two people are
meetings. In order for the limited number of Agile talking at the same time usually the only person heard
customers and testers to attend all meetings, the is the one closest to the phone’s microphone.
meetings for each of the sub teams needed to be
staggered instead of concurrent. The feature owners The solution that worked best, but still had issues
helped with this issue because the feature owners were was using headsets for all team members and doing a
part of the team and attended the entire meeting. conference call from each member’s desk, a kind of
virtual conference room. The benefit of the virtual
Another issue that comes up is how do you have an conference room, with everyone on the phone, was
effective and efficient meeting when the team is in everyone had to follow the same etiquette of only one
different locations? The team tried three different person at a time talking. With everyone on the phone,
methods for meetings: the first was video conferences, with a headset, each person had the same experience
the second was each location in a conference room, and quickly learned to allow another person to finish a
and the third was conference calls with headsets from statement before speaking themselves.
individual desks.
The team implemented the virtual conference room
Video conferences seemed like a great idea because using a teleconference facility with U.S. and
the team could see each other which allows for international dial-in numbers to keep the costs down.
359
Each meeting had an assigned dial-in number and lacking great planning. However, for a large globally
code. Team members all called in from their desks to distributed team you have to have a great pre-planning
the conference number. The phones used by the team meeting every iteration.
had headsets that connect directly to the phone.
Having the meetings on the phone was less of a Prior to the pre-iteration meeting, the Agile
disturbance to nearby teams than a physical standup customer would pull the highest priority items from the
meeting would have been. backlog that would meet the capacity of each of the
three sub teams. The Agile Customer would then build
The biggest issue team members faced with the high-level user stories for each of the sub teams.
conference calls from their desks was that it takes more He would then identify each of the “cross cutting”
discipline, like most Agile practices. There was a stories for the three sub teams. During the pre-iteration
temptation to read e-mail, instant messages, or browse meeting, the Scrum Masters would discuss the details
the Internet. The team had this problem at times, and of those cross-cutting stories to ensure they understood
we simply let the team police itself. Today, the virtual exactly how the teams needed to interact on that story
conference room idea has been adopted by many teams during the iteration. Then each of the Scrum Masters
across Airline Solutions and has been very successful. would assign “feature owners” to each of their stories.
Feature Owners would then take their user stories and
4. Scrum of Scrums to Get Sub-Teams begin to break them down into tasks and tests by
Working as One Team working with the Agile Customer, testers and
developers on their sub team. All of this had to be
It was known that dividing the team into sub teams complete before the sub teams iteration planning
would require good coordination. There was a desire meetings on Monday morning.
to avoid silo teams working in a vacuum. This is
where a page was taken from the Scrum methodology Every Monday morning, each of the three sub teams
playbook. One of the primary ways to scale a large would go off concurrently to conduct their own
Agile team in Scrum is to create small 6-10 people iteration planning meeting. Teams would verify
Scrum teams. Each of those teams contributes one completeness of stories from the last week’s iteration,
person who attends “Scrum of Scrum” meetings to they would calculate the team velocity based on the
coordinate the work of each of the Scrum teams. past iteration, and then conduct a team retrospective.
After the retrospective, the team would usually take a
As described above, the large team was divided into short 15 minute break and then come back to review
three sub teams with 8-12 developers per team. Each and discuss the new iterations stories, the tasks break
team had developers and testers who were globally down of those stories, and agree on how much work
distributed between Krakow and Dallas. Each team could be completed in the new iteration. If this process
identified a team lead (Scrum Master) who would was successful there was a good chance the iteration
represent their team during Scrum of Scrum meetings. would also be a very efficient and successful iteration.
360
added to assist the customer in this area. An Agile
customer located in both locations would obviously be
the ideal way to handle this.
7. Acknowledgements
We would like to acknowledge Ben Hogan, Angela
Martin, Scott Hunt, and Evie Williams for reviewing
and correcting our mistakes that no word processor
could find.
361