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 Vikas Hazrati on Mar 31, 2009
One of the frequent questions in Agile adoption is related to the ideal iteration length. Teams usually gravitate between iteration lengths ranging from a week to two months. Choosing the right iteration length is an important decision and the success of Agile adoption depends a lot on the right iteration size. A few Agilists share their view on the factors which should be considered for making the right decision.
Clinton Keith suggested that teams new to the Agile process should chose smaller iterations because it helps them learn and validate faster. According to him,
Teams that are new to agile often want to have the longest possible iterations. I generally discourage this because new teams will generally approach an iteration like a mini-waterfall project. They’ll spend a couple of days in design, a few weeks creating code and assets and then integrate, test and tune during the final few days of the iteration. Experienced teams will do a bit of each of these things daily which is a better way to work.
According to Clinton, the following factors should be considered for making a decision on the iteration length
Vikrama Dhiman suggested similar factors for deciding on the iteration length. He also suggested that the iteration length would also depend on the capability of the product owner to divide the functionality into smaller stories. Smaller stories can be easily completed and tested within a small iteration cycle. He added the following benefits of smaller iterations,
- Short sprints make certain bad habits impossible to get away with and certain good habits more attractive to learn.
- Shorter sprints or iterations are difficult for product management team but also most desirable as they can make changes quickly.
- Shorter sprints or iterations force continuous evaluation regularly and quickly.
- Shorter sprints or iterations also allows the team to establish an empirical velocity very quickly.
Mike Cohn suggested the following attributes for deciding the right iteration length
Mike suggested that as per his experience with different teams, two week iterations seem ideal. The overhead of planning and testing is manageable and the teams are able to sink into a consistent rhythm. He concluded with the following advice for Agile teams
Once you determine the appropriate iteration length, stick with it. Teams benefit greatly from having a rhythm to their projects. Any regular iteration length can provide this rhythm. This doesn’t mean that you can’t experiment with a different length, but avoid bouncing among different lengths without good reason.
Five Key Practices to Agile ALM
Agile Practices to Improve Project Management Organization (PMO) Effectiveness
Agile Maturity Model Applied to Building and Releasing Software
Maximize your business-responsiveness with Mingle. Provide your global development team a shared space that adapts to the way they work.
I think the best length is two weeks... it seems to be optimal for most mature teams. My current team is one week which is a little short but we have valid reasons for it.
Fighting a shorter iteration is a warning sign: agile-commentary.blogspot.com/2008/09/shorten-y...
No iterations (and estimation) can be even better - they interrupt the even flow you can achieve if you adopt Kanban.
Drop the burndown and velocity and adopt Cumulative Flow Diagrams instead!
In Scrum (and other Agile practices) the length of the planning session scales with the length of the iteration. So if the iteration is two weeks I would expect planning to max out at four hours. In fact I will end planning meetings if they take this long. As a rule iteration planning meetings should max out at 2hrs per week of sprint. Review and retrospectives are the same.
If I'm vehement its because this is a commonly repeated mistake that some will use to justify longer iterations.
Also Clinton hinted at but didn't state outright - shorter iterations have the benefit of faster feedback loops. So once a problem occurs it takes less time to fix.
what is good today may not be good tomorrow. if the team changes or the project changes the iteration length should be reviewed. i like the principles you have listed from Mike. I do think the meeting lengths scale to the length of the iteration once the team gels.
i do like a lot of the things you get from a kanban system, like managing wip, queues, and improving cycle time. one thing that i have yet to get a good description of is in sw development the stories are not the same size so how valid is the cumulative flow in predicting when you will finish? in manufacturing you are creating the same size object every time. I have been to one of Donald Reinertsen’s workshops and I have read and heard David Anderson speak on this but it is the prediction part that seems weaker without story point estimates. Any suggested reading on this?
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.
5 comments
Watch Thread Reply