Your cart is currently empty!
How to develop software
As I discussed earlier, one of the key approaches to software development is the HoliDev model. It combines requirements-driven development, outcome-driven development (eg A/B testing) and AI-driven development. It may easily seem that for each feature or functionality, one type of development is selected and then used throughout its lifecycle. In practice, however, we see the development approach evolving over its lifetime.
First, product management has determined that a certain function or feature is relevant for the customer. This function or feature is initially specified in a requirement specification and then built by R&D. Even though it may not be clear what the metrics are that the function or feature is looking to improve, it’s reasonable to assume that there are implicit assumptions about the effect of the function or feature on the performance of the system.
After deployment, the system’s instrumentation will show certain changes in the collected metrics and KPIs that can, reasonably, be attributed to the newly added function or feature. Assuming the function or feature proves to be valuable, the next step is to consider how we can improve the metrics and KPIs driven by the function or feature. At this point, the team can decide to switch from requirements-driven to outcome-driven development and start to develop hypotheses and test these through experimental development approaches, such A/B testing or Multi-Armed Bandits (MAB) algorithms. Over the course of several experiments, the metrics and KPIs can be optimized by testing the alternatives in operation.