Multi-hump software development is a concept in software development where every major feature passes through multiple stages until the given feature is deemed good enough to be included in a software release. In a typical scrum model, multiple features can co-exist and be progressed at different stages within every given sprint.
Typically a multi-hump development consists of three stages, such as 1) research, 2) development, 3) alignment. The reason for having three distinct phases is the assumption that each stage must be completed within the scope of a single sprint - providing a demo of each feature to all stakeholders before progressing implementation to next stage. Each stage may be repeated if not finished; however, the sequence of stages remain fixed.
The research phase is all about creating feature prototypes. Research phase typically focuses on creating multiple prototypes to be presented to project stakeholders (and potentially also test users). The research phase maybe even repeated until a go-ahead is given to a given direction for developing a production-grade final functionality. Therefore research phase minimises the amount of time needed to create specifications and time potentially wasted due to wrong understanding of business and usability targets.
The development phase is all about creating a testable feature. Development phase focuses on delivering the working candidate of a feature covering all user stories and being testable by all test cases. The development phase ensures that each feature is delivered given the quality and engineering standards required to provide the feature's further maintainability and testability. The development phase is only finished when the software is deemed suitable for integrating with the product, and all test cases are already created. The development phase, therefore, minimises risks of shipping non-testable or non-maintainable code.
Alignment phase is all about integrating the final feature. Alignment phase focuses on validating feature candidate by checking if the feature is passing all quality metrics and testing scenarios. The alignment phase may require further improvements due to discovered security or quality issues. The testing phase ensures that each feature is integrated with product mainline given the quality standards necessary to ensure quality, for example: covering stability and security of a feature. The testing phase is only finished when the software is free of major quality issues.
The key point in this concept in multi-hump development is that at no point there should be any code freezes and no single-phase (sprint) should be deemed stabilisation phase as such. Instead, different functionalities should be progressed through all stages: research, development and alignment and therefore may appear in different sprints even three times as different implementation phases.