Outside-in software development
Encyclopedia
Of all the agile software development
methodologies, outside–in software development takes a different approach to optimizing the software development process. Unlike other approaches, outside–in development focuses on satisfying the needs of stakeholders. The underlying theory behind outside–in software is that to create successful software, you must have a clear understanding of the goals and motivations of your stakeholders. Your ultimate goal is to produce software that is highly consumable
and meets/exceeds the needs of your client.
Outside-in software development is meant to primarily supplement your existing software development methodology. While it does ideally work in more agile environments, it is possible
to fit outside-in development into waterfall
-based or six sigma
methodologies. Outside-in software development is not a catchall solution, but a way to better your existing methodology.
It is crucial to speak with all stakeholders, even if they are not the primary audience of your software.
Outside–in development works particularly well in the context of agile/lean development. One of the major tenets of agile development is to program with the least amount of waste. Outside-in methodologies promote only developing according to stakeholder requirements. By identifying your stakeholders properly and soliciting helpful feedback early on in the development process, agile and outside-in methodologies can mesh together seamlessly.
Kessler and Sweitzer recommend that, no matter what kind of development methodology you employ, you incrementally introduce outside–in development to your team. They cite the lack of enthusiasm by developers as the main reason to not implement sweeping, large scale change.
Outside–in software development should not be introduced as a holistic development process. It is meant to supplement your current software development methodology.
Agile software development
Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams...
methodologies, outside–in software development takes a different approach to optimizing the software development process. Unlike other approaches, outside–in development focuses on satisfying the needs of stakeholders. The underlying theory behind outside–in software is that to create successful software, you must have a clear understanding of the goals and motivations of your stakeholders. Your ultimate goal is to produce software that is highly consumable
Consumability
A concept recently championed by International Business Machines , consumability is a description of customers' end-to-end experience with technology solutions . The tasks associated with consumability start before the consumer purchases a product and continue until the customer stops using the...
and meets/exceeds the needs of your client.
Outside-in software development is meant to primarily supplement your existing software development methodology. While it does ideally work in more agile environments, it is possible
to fit outside-in development into waterfall
Waterfall model
The waterfall model is a sequential design process, often used in software development processes, in which progress is seen as flowing steadily downwards through the phases of Conception, Initiation, Analysis, Design, Construction, Testing, Production/Implementation and Maintenance.The waterfall...
-based or six sigma
Six Sigma
Six Sigma is a business management strategy originally developed by Motorola, USA in 1986. , it is widely used in many sectors of industry.Six Sigma seeks to improve the quality of process outputs by identifying and removing the causes of defects and minimizing variability in manufacturing and...
methodologies. Outside-in software development is not a catchall solution, but a way to better your existing methodology.
The four stakeholder groups
What sets outside-in software development apart from other stakeholder-based approaches is the categorization of the four types of stakeholders. The following four groups are unique, but there is a lot of interaction between all four:- Principals: The people who buy your software--the most important stakeholder to appease.
- End users: The people who interact with your product. They experience how your software works in the real world.
- Partners: The people who make your product work in real life, such as operations teams and also business partners and system integrators.
- Insiders: The people within your company that have some impact on how your team develops software.
It is crucial to speak with all stakeholders, even if they are not the primary audience of your software.
Implementing outside–in software development
The outside–in approach does not require your entire development methodology to change. Outside–in development can supplement the existing tools of developers.Outside–in development works particularly well in the context of agile/lean development. One of the major tenets of agile development is to program with the least amount of waste. Outside-in methodologies promote only developing according to stakeholder requirements. By identifying your stakeholders properly and soliciting helpful feedback early on in the development process, agile and outside-in methodologies can mesh together seamlessly.
Kessler and Sweitzer recommend that, no matter what kind of development methodology you employ, you incrementally introduce outside–in development to your team. They cite the lack of enthusiasm by developers as the main reason to not implement sweeping, large scale change.
Outside–in software development should not be introduced as a holistic development process. It is meant to supplement your current software development methodology.
See also
- Software development processSoftware development processA software development process, also known as a software development life cycle , is a structure imposed on the development of a software product. Similar terms include software life cycle and software process. It is often considered a subset of systems development life cycle...
- Software engineeringSoftware engineeringSoftware Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software...
- Extreme programmingExtreme ProgrammingExtreme programming is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements...
- Agile software developmentAgile software developmentAgile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams...
- Waterfall modelWaterfall modelThe waterfall model is a sequential design process, often used in software development processes, in which progress is seen as flowing steadily downwards through the phases of Conception, Initiation, Analysis, Design, Construction, Testing, Production/Implementation and Maintenance.The waterfall...
- Six SigmaSix SigmaSix Sigma is a business management strategy originally developed by Motorola, USA in 1986. , it is widely used in many sectors of industry.Six Sigma seeks to improve the quality of process outputs by identifying and removing the causes of defects and minimizing variability in manufacturing and...