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 Mike Bria on Aug 12, 2009
Fundamental to Lean Software Development is the pursuit of minimizing waste. The TPS publicized 7 primary wastes of manufacturing, and the Poppendiecks have since translated these wastes to our world of software development. Jack Mulinsky has recently been posting an introductory series on these wastes at agilesoftwaredevelopment.com.
The series' first post discusses the waste of Partially done work, the software equivalent of Lean Manufacturing's "In-process Inventory", which Mulinksy asserts as the most offensive of all wastes. A summary of the items he categorizes as wasteful "work-in-progress":
In the second post Mulinsky discusses Extra Features ("Over-production" in manufacturing terms), referencing the well-known statistic that as much as 2/3's of the features in existing software applications is either barely or never used. Among other things, he notes how this is wasteful in the direct sense (taking to build useless stuff) as well as the indirect sense (more features means more code and complexity to maintain).
Mulinsky's third post focuses on the software waste of Relearning/Rework, which parallels the "Extra Processing" waste in Lean Manufacturing theory. He describes his idea of a few examples of such waste, including:
The series' fourth post (and latest as of this writing) discusses the waste of Handoffs, the software equivalent to "Transportation". He includes these technically-focused examples where this waste can become an issue:
Still to come should be Mulinsky's high-level discussion of what he sees as the remaining 3 software wastes of Task Switching, Delays, and Defects. Stay tuned, particularly if this your first exposure to the ideas of software "wastes" introduced by Mary & Tom Poppendieck in their fantastic Lean software books, Lean Software Development: An Agile Toolkit for Software Development Managers and Implementing Lean Software Development: From Concept to Cash.
Also, for those more familiar with these ideas, what might be useful is to add your own thoughts on how these wastes manifest themselves in software environments, and how you have eliminated them.
Agile Maturity Model Applied to Building and Releasing Software
Continuous Delivery: Anatomy of a Deployment Pipeline
Combining Inspections, Static Analysis, Testing to Achieve >95% Defect Removal Efficiency
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