How to Create Meaningful Innovative Products

An innovative product, if monetized properly, can lead to a significant increase in market share and income. But how do you find one?

Let’s have a look at what we are trying to create: An innovative product.

So why does the product need to be innovative?

Not without a reason this question should be answered first. It is often a lot harder to be the first in the market when introducing innovative products.

Being second and adapting a certain product, for example to another market can often be more attractive than creating a new product.

Another motive might be the personal ego or the drive to leave footprints. While it feels very rewarding to create something from scratch, you should ask yourself whether it is worth it and whether this “drive” will fuel you till the end.

There are various reasons why you would want to create something innovative. And I’m the first to advocate for a “do it”, but please, be clear about WHY you do it.

The misconception about innovative minds

A widely spread misconception is that innovative minds such as Leonardo Da Vinci, Newton, Einstein, Schroedinger, Hawkins, Maxwell, Galileo, Bell, Curie, Faraday, Kepler or Charles Darwin were simply geniuses.

If you look closer though, you will find that all disruptive innovators had certain things in common:

Some of the most innovative products and ideas are very complex behind the scenes but easy to understand with a decent model. This makes it tempting to attribute all the hard work to create the model to the pure genius of the author.

Innovation is to cause change in a controlled way.

Why do customers value products?

Customer value is satisfaction, experienced by taking a given action relative to the cost of that action. Typically this action is taken to achieve specific goals.

Knowing your customers’ goals and to address them while marketing the innovative product with an appropriate ratio between satisfaction to cost increases your chance for a win-win.

Think about your customers’ goals, not yours!

The primary goal of (almost) every company is:

To make money

Especially in large enterprises, it is common to break down the goals into sub-goals such as to improve quality, increase innovation, reduce downtime, increase throughput, improve OEE, etc. which replace the main goal of the overall company (make money) during day-to-day operations.

While all of these sub-goals might make sense locally, it is often preventing a company to fully achieve the primary goal on an enterprise level.

The sum of local optima is not the global optima

The knowledge about the goals, corporate culture, innovation strategies and internal politics of a customer helps to determine the appropriate price.

Every pitch, flyer, link, poster, and whitepaper must address these goals.

The definition of meaningful is something that has a purpose, that is important or that has value.


So if a product is supposed to be meaningful, it needs to provide value,

Why do customers love a product?

There is more to it than “just” value that makes someone love a product. According to GoodTherapy love is:

  1. Extreme feelings of attachment, affection, and need.
  2. Dramatic, sudden feelings of attraction and respect.
  3. A fleeting emotion of care, affection, and like.
  4. Some combination of the above emotions.

All the mentioned definitions, even though made for loving another human, can be adapted 1:1 to ingenious products

  1. Some people check their social media every few minutes until it shows addictive behavior
  2. Some users religiously swear on using only certain computers with fruits as logo, others religiously reject them
  3. The amount of care given to the virtual characters for example in online games sometimes leads to less social bonds in the real world

As you see, many attributes apply to (innovative) products in a similar way.

Having that said, as you are the one designing the product, it’s up to you what character your new product shall have.

So please keep in mind while designing your products:

Show respect and act ethically. Do not intentionally addict customers for the sake of profits

Technology is supposed to augment and simplify navigating life; to make it more joyful and enrich the experience. It is not the other way around, that we serve technology.

The enterprise environment

In many cases, companies had a more or less working product management which was shielding the customers from development team questions such as “what do you want to achieve”. This often prevented disruptive innovation.

The development teams were embedded in V and waterfall models, which work very well for products where components need to be put together and projects.

Software development, however, is a creative process that can better be compared to painting a picture. Even a doctor’s visit to check the reason for certain symptoms comes closer than assembling a motor.

At the same time the handover date, scope of work and resources/price need to be communicated upfront. A timeline is required to, for example, ramp up the complex marketing machine for the new product.

This is also btw, why I think it is not good to speak about projects in product development:



A product team is quite the opposite. It is an in many regards well-balanced, empowered team that stays together and continuously explores innovative opportunities as long as the product is alive. The goals are defined per iteration and base on moving targets, such as KPIs.

It’s literally a clash of two systems, military command & control vs. empowered, highly trained special forces dropped behind the lines. While in military the reporting structure seems to be well integrated, in organizations they are often not.

Understanding the difference is very important if you are to build your innovative product in an enterprise environment.

The process of finding Product Market Fit

The process of finding an innovative product that fits the market looks pretty straight forward but is maybe the toughest job in a company. It often requires a lot of ingenuity.

A Minimum Viable Product is defined in many different ways and you will get 30 different answers if you ask 15 Product Managers.

For me, it is defined as a minimum increment that has the characteristics to be valuable, usable and feasible.

Please note the difference to Eric Ries’s hypothesis testing or the smallest possible experiment.

Such a hypothesis test could be a paper-fold prototype to show an aspect of the new product to customers, but it is not sellable. A hypothesis test serves exactly one purpose, to validate a hypothesis quickly to rapidly reach product-market fit.

I see the complete product development process as a path in a tree, starting from a root element, developing towards leaves. Without ever reaching an end, until the product gets discontinued (compared to a project, which has an end).

I believe both concepts work well together to find incredible solutions. In the mentioned tree, every edge, leading to a new node represents an MVP. The hypothesis testing hereby defines whether to go left or right for the next iteration / innovative leap and sets the direction with minimum investment.

In other words, there are two tracks going on in a product team at every given time:

  • Product Discovery (WHAT): Finding a Product Market Fit through validated learning using hypothesis testing. In the product discovery, the team is to find a market need that is scalable and valuable
  • Product Delivery (HOW): Smallest increment to deliver value to improve the Product Market Fit

In many organizations, Product Discovery is separate from the product team which pretty much cripples the team and degrades the whole “product team” to a feature delivery team or extended workbench. You can’t expect innovative solutions from such a team.

A truly empowered product team determines the product’s destination (within bounds) on its own with high-level targets, set for example with OKR.

The required skills are to understand the market, the domain, being able to define a business strategy, to develop a product strategy, deliver on it, make money, do consulting and often also sales as well as business development at the same time.

You could open a startup with such a team. I didn’t initially call it without a reason maybe the toughest job 🙂

The art of having ideas

There are maybe as many creativity techniques out there as people trying to have an idea.

Brainstorming, freewriting, swot, five Ws, etc. all have fancy names but do typically more or less the same, they force you to act and think outside the box, either in a group or as individuals.

Every time you take action, you allow your mind to let go of a thought it otherwise would try to groom. Taking action on an idea enables you to have more ideas afterwards.

I call this the hydra method according to Greek mythology where Heracles (Roman = Hercules) was sent out by Eurystheus to kill the Hydra. Every time Heracles cut off one of the serpent’s heads with his mace, the Hydra would regrow two new.

An activity can mean writing it down, sketching the innovative idea or creating a prototype, etc. So some form of doing or taking action. It can also mean to delegate the task of exploring an opportunity, work with a university (Capstone, Ph.D., etc) or discussing it with a team of open-minded colleagues.

You can use Hydra to increase the flow of ideas in all situations from innovative business ideas to vacation ideas. Because you just need a blank notebook to get started, you can do it everywhere, no matter whether you have a power supply or not.

The core of Hydra can also be found/combined in other techniques, such as brainstorming and slow-motion multitasking.

Must have documents

From my experience, not a lot of documents are really important in a product team, but the few remaining are so important that I would not advise developing anything without them.

The documents are centered around the following questions:

  • Why do I build the product?
  • For whom do I build the product?
  • What is the value I’m creating?
  • How it the value delivered to the customer?
  • What is the impact of my product?
  • What’s my competition?
  • How do I measure success?

All documents are considered living documents and should be managed with a version control system.

You will get access to vector graphic templates of the canvases I use, via the newsletter soon.

All documents should be visible in the area where the team works at any time, for example in the team room, etc. The team is supposed to be able to have informed discussions during meetings.

Most of them can be found in the Design Thinking process and SCRUM.

I hope it also gives everybody who thinks Agile means “we don’t have to plan” an idea of Agile planning.

Porter 5 Forces

To gain an understanding of the competitive landscape and the attractiveness of the market for the innovative product, M. Porters 5 Forces is a great methodology to apply.

The understanding of how the threat of new entry, buyer power, the threat of substitution and supplier power apply pressure on the market which increases competitive rivalry helps to understand patterns and often explains the behavior of market participants.

If you will, the 5 Forces show you how the sandbox looks like in which you want to play with your new product. This is why I would advise doing Porter first whenever you think about entering a new market.

Lean Canvas

20 years ago it was common to create extensive 300+ page business plans before doing anything else. Most of the time with the same result, once created, it never got updated or even used in day to day business.

The core of the one-page lean canvas is the same as the 300-page document:

How to deliver value to the customer?

You can use the Lean Canvas to architect and communicate your ideas to team colleagues or investors.

For a very good description of the different areas please see Ash Maurya’s description on leanstack.

Please note, that a Business Model is not a Revenue Model. It is helpful to distinguish wherever possible. Often though, many use the term interchangeably.

A Business Model describes what and how value is created as well as how it is delivered to a customer. It is about value. A Revenue Model is about monetization.

Typically the Revenue Model is anchored in the lean canvas in the Channel and Revenue Streams section.

The reason it is good to distinguish this is that in enterprise environments, value is typically created by the product team and the monetarization by the sales machine. The salesforce hereby addresses many different vertical markets and regions.

By making this cut, misunderstandings in responsibility can be avoided and a clear scope for discussions is set.

In a truly empowered product team, the sales role would be represented in the team as well but as the product and its target market grow, the benefit of separating this role gets clearer. So whether it makes sense to integrate this role into the team depends on your business and its maturity.

Revenue Model

A revenue model describes, how you intend to make money with your product. It sketches who pays for what and how.

I’m not aware of a standard template for the Revenue Model and typically use Visio to draw a component diagram depicting the value- and revenue flow in one view. In many cases, I visualize this as an overlay of the Lean Canvas itself to show how different customer segments interact.

User Journey

A User Journey visually shows the interaction of a user with a product, process, or in general a system.

It can be used to capture customer interaction with an existing system during the Product Discovery.

The User Journey describes step by step what the user experiences while executing certain tasks in a sequence to get a job done.

The level of detail can vary from 10000ft view down to a fine granularity. In addition to the tasks, the team notes the emotions the customer is experiencing and connects the moods with a line along the sequence of actions.

After finishing the User Journey, it is easy to detect which situations need improvement. Typically delivering solutions to improve the most negative feelings in the first iterations should provide enough value to the customer to convince to purchase. (If priced appropriately)


Personas go hand in hand with User Journeys. Personas give the anonymous, typical user a face in the team. They create empathy in the team.

During Product Discovery the team identifies different archetypical users. They represent goals, Jobs To Be Done (typically referred to as JTBD) of a large group of users.

A persona is presented on a poster-sized one-page document. Typical attributes captured are: Tech seavyness, age, occupation, location, motivation, goals, frustrations, personality, picture, etc. The captured attributes vary a lot from domain to domain.

Unspecific personas such as “user”, “customer” etc are not allowed.

Product Vision

A Vision describes the desired state or dream in the future. Watch out that it doesn’t just sound like a dream though. The Vision can be on a company level, or in large enterprises broken down to a finer granularity.

For a product team, it is helpful to use a product vision. It needs to be in sync with the corporate vision though.

A product vision must follow the overall theme of the product (line). Be very precise with your wording. For example instead of: “Create transparency and insights for cities” use “Create transparency and meaningful insights for city infrastructure“.

The differences are often small, but have a huge impact and help to drive conversions. In the example above, adding “meaningful” causes to think about what meaning for a customer means and how it can be ensured to provide that meaning, what a customer wants to achieve, etc.

Epic Map

Epic Maps structure User Stories visually in one view and allow to easily communicate progress to stakeholders and in the team.

In an Epic Map, Epics are grouped into categories and broken down into User Stories. I haven’t seen this representation in tools such as Jira, which makes it a bit tedious to maintain. But it’s a great way to improve communication.

So User Stories are created in the Epics Map, moved around, refined, split, etc. and once their position in the big picture makes most sense the stories are added to the Backlog. Starting from there, both systems need to be synchronized from time to time.

When working with colors and stickers, it is very easy to communicate overall progress towards releases and dependencies.

You can see it as a visual representation of the Product Backlog with additional structure. It looks similar to a Work Break Down Structure.


As always, risks have to be considered and proper mitigation needs to be identified and tracked.

In addition to technical risk, risks in the market (demand, financial markets, customs delays, etc), company culture the business model, revenue model, etc. has to be captured.

Because of the iterative nature of SCRUM though, the list of risks is typically not as excessive compared to traditional project management, as the team is flexible to reprioritize the Product Backlog. So risk naturally comes more often from uncertainty in the environment than feasibility.

Product Backlog

The Product Backlog is a prioritized list of User Stories written from a user (persona) perspective (requirements) by the product owner.

A typical User Story has the following structure “As a PERSONA (Who), I want to ACTION (What) so that I can BENEFIT (Why)”.

It is important to note that a User Story clearly states what’s in for the customer. In other words, it refers to values and goals.

Unspecific personas such as “user”, “customer” etc. are not allowed. The same goes for stories not having a user in focus and referring to an internal persona, for example “Product Owner”, “Stakeholder” etc.

A persona is someone interacting with the system and someone benefiting from the provided value.

User stories are estimated by the team. They describe value (What). The team pulls as many stories into the Sprint Backlog as the Velocity permits.

In the Planning Meeting, the dev team breaks User Stories down into Tasks (How). During this, the PO is only required to answer questions and doesn’t participate in the estimation.

Once a Sprint is completed, the team hands back items that meet the acceptance criteria from their perspective and the (more general) definition of done in the Sprint Review.

The PO either accepts a User Story and sets it done or adds it back to the backlog.

The sum of “done” User Stories per Sprint is called increment. An increment must be shippable to the customer. But the PO eventually decides wheter he wants to do so, or not.

The Product Owner is responsible for the Product Backlog. No one is supposed to add items, modify or reprioritize without the mandate from the Product Owner. Stakeholders can provide their input, for example their priority, but the final call is made by the PO.

One word about priority: The reason to prioritize is to reduce complexity and allow sequential processing. This means, there can’t be multiple priority 1s.

Goal Sequence

Roadmaps have one major flaw in development: They don’t work (when they are too detailed)

As said earlier, development is a creative process. Putting into a roadmap “what”, “when”, sometimes even “how” combined with the fixed team size (resources) sets the team up for failure.

Interestingly medical doctors seem to have fixed this perception with their customers long ago. Try to set up a roadmap with a doctor include payment, delivery, KPIs, and so on.

The answer you’ll get is most likely “I can’t agree to this” because: “you are a significant part of the solution” and / or “everybody is different” etc.

At the same time, roadmaps are important because they allow other entities in large enterprises, such as marketing, to plan.

So as often, the best way lies in between. The theme can be communicated and the customer value, but avoid by all means to have a roadmap of features.

To provide guidance to the team, better set a sequence of desired business outcomes instead of roadmaps.

Here is what Marty Cagan proposes: Use Business Objectives, describing the specific, prioritized objectives for each product team.

The best way to define Business Objectives I’ve seen so far is OKR. You can find a very good book about OKR here.

So create a list of OKRs and tell the team WHAT, as well as KPIs to measure success and let them figure it out.

You’ll be surprised by what a truly empowered product team can accomplish. This is where the team will need the Vision as a context.

If used properly, the same OKRs can be conveniently used in corporate performance planning.

Idea potential evaluation

Once a list of ideas has been created, a phase that requires a lot of discipline starts: To prioritize what ideas should be developed, in other words, the idea potential evaluation.

This evaluation is typically difficult because in it’s infant state it is hard to estimate the impact of an idea. The following describes a mechanism that works very well for me.

The core of a profitable business is scalability and value

Increasing complexity and effort means higher resource usage or slower time to market with constant resources.

More gain or removed pain, on the other hand, increases the value of the solution.

If you put this in a formula, you’ll get:

\text{Ranking} = \frac {\text{Pain or Gain * Number Users}}{\text{Complexety of Solution}}

As the concept focuses on customer value, combining it with Value-Based Pricing enables you to answer the question about an approximated market price, as well as the revenue potential, very early.

The idea with the highest-ranking shows the best value to effort ratio.

Do patent research

In 2018 308,853 patents have been granted in the U.S. 159,724 directly related to digitalization in data processing, Transmission, wireless, image processing, data processing, etc.

These numbers alone show, that getting a product to the market is almost impossible without violating patents if no research is done. Patent research is a central part of the product business.

To do research, use the U.S. Patent and Trademark Office (USPTO) to research prior art and note down how your idea is different. It is wise to use an IP attorney to make sure you are legally ok to sell your product and protect your own IP.

Patent research can be a great way to check how others solved a particular problem as well.

Check for standards & regulations

A topic that is often overlooked is to comply to certain standards such as FAA and FCC. Which authority is responsible depends on the country you live in, but wireless compliance is a topic in almost every country.

FCC compliance ensures your product is not interfering with other radio communication. Please note that a product doesn’t need to purposely emit radio waves (see EMI). You still have to comply.

Please note that your product must comply with every country you want to sell your innovative product in.

To export a new product, it needs to get export control (ECC) clearance. Clear means that your product is OK to be exported.

Create a prototype

Prototypes are the heart of a hypothesis-driven development. They can be used to generate proof points for a variety of different areas.

Never underestimate the power of being able to prove a point quickly!

A paper fold prototype or mockup could, for example, be used as an MVP test to be shown to a customer, collect feedback and show fast turnaround time.

A demo webpage can be used to evaluate the market resonance and willingness of customers to purchase a product or service before it is even fully built.

In yet another situation, a prototype (3D print, Algorithm, etc), is used to eliminate a technical risk and show the feasibility of a concept.

When done properly, prototypes often give the impression of a lot of progress to others. This can be dangerous at the same time if stakeholders do not understand what the purpose is and expect the same speed from the team going forward.

So be aware to maintain a certain quality standard or get the (written) commitment from everybody upfront that this deliverable will not be integrated into production.

Important KPIs

Depending on the type of innovative product you’re building, some indicators may change.

KPIs need to measure success on an appropriate granularity to provide the necessary foundation to make decisions without adding additional work.

Plan to build the product in a way, that the application automatically generates the required numbers for you in real-time.

When you define your goals with OKR, as discussed earlier, a KPI is simply measuring the key result.

Always have the primary goal of your company (“To make money”) as one of your KPIs in some form. This could be achieved by breaking it down to measuring the number of paying users while not increasing the cost.

Please note that there are times where you purposely sacrifice revenue to, for example, generate a customer base and get data for business models basing on analytics. In these cases, it is important that you have a scalable model and your cost stays more or less constant.

Also, always be sure to collect data that contains a higher density of information, even though you might not know what to do with it yet. Think about GPS positions of people for example. One can immediately think about correlation, accumulation of reported positions, distance to fixed positions, etc. to monetize in the future.

My point is, there is raw data that contains by nature a lot more possibilities than others.

Have in mind that there are also counterproductive KPIs, for example to measure productivity in lines of code. This is absolute nonsense.

Think about chess: A good chess player uses fewer moves to win. If he was measured in how many moves he uses to win, a game would take forever.

Being successful is about using fewer moves than your opponent to achieve the same result

So as a general rule of thumb, set up KPIs around resource usage, proof of value and profit generators. For example, the number of connected assets, the number of users, number of uses per day, usage time, follow up actions, server time used, number of inquiries, number of requested trials, customer acquisition cost, revenue, maintenance cost vs development cost, customer rating, etc.

Digital Transformation is tricky

According to Samsung, the company implemented what they call a New Concept Development in 2013. At the time, this was the new product development strategy of Samsung. I’ll explain what this has to do with Digital Transformation in a minute.

As a part of Samsung’s overall innovation process, a Project Innovation Team (PIT) was born out of the need to have an incubator group to work with every business unit to provide more market insight.

Taking advantage of the Google Android operating system, the company is nowadays leading the global Smartphone market with 22% in Q2’19.

It is interesting to read Yoon’s comment on the core of the change.

The primary mission was to change our customer-facing product development process from engineer-driven to customer-driven

Yoon C. Lee

Samsung’s PIT is following a four-step process: Understand, Ideate, Concept Development, Concept Finalization.

Transformation In Progress

Around 2006, the time the team has been established, a lot of organizations made the step to customer-centric development. In retrospect, I’m asking myself why it has ever been done differently, to be honest.

Considering the sizes of enterprises such as Samsung, Microsoft (which also performed a remarkable transformation), GE, ABB, etc. it is no wonder that some large companies are still in the process of implementing the new concepts.

Thinking of the Past

In most cases, the companies had a more or less working product management which was shielding the customers from development team questions such as “what do you want to achieve”.


Software development, however, is a creative process which can better be compared to painting a picture. Even a doctor’s visit to check the reason for certain symptoms comes closer than assembling a motor.

At the same time the handover date, scope of work and resources/price needs to be communicated upfront. A timeline is set to, for example, ramp up the complex marketing machine.




A product team is quite the opposite. It is an in many regards well-balanced, empowered team that stays together and continuously explores opportunities as long as the product is alive. The goals are defined per iteration and base on moving targets, such as KPIs.

Why the Digital Transformation is so hard

Until today, applying the project way of thinking, which is dominant in industrial environments, to product teams causes friction in organizations. This might also be related to the fact that development works best with budgets than cost/effort estimations.

Effort estimations and Statement Of Work-based pricing almost always lead to a lock-in of too many variables (quality, resources, time, money, scope) which lead to missing the agreed goals.

So why is it so hard in large enterprises to think of development like going to a doctor?

Digital Transformation isn’t about digital products

It’s about an organization’s mindset

Everybody accepts that doctors can’t tell upfront how long it will take to heal, so why do we expect the development team to be able to do this?

It is convenient and gives a feeling of control.

But it is a lie.

Consider the pain involved in accepting this. Whole sales organizations are incentivized to sell equipment which gives a commission. If such organizations are asked to sell digital subscriptions, you are set up for failure.

When given the choice, a salesperson would always choose the one with the high commission over the low. To be honest, who wouldn’t?

On the other side, for example for co-development, it is better to use incremental delivery contracts. This enables the customer to exercise influence and get what is required with a lot less emotional pain. On top of this, it enables a faster go to market for the customer himself.

Embrace Change and move on

The sooner an organization moves on and deals with this, the sooner products can be created that really provide customer value. After adapting the required mindset, introducing digital products is easy.

Where value flow is, there can be cash flowing as well


So what’s important for a successful Digital Transformation is:

  1. Separate disruptors / the Product Innovation Team (PIT) from the rest of the organization, while they are in their ideation to allow them to be creative without the judgment
  2. Get the PIT regularly grounded by involving operational entities
  3. Give the PIT market access
  4. Understand that PITs have another working mode (explorative, hypothesis-driven vs assertive)
  5. Incentivize everybody on the goals of the transformation
  6. Have goals that make sense for each organizational level
  7. Manage goals and expectations (a mindset doesn’t change overnight)
  8. Embrace failure, but require to document what has been learned
  9. Give everybody in the organization a voice (not via townhalls, but via collaboration platforms)
  10. Record every meeting and hold people accountable
  11. Reduce meetings to 6 participants and have a timebox
  12. Note the money spent for a meeting
  13. Trust the teams to make autonomous decisions
  14. Digitalize internally first, then externally
  15. Change the mindset to “You rent a team and don’t buy the outcome”

By now it should be clear, why I picked Samsung in the beginning. I think they are doing a lot right, which is why I’d like to cite Yoon again:

Without a replicable process, it is very difficult to make innovation stick within a large organization. But there is a secret sauce to it. Make the process extremely simple.

Yoon C. Lee

Print your guiding principles on the back of every business card. Why should you hide them from your customers anyways? You might, after all, have the same gole but didn’t know yet 🙂

Generative Software Design

Ever since Maurice Conti’s talk, which also included generative design, I thought about applying this to software development. In Generative Design, CAD software explores the solution space to find an optimal solution using constraints and objectives given by the user. For software development, I call this Generative Software Design.

When comparing software development with mechanical engineering and industry, it feels like we just finished the First Industrial Revolution.

The Industrial Revolutions:

First RevolutionMechanical ProductionSteam, Water1765
Second RevolutionMass ProductionElectricity1870
Third RevolutionDigitalizationIT, Electronics1969
Fourth RevolutionIndustry 4.0Internet, VR, AR, CloudNow

We just made it from reinventing the wheel over and over again (fixing a spoke with hand tools) to sharing libraries via GitHub (order spokes as components) and the use of platforms and frameworks (order wheels/set of components). So in a sense, the driver (steam) is the connected world.

Software Mass Production – The Second Software Revolution

Software developers bare with me. I know development is a creative task and what’s coming next is a stretch. 🙂

Following this thought process, it would be logical to next progress using standardization towards the Second Software Revolution (software mass production). And in a way in the past this trend showed from time to time when yet another code generator or a low code platform was born.

As a result of the Third Software Revolution, the code will be generated by providing (business) objectives. The algorithm then solves for an optimum independently. By using Generative Software Design, the glue between the modules and maybe the modules themselves are optimized. A computer explores the solution space for the best design.

Software Mass Production Prerequisites

  • All existing libraries need to contain a standardized description and have some form of unified interface (Think swagger on steroids)
  • Transforming the non-compliant, existing libraries with an automatic wrapper mechanism would be incredibly helpful
  • Algorithms to identify common code segments to be standardized and carved out into a library
  • Algorithms to identify common, standardized code segments and suggest them during programming or refactoring

In a way, this scenario seems to be unavoidable. It might take time but if you compare code today with code ten years ago, there is a very clear trend towards libraries. The type of code changed as well. Where twenty years ago we implemented ring buffers, you find nowadays code defining the data flow between distributed modules.

Smart Software Libraries are the first step

Smarter libraries allow progressing and focusing on new, more complex topics. We are just at a stage right now where standardization would add structure to this. This allows companies and individuals to focus on creatively solving business problems while paying less attention to knowledge obsolescence.

Change in Workforce

This has implications. While coding gets more powerful on one end and more automated on the other end, higher skills are required to work in the industry. As of today, 18.2 million employees work as software developers.

In the First and Second Industrial Revolution, the change in the workforce was relatively slow because for example not every company was able to afford a steam engine.

Many jobs shifted toward creativity and people skills. It’s not by accident that roles such as marketing, human resources management (must read Peter Drucker), production, finance, and functions of management had to be created just for this new era.

Further Thoughts – Repeating Pattern

It might be interesting to do some research on repeating patterns in technology. While technology evolves, knowledge of these patterns might be useful to analyze and predict for example security concerns or implications for society.

Generative Software Design Conclusion

As always, innovation requires the willingness to change. For the industry more standardization in software modules could enable enormous gains. To do this is and eventually progressing to more automated software development, if it is at all possible, will require a lot of work.

With a Second Software Revolution, the change of the required skillset can happen in a couple of days. This is why I believe, in a time of specialization, it’s important more than ever to get a broad skillset.