The process of designing and building software is an invention process.
Like inventors, software builders define a problem, refine it, pivot and sometimes regretfully devolve. Like inventors, developers respond to that same problem with constructs, architectures, models and components. The most important thing to remember as we build software is to give ourselves space to fail and pivot.
For years well planned and theoretically well thought out projects would go astray. They were over budget, out of time, and bloated beyond belief. Out of this grief ridden world of failed projects, a little idea, that of "extreme" programming and later "Agile" development began to take root. In essence, developers and development leaders began to embrace the "pivot". At its essence the idea of "Agile", was that software development was an invention process.
In those days, and sometimes now, in the most constrained environments, developers might have been told to "stay focussed", "just implement it", and "do what you are told". Today we understand that developers hold the key to understanding not just the "what must be built" but also "the how" and sometimes "why something might be better if built a different way". Developers are intimate with the algorithms, with the core issues and often even with the humanity of a solution. In other words, as they work through the problem, developers begin to understand the core tradeoffs at the root of the solution, including those that directly affect human experience.
At this moment, in stand ups occurring around the world, developers are explaining the revelations they have found as they explore their working domains. Because stand ups are daily, developers are able to slowly inform teams about their explorations and also their inventive solutions. As they work, developers are identifying key problems, inventing new solutions, and refactoring both ideas and code, until the overall goal is met.
The stand ups of one team working together day after day creates a synchronicity, though imperfect, it is tight. And this rhythm leads to the invention of new solutions. This is the pulse of agile and the pulse of invention. New software is derived from the steady pulse of problem solving, creativity and the flexibility to follow the problem solvers to the solution.
This is the process of invention and it has overtaken the world.