MiddleOut can be a useful approach to ProblemSolving involving complicated systems. ---- '''ProgrammingAsEngineering dimension''' As an alternative to TopDown and BottomUpProgramming approaches, one can start "in the middle" and then work up to the top and down to the bottom from there. One situation where this approach works well is when you are creating a DomainModel. It is often useful to design the domain objects and the relationships between them before doing any higher-level or lower-level work. For DistributedComputing applications, starting with design and implementation of the middleware often makes sense. Another applicable situation is when one would like a bottom-up approach, but the "bottom" is not available. For example, you could be developing an EmbeddedSystem''''''s application for hardware that does not exist yet. In this example, one could start by creating an abstraction/simulation layer above the non-existent hardware layer and developing higher-level code on that foundation. As the hardware becomes available, the lower-level layer(s) can be implemented. The danger of a middle-out approach is that you are neither concentrating on the high-level requirements nor on the lowest-level implementation details, so as you expand from the middle toward your destinations, it may turn out that the middle stuff doesn't do the job. The middle part often needs substantial rework once everything is done end-to-end. So, with a middle-out approach, it is essential to keep things flexible. ---- '''StrategyExecution dimension''' New programs initiatives that cross functional areas require buy-in. If work practices need to be changed, then it is essential there is continual middle management involvement to communicate the relevance of the change to individual areas. A MiddleOut strategy executed well will help sustain success. An example found at http://governmentperformance.org/summit05/presentations/Klein.becker%20presentation.pdf discuss the use of MiddleOut to keep KPI implementation activities manageable (more accountable and shorter ROI). ---- CategoryProblemSolvingStrategy