Collaboration: At the Extremities of Extreme
Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Chris Sims on Mar 01, 2010
James Carr recently published a list of five rules to help improve the effectiveness of retrospectives. The rules are based on his experiences in hundreds of retrospectives, both successful and not.
James' five rules are:
Retrospective Belongs to the Team
This means that it should only be attended by the team and only the team can pick a goal and how they’re going to follow up on them.
James feels that this is the most important of the five rules. James' experience is that management that interferes with the teams' retrospectives is likely reducing the effectiveness of the process.
Don’t Let It Become a Whine-fest
Nothing is worse for a team then to spend an hour in a room listening to each other bicker without any from of constructive activity… it will leave the team feeling down rather than up.
The point of the retrospective is to make improvements, and therefore problem-solving activities should be given more focus.
Activities Are Better
Based on James' experience with retrospectives that included activities, vs. those that took a more 'no-nonsense' approach, he finds the former approach much more effective than the latter. He finds that activities keep people engaged and help break down communication barriers.
A popular source for retrospective activities is Agile Retrospectives: Making Good Teams Great, by Esther Derby and Diana Larsen. Half of the 10 chapters are dedicated to exercises and activities.
Pick Only One Goal
Limit your Work-in-Progress as a team by selecting one (and only one) goal for the team to work towards during the next iteration.
While it may be tempting to try to fix all of the issues discovered during an iteration retrospective, it's better to focus on one at a time. The idea of the sustainable pace applies to making improvements, just as it does to the rest of the team's work.
Follow Up
Failing to follow up can leave the team with a slew of goals they never complete or superficial goals that only kick some dirt over the issue.
Nothing undermines the retrospective process like failing to do anything with the results of the retrospective.
Those inspired to improve their retrospectives by James' article may also want to read these previous articles on InfoQ:
In your experience, what is most important to the success of a retrospective? Leave a comment and share your experience.
Transforming Software Delivery: An IBM Rational Case Study
18 agile and lean practices for effective software development governance
Agility at scale, become as agile as you can be
Maximize your business-responsiveness with Mingle. Provide your global development team a shared space that adapts to the way they work.
We just ask ourselves (=the Team) three simple questions which lead automatically to the point
- "Events during the last Sprint?" (sometimes this question can be skipped)
Anything that happened (negative and positive) which is worth it to mention.
e.g. Attacks or major changes by the Product Owner during the Sprint, great improvement of the velocity, etc.
-> "Conclusions?"
What have we learned from the events or from the Sprint in general?
e.g. Product Owner must not interrupt the develover during the sprint, improvement in velocity caused by improved communication, etc.
-> "Actions?"
What are we going to do about the things we've learned/concluded in the future?
e.g. Scrum Master will talk to the Product Owner about interruptions, put a sign on the wall to remind us to keep on communicating, etc.
Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.
Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).
Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.
Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.
Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.
John Davies examines Visa’s architecture and shows how enterprises have architected complex integrations incorporating Hadoop, memcached, Ruby on Rails, and others to deliver innovative solutions.
1 comment
Watch Thread Reply