This week’s Insights from Soldo HQ comes from Soldo’s Head of Product Daniele Marino. Daniele draws on his background in philosophy to analyse the evolution of software development methodologies.
In the past, Waterfall was THE methodology for product development. We grafted through long months of design and specifications, followed by even more months of hard development before even daring to hope for a sneak peak at any concrete work.
Nowadays, this no longer makes sense – and that’s a good thing.
Everything has speeded up so much that our expectations are higher than ever. The fear of producing anything that may end up being wasted has pushed us towards a new approach to developing; one that is quicker and more iterative.
Looking back, however, there was something about the old way of doing things that ought to have been worth saving. I call this the power of abstraction; the process of conceiving of a feature as a system – a big omni-comprehensive architecture in and of itself.
In the days where Waterfall reigned supreme, we would invest huge chunks of time trying to imagine every possible use case, like philosophers in Socratic dialogue. We held fast to the firm conviction that time spent early on in the software production cycle had the power to reduce costs at later stages.
Over the past decade, I’ve become convinced that this very power of abstraction is key to understanding the concept of software refactoring – of taking the phenomenological event of a single need, and metaphysically elevating it to what philosophers call the medieval universal. It is this that I advocate rescuing from the remains of the Waterfall model.
Of course, agile software development is the BEST way to proceed when starting from scratch, looking for traction, catching an opportunity and navigating uncertainty. But when it comes to consolidating your business and making it sustainable in the long term, I believe it’s time we rehabilitated a few of those older principles from the Waterfall model.
Nobody today would dream of spending months doing nothing but design and deliberation, delaying any expectation of concrete results. Nevertheless, once you’ve gathered a healthy number of use cases, and you can see the iteration process has begun to bring changes to your first features – expanding and extending their ‘primitive’ ideas – it’s then that those features ought to become systems.
Thus, the Agile incarnation of the Waterfall system is built, step by step, from the rationalisation of use cases. It’s then that the system is elevated to something more universal, against which every use case must be tested; firstly to maximise ROI (return on investment) on previous development, and secondly to package it as a new feature, reusing the very same flexible architecture.
At Soldo, we’ve accepted that Waterfall is dead, and we’re proud to be building our product as children of the Agile generation. We think in terms of systems, but we implement them piece by piece, use case after use case. Our vision is of a system that represents our unique compass, and will one day result in a super-configurable product, fit to serve any kind of need imaginable.
Now that design itself is becoming a system, resulting in the evolution of the UI kit concept, I think it’s time to usher in a new era of modular product architecture – one that sustains and simplifies the future configuration of our work. A process that optimises the development effort for the long haul, making its value endure and grow over the course of time, and doing away with waste.
Because, as they say of pigs in Italy – you shouldn’t throw anything away.
After all – as the British wartime saying goes – waste not, want not.