Agile methods help to incrementally deliver software product regularly to end users early and often. But, did we wonder whether the software that is being developed at certain cadence are of real use to the customer and whether the end users would really use the product features released? Or, will they be accepting it and would take out time to bring the released features into actual use for which it was envisaged? There are many such questions that need to be considered while planning the development of the product features and it’s delivery to fulfill the business need. The frequency and the interval in which the software would need to be developed and released must be at fixed cadence and ready to be delivered on demand. The released solution should meet the business requirements, considering stakeholders involvement and contribution with appropriate business planning and meeting market demands. End users should be fully aware of the prioritized features likely to be available incrementally well in advance that would fulfill the expected business requirements.
The software increments produced at certain cadence are expected to have a certain level of maturity, as given below –
Working Software – produced at the end of every iteration. Usually, these are potentially shippable or releasable meeting the definition of done and acceptance criteria. Developed product features are good enough for a demo to customer and stakeholders.
Potentially Shippable – produced at the end of one or more sprints that are potentially shippable. Working software produced at the end of every iteration might not be potentially shippable (or releasable) until it’s fully integrated, well tested and bundled with useful features, and any need for test or release pipeline automation should have been completed. Software that is ready to be released on demand is qualified as Potentially Shippable / Releasable Software.
Consumable Solution – produced at the end of a group of sprints (sometimes called as releases) that are potentially releasable, desirable and consumable by end users. Consumable Solution bundles the completed features addressing the real business functions, that provides business values and fully meets to end users requirements as expected. It should also combine all the necessary hardware, software, network, security etc. requirements in order to utilise the solution.
The incrementally delivered products should be focused towards achieving following one or more characteristics …
Continuous delivery of business values
Maximize Return on investment (ROI)
Release valuable features early and often
Increase the number end users feedback loop
- Test new features in order to ascertain acceptability
- End users and stakeholders satisfaction
Usually, product features can be considered to be broken into multiple related user stories, where a certain set of user stories might represent a business theme. These user stories should meet the INVEST criteria – Independent, Negotiable, Valuable, Estimable, Small, and Testable; which when completed; should comply with the Definition of Done and defined Acceptance Criterion. Let’s see how a software meets the requirements of being releasable and consumable in detail.
Potentially Releasable Product Increments: Product increments produced at the end of every iteration are often the working software. But these might not be completely usable and releasable, even if the developed features might be working. If the product increments that have even partially completed features and have been tested thoroughly; then it can be considered as Potentially Shippable/Releasable Software. Here, we can safely assume that a feature might consist of multiple user stories that have been completed as per the definition of done meeting the acceptance criteria defined.
Consumable Product Increments: Normally, software features are defined for a specific set of users to fulfill a certain business function. But it’s possible that completed feature might not be fulfilling all the related must have functional and non-functional requirements along with associated features. If with the developed set of user stories (i.e somehow only the partial features) users are unable to perform the intended function; then such partially completed features may be ‘releasable’ but not ‘consumable’; as it would fail to fulfill requirements in entirety and end users may be unable to execute the intended business function. In such cases, the group of user stories (features) are planned in such a way that by the end of a number of iterations, as a whole; it would be of real use to the end users in order to perform specific intended business function.
Lifecycle of Producing Consumable Solution
How To Maximize Delivery of Consumable Solution:
Though bundling software features in such a way so that it fulfills the expected set of business benefits in delivering values; requires a certain level of planning and reorganization of product features. This could be achieved with appropriate planning, refinement, disciplined development and delivery approach throughout the product engineering lifecycle.
Formation of Feature Teams
- Appropriate feature distribution and allocation across feature teams and proactively resolve cross-team dependencies whether be it technical, functional or organizational etc..
Reorganize/reorder features such that teams are able to select and work without any hiccups and are to distribute the balanced value delivery across teams
Following Product Management
- priorities the product features both at portfolio & program levels using Lean Kanban method
- proactively consider features dependencies, business values, criticality and associated risks while planning
- Epic to User Stories Journey
applying the best practices of requirement envisioning and refinement continuously
planning at portfolio, program and team levels in order to align with core requirements
take the Epic to User Stories journey with the application of Story Mapping and Value Stream Mapping
- Continuous Feedback Loop –
- Increase feedback loop by having higher and frequent end users involvement
- Ascertain that feedbacks from business users in the form of new or changes are feed into the product development as prioritized
- Optimizing the Whole System
- optimizing the whole system with a focus to deliver Minimum Valuable Product (MVP) at each iteration
- Align or change business processes as required based on new business rules/processes formulation and functional structure
Almost all the well defined Scaled Agile methods like – DAD, SAFe, LeSS etc. directly or indirectly describes producing the Consumable Solution.
Working software produced iteratively and potentially shippable delivered incrementally with the ultimate goal to provide consumable solution for continuous business feedbacks. Agile software development helps in delivering products not only incrementally but also satisfactorily as per the end users and business need.