Cloud Foundry: Design and Architecture
Derek Collison discusses the goals, the design premises and patterns employed in creating the architecture of Cloud Foundry, VMware’s open source PaaS, unveiling internal architectural details.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Chris Sims on Aug 11, 2008
Charles Suscheck presented how he uses a variation of the card game Rummy to teach the importance of communication, planning, and collaboration on projects at Agile2008. The game explores the effects of various levels of distribution on a team, as well as the impact of adding or removing experts on the team during a project.
Charles' session began at 2:00 PM on Wednesday at the Agile2008 conference in Toronto. The participants were broken into 3 groups, each consisting of 5 or 6 people.
Each team had one member designated as the 'user'. Once the game started, the users would be given complete game rules, as well as variations to the rules that would be introduced in each succeeding round of the game. Another set of rules would be distributed among the rest of the team such that each player had only a partial set of rules.
Charles' design for the game scales up to having 6 different types of groups in the game at once:
Group 1: Via Email Only, No additional user
Represents Team geographically distributed across several time zones.Group 2: Via Email Only, Additional user involved
Represents Team geographically distributed across several time zones.Group 3: Via Telephone Only, No additional user
Represents Team with no documentation.Group 4: Via Telephone Only, Additional user involved
Represents Team with no documentation.Group 5: Open Communication, User inserted at last 5 minutes
Represents Team falling behind that has an expert inserted to help.Group 6: Open Communication, User involved until last 5 minutes
Represents Team that is doing well, so has an expert removed.
The teams were given 3 minutes, without communication restrictions, to organize themselves, plan how they were going to communicate, what the roles on the team would be and generally what their strategy would be.
Next, the rules were distributed. Participants were told not to show or read the rules to each other, though they could describe their own interpretation of the rules using the communication channels available to their group. The stated goal for each team was to complete as many rounds of modified Rummy as possible, with the team completing the most rounds being the winner. At least one player was given a rule that could be interpreted as indicating that the individual player with the best score would be the 'winner' on their team.
The game ran for 20 minutes, with teams playing a continuously changing version of Rummy. As the game ran, gaps in each team's processes, understanding of the rules, and strategy where uncovered and the teams had to adjust.
When the 20 minutes had expired, the team with no communication restrictions had completed nearly 11 rounds of Rummy and had simultaneously created performance documentation that had been requested as an additional deliverable. That team had quickly decided that since the object of the game was to complete as many rounds as possible, that they would play all hands face up and collaborate to help the first possible person 'go out', without regard for individual 'scores'.
The 'telephone team' had decided to use a conference call model to allow as much communication as possible. Even so, they didn't hit upon the notion of collaborating to help one person 'go out' until after they had played one round. Ultimately, the team completed 2 rounds of Rummy.
The email team never got to the collaboration stage, with one or two members playing aggressively to be the 'winner' on the team. This team managed to complete one round of Rummy in 20 minutes.
After the game was played, Charles facilitated a debriefing session where the participants shared experience, lessons learned, and drew parallels to their real project experiences. Many participants shared that the dynamic of internal competition was a significant block for true collaboration on teams that they had worked with. Even though all teams were given up-front planning time, the value of high-bandwidth communication for adjusting the plan on the fly was striking. This aspect of the communication restrictions may have been more significant to the results than the restrictions' direct effect on the speed of game play.
A full set of guidelines for playing the game can be found on the Agile2008 website.
Improving Software Delivery Cycles: Pre-requisites and Inhibitors
How ALM Supports Business Processes
Adopting Git for the Enterprise: Risks and Considerations
Branching & Merging Efficiently: A Guide to Using Process-Based Promotional Patterns
In today’s hyper-competitive world, later may be too late to adopt Agile development and this Roadmap for Success will help you get started. Download "Agile Development: A Manager's Roadmap for Success" now!
Derek Collison discusses the goals, the design premises and patterns employed in creating the architecture of Cloud Foundry, VMware’s open source PaaS, unveiling internal architectural details.
Andrew Watson talks about the work of the OMG, where CORBA is alive and well (hint: in your car), UML and UML Profiles vs. custom Modeling languages, DDS and other middleware, and much more.
Sohil Shah discusses creating iPhone and Android enterprise mobile applications based on cloud services using the open source platform OpenMobster.
Paul Sanford presents the transformations supported by data throughout its life cycle, and how that can be better done with Splunk, an engine for monitoring and analyzing machine-generated data.
A common “best practice” for unit tests is to only write a one assertion in each test. I intend to question this advice by showing that multiple assertions per test are both necessary and beneficial.
John Rauser presents the architectural and technological evolution of Amazon retail websites starting with 1994 and ending with adopting Amazon Web Services.
Michael Stal discusses system architecture quality, how to avoid architectural erosion, how to deal with refactoring, and design principles for architecture evolution.
Every developer has had to integrate with another system, API or component. Tis article provides strategies to handle the change and for he separating system boundaries.
No comments
Watch Thread Reply