110 likes | 478 Views
Effecting Change: Coordination in Large-Scale Software Development. Andrew Begel Human Interactions in Programming Microsoft Research. CHASE Workshop 2008, Leipzig, Germany. Coordination in Software Teams. How does coordination occur between software teams? What are the pain points?
E N D
Effecting Change:Coordination in Large-Scale Software Development Andrew Begel Human Interactions in Programming Microsoft Research CHASE Workshop 2008, Leipzig, Germany
Coordination in Software Teams • How does coordination occur between software teams? • What are the pain points? • How does distributed development affect coordination? • Once coordination problems are identified, what next? • How can you fix them? • How do you adapt solutions to fit the context?
Coordination Study • Qualitative, interview-based study of a web services team at Microsoft • 32 interviews, 26 people • Redmond, WA, USA (20), Boston, MA, USA (3), Hyderabad, India (3) • Conducted study with Christopher Poile, Nachi Naggapan and Lucas Layman
A Model of Coordination “We miss out on a lot of those water cooler conversations… what we end up doing is sending an email, and the turnaround is so long for that. “I would appreciate a week-before update to now if they’ll make the date… or where they are.” “I know they have other priorities in their job… They say… I will give you time tomorrow… So I’m like, why don’t you take your 15 minutes right now and save me an entire day?” “He doesn’t answer email… If I have questions, I’ll have to ping him a couple of times to get an answer.”
Individual Behaviors Unhelpful Behaviors Helpful Behaviors • Miscommunication • Mistrust • Misunderstanding • Dysfunction • Unmet expectations • Differing priorities • Unclear ownership • Non-transparent decision-making • Missing information • Prioritizes communication • Avoids escalation • Listens • Aware of problems • Reliable, on-time delivery • Synchronizes schedules • Gives clear instructions • Gives feedback • Smart, respectful • Offers status updates
Possible Fixes: Location • Informal meetings happen in hallways • Try not to make decisions in informal meetings. • Send status updates electronically. • Invite non-local team members to discuss decisions.
Possible Fixes: Time Zone • Distributed teams feel remote, due to location, time, and lack of face-to-face contact. • Get rid of distributed teams. • Arrange face-to-face visits between team locations. • Hold meetings at times when workday overlaps.
Possible Fixes: Status • The lack of information makes people anxious. • Hold frequent status meetings with dependencies and post status electronically. • Align priorities and schedules with dependents.
Helping Teams Help Themselves • It is easy to see the problems. • The studied team appreciates your data to 'confirm' their own belief in the problems. • But, it is deceptively easy to come up with solutions. • Practical, usable changes require buy-in and adaptation from team management.
Evaluating Effective Intervention • We need more evidence of solution effectiveness in practice. • How do you monitor changes to software development process? Especially in distributed teams, far from researchers? • Not easy to adapt solution designs to field situations. Longitudinal evaluation of usefulness can take time and effort. • What lessons can be learned from success of Mylyn, Jazz, CoCoMo, Wikis, Agile, CMM?