The article “Estimation is Evil” discusses the difficulty of accurately costing software projects—a subject of interest to anyone involved in contract software development.
However what struck me most in the article was a discussion of problems with an early, high profile agile project—Chrysler’s C3 payroll project.
The author argues that this project failed because it attempted to develop a comprehensive replacement for Chrysler’s existing system. While this system was perceived to have many problems, there were also many things about it that worked. So, a wholesale replacement was an ambitious undertaking.
What would have been better, it is suggested, would have been to focus on just replacing the parts of the system that were causing the most pain—sort of replacing the entire system one hated piece at a time.
It seems to me that this is very similar to the idea of designing larger systems as ecosystems of simple apps. Processes can be broken down into simpler tasks and each task can be solved using a loosely-coupled, highly focused app (see the article on “Mobile First”, for example).
Each app has relatively clear, well-defined requirements, making it easier to estimate. Granted, it may need to provide a variety of hooks for communicating with other apps in the ecosystem, but these can be added as required. Also, the tight focus of the app makes it easier to provide an outstanding user experience.
And, if the process changes, an app or two can be dropped and the ecosystem reconfigured—the “app swarm” can recover.
The “app swarm” concept is already working. It’s effectively how you use your smartphone—jumping comfortably from app to app as you go about your day.
Maybe it’s time you invited the “app swarm” into your organization…