Skip to main content

Table 1 Software solution natures and development principles

From: Future software organizations – agile goals and roles

  Customer Space Problem
Type
Software (System) Solution
Nature in Theory and Practice
Strategic Approach
A Well-defined Goals and requirements known in advance, solution fully specifiable • Plan-driven software engineering and management
• KEYS: Time-to-market economically with optimal solutions
Except ill-defined boundary conditions
Example 1: Calculation of interest in banking software (mathematically defined, ill-defined boundary conditions such as number of needed calculations per second or accuracy as number of digits in output.
Example 2: Implementation of a new law, e.g. in banking.
• Optimize for development risk. Example: Implement first most crucial parts of the law (ones with most penalties). Implement less risky parts later, closer to deadline in order to avoid or minimize the risk of paying penalties.
B Ill-defined Success criteria and requirements uncertain, multiple possible solutions. • Agile software development (accommodating uncertainty and change iteratively)
• KEYS: Stepwise shaping following customer feedback to converge for a mutually satisfactory solution
Example: developing new type of application • User-experience driven;
• Example: Measure user retention and service usage and develop or pivot accordingly.
C Wicked Problem changes over the life-cycle influenced by the software solution interacting with the users and the system environment. • Evolutionary software development with continuous experimentation and feedback
• KEYS: Continuous value definition and assessment (assumptions), core asset development and management, platforms and ecosystems integration (co-creation)
Example: New product development, e.g., new fitness device platform enabling customized software updates • Surveying users and the ways they use the product and insert new software