Innovation Through Prototyping

Thoughts on bringing something new to life.

I like the idea of seeing prototyping as a generic tool for bringing ideas into reality, and turning them into product.

Regarding software, I consider a product to be a single instance of an application environment (you will need to define exactly where the application environment boundary lies for your particular software product).

For it is the application environment, after all, that goes on to service the consumer.

Prototyping is characterised by small, rapid, and iterative cycles of Plan-Do-Check-Act (PDCA). It personifies the “start small, think big, fail fast” start-up mentality, which is key to the success of most high-value, disruptive innovation & creativity.

Here are some common developmental stages / phases I have observed innovative companies move their products through, in order to reach product maturity:

Prototype –> PoC –> MVP –> Alpha release –> Beta release –> Wide release

Stage / PhaseCharacterised By
PrototypeA single, rapid loop iteration; used throughout.
Proof-of-Concept (PoC)Demonstrates a hypothisis is true / feasible in reality.
Minimum Viable Product (MVP)The smallest unit of value delivery, shippable to the product consumer.
Alpha releaseInternal, small scale production.
Beta releaseExternal, small scale production.
Wide/full releaseLarge scale production; towards meeting total demand.

Componets of the term ‘scale’ as it is used here:

Scale = # product instances (e.g. unique application evironments) x speed/frequence of deployment

When it comes to application environments, in contrast to hardware products, a deployment or delivery can be a brand new instance OR it could just be the updating of an existing instance (e.g. replacing some sub parts or components built from newer code).

Software’s ‘bits’ are, it seems, easier to re-arrange than hardware’s ‘atoms’.

Product maturity can also be characterised as the movement from scarcity of a product, to having that product in abundance. In this way the product is able to balance supply against the total demand that exists (assumes people want or need the product).

In addtion, I find the concept of using prototyping-as-a-tool, when it comes to introducing new product functionality, does align well with both the Agile (i.e. easy to change/adapt) and DevOps (i.e. you build it, you run it) movements.

All Work Has Product

If not, why bother?

Work is something which a human or machine (technology) does to affect some kind of change on our reality. That change may be something obvious (a new table has been made) or very subtle (a decision has been made). In all cases, something is made present which was not present before the work took place.

If an official product name/title does not exist for what you are working on, then it should be possible to describe what the product of your work is, in your own words.

If work has no product – think output – then the question should be raised as to whether it is valid and meaningful work to be doing.

Jenkins Should Be A Robot

Jenkins: The Build Machine.

The Jenkins icon depicts an old-school Butler, with the quaint – and slightly amusing – suggestion being, we are employing another human being to go away and do some work for us.

But to me, however, the real Jenkins is – whole or at least in part – actually the Machine-that-makes-the-machine!

When combined with IaC, and automated API-based provisioning engines found in clouds such as AWS, we have all the digital instructions & machinery we need to create the end-machine (application environment) that will serve the end-consumer.

Remeber, Jenkins makes the digital software products that go on to serve end-consumers; it isn’t an end-product iteslf.

To re-interpret an old phrase: Jenkins is the means to the end, not the end itself.

The analogy I would make is this: Jenkins is like a robot-arm (or die-cast machine) in a car factory. It is part of the machinery which builds the car, but it is not part of the car itself.

Car factories are industrialised; typically they are designed to mass-manufacture at scale. They can stamp out millions of cars.

My argument is, essentially, that ‘robot-arm’ is to car what ‘Jenkins’ is to application environment.

Coming back to the original point of this article, Jenkins is a machine that can mass-manufacture software artifacts, not a human that hand-makes each one at low scale.

Thus, at least by this logic, Jenkins should be a robot, not a human. 🙂

An Essay on Capital Economics

Let’s take a detour from technology for a short while…

I have often mused over how the money supply grows.

It stands to reason that when the amount of “stuff” (i.e. production output) changes then the money supply must also change in lock-step, in order to avoid any destabilisation from significant & unwanted amounts of inflation or deflation. Total money supply is in essence an abstract (technological) representation of total “stuff” supply (i.e. products, goods, and services) that make up the surplus by which Economics exists, to lay out a just mechanism for distribution to the populace at large (without surplus there is no Economics).

Concider the main actors in the economic system: 1) Soverign, 2) Government, 3) Central Banks, 4) Retail Banks, 5) Businesses (surplus providers) & individuals (surplus consumers).

The authorities (Soverign, Government, Central Bank) say to their Retail Banks:

You can have the power to create brand new money out of thin air in the form of loans, however you must be able to attract that money back – with interest – to show that the recipient of the loan created new value for the economy (i.e. the societal surplus). This way, money supply should grow in-line with production output.

And remember, each currency unit added to the money supply will reside in bank accounts, and so, due to fractional reserve banking, will be multiplied many times over (to account for screwges in the system that hoard wealth). Thus, demand is amplified and circling back to the original loan, this was to increase supply; they both were able to grow together.

The ultimate purpose of this capitalistic economic mechanism, or system, is to move society away from scarcity and towards abundance.

But what of the profit motive? This is simply a means to utilize the greed of the individual in a way that helps rather than harms the society around them. The deal is: individuals can have more of the surplus of society but in return they must also be adding back into the surplus in a net positive way, by putting in more extra value than they are taking out by consuming stuff (products & services). Therein lies the genius of capitalisim; aligning personal greed with societal improvement.

If, for a period of time, supply has not kept up with demand (e.g. a supply chain shock), then here enters a second way to increase money supply. The Central Bank is empowered by the Government/Sovereign to offer increased interest rates to banks who store their on-hand deposits overnight with them. If Central Bank base rates are high enough then banks will elect to keep their money with the Central Bank rather than using it to tether a higher dept to equity ratio (remember banks can only be leveraged on their deposits by up to a certain ratio, usually by law). The net effect is banks lend less to the public, but also earn interest which is actually a net addition to the money supply (put into the wiser resource-allocating hands of the bankers, of course 😉 ).

Finally, we have Quantitative Easing (QE) & Quantitative Tightening (QT). This is another way to increase money supply but with the notable difference that an account, or balance, is kept of exactly how much money – usually in the form of government or company bond purchases – has been added into the system. QE has the effect of stimulating demand by increasing liquidity throughout the system. This includes demand for assets such as property and securities (stocks), making asset prices go upwards, and asset owners feel richer and therefore more likely to spend. QT has the opposite effect; liquidity is pulled out of the system thereby decreasing demand.

In conclusion, balance has to be maintained between supply and demand forces whilst, over time, the economy is grown. This is how we achieve prosperity through abundance for all. And – rather excitingly for technologists – the author believes technology plays an every increasing role in this beautiful process, as society becomes more and more advanced.

Perspectives on DevOps #1

Short, succinct thoughts on the DevOps movement.

DevOps is about accelerating customer value delivery.

Some principles that can help enable this software mission:

Balance planning & doing – both are needed, but in the right amount

Ship often – small incremental changes

Ship reliably – have a stable build machine/pipeline

Fail fast, rollback safely – changes can be quickly & easily reversed

Always listenting – responding continuously to feedback

Always improving – have a product roadmap

Also, a short comment on people teams/squads based upon statements I listened to recently but were recorded a long time ago from Elon Musk:

The future is probabilistic.

A team of people is a bunch of probabilities pointing in some direction.

Aligning those probabilities to the same direction will maximise the chance of a successful outcome & future.