Thursday 26 January 2023
How do we get an "innovative" software product/service?
Practical definition of strategies for innovation in software production/operations
In the software industry, there are new approaches ("low code" and "no code")   and tools (e.g. Appinventor , Budibase , WebRatio , etc.) that make it possible to build software with little technological knowledge, as well as AI-based tools that generate code automatically (GitHub copilot  or OpenAI  based on GPT3). If the capacity to build and operate software products increases in the coming years, the most competitive companies will be those that have the greatest capacity when exploring or discovering new innovations in the form of products or services. By then it will be necessary to understand what "innovate" means and what is the most efficient and effective strategy to achieve it. On innovation, there is a wide variety of reference models and standards in the literature (Manual of Oslo and Frascati, Technology Readiness Levels, Art.35 TRLIS, UNE 166000:2014, ISO 56002:2019, etc). However, as the reader can see from some of the thesis work of Manuel Giménez Medina , it is a complex process that although it has been widely studied from different perspectives, there still seems to be no consensus on a large majority of concepts. Next, we will briefly look at a practical definition of the concept of innovation (not without consensus), as well as some of the existing and widely known strategies that allow to promote innovation in software.
Innovation as a competitive advantage
In practical terms, innovation means that this systematic process, which we have been talking about, must result in some kind of competitive advantage. Competitive advantage must be unique and sustainable in the long term. A checklist we could apply to our projects could be the following:
- What kind of innovation is it? There are many types of innovation, our projects could have implications in the business model, in the product (good or service) and even in the software process itself. What is the type of innovation in your project?
- What is the competitive advantage of the type of innovation? Time to market, reduced costs, higher quality, etc. We wonder about what aspects offer us advantage What advantage does your innovation offer?
- Is it a unique "innovation"? At what level, Objective or Subjective? On the one hand, the advantage obtained could be "Objective", which would imply that some kind of novelty or substantial improvement has been obtained at the international level (it would be unique). In the definition of the ministry, this would basically be an R+D project. On the other hand, the advantage obtained could be "Subjective" which would imply that it is a substantial novelty or improvement but which is not unique, could be available to other companies of the competition. In the definition of the ministry this would mean a "technological innovation (as we mentioned, this last concept of innovation could be confused). Is the advantage obtained in your project unique?
- Is it sustainable in the long term? Why? We wonder if it is Protected (e.g. patent), is difficult to copy and imitate (e.g. requires knowledge and excessively high costs). Is the advantage gained in your project protected, difficult to copy and imitate by others?
There are widely known Discovery/Research strategies that we can apply in our general R+D activities to detect hypothetical advantages (which must be validated). Some of them are listed below, references are included and only some aspects are commented that are not mentioned in the literature and that can help us better understand these strategies as well as their relationship with the concept of innovation.
Design Thinking, Design Sprint
Next, we will make a brief comparison between the Design Thinking process and the Design Sprint methodology  (inspired, among other strategies, by Design Thinking). This comparison will allow us to better understand what both strategies bring. For further information, the following references are recommended to be read  .
Design Thinking is a widely known process, defines stages that (by applying certain practices) allow us to understand the problem (understand the context, empathize with users, detect their problems and needs, understand what activities they perform, what artifacts, how they are used, etc.) and define it (the problem is complex, we cannot address everything and we have to decide where we put the focus). All the above, as seen in the figure of "Discovery", allows to increase the information on the domain of the problem and to limit it. In the Design Sprint methodology, these two stages ("Empathize" and "Define") are defined in a single one called "Understand". On the other hand, once we have narrowed down the problem, the next thing is to carry out a process of generating ideas to solve the problem as well as a decision-making activity to decide which of these ideas will be part of the final solution. This is again an activity that allows to increase the information and reduce it (in this case, about the domain of the solution). In "Design Sprint", the process of generating ideas takes place at the "Sketch" stage and the decision-making at "Decide". In Design Thinking, both activities are carried out in a single "Idea". Finally, both strategies coincide in the development of the prototype and its validation.
Figure 1. Comparation between Design Thinking vs Design Sprint (source: own elaboration)
SAPIENS (of Ferrán Adriá)
SAPIENS  is a strategy that allows a greater and more detailed understanding of the problem based on the application of a set of methods that are related and that allow to analyze the problem from different perspectives. This strategy allows us to connect the information of the problem domain and, therefore, we can generate new knowledge that, in turn, can be translated into new ideas. The methods are:
- Lexical, semantic and conceptual method: Questioning the terms linked to the object of study and its definitions, elaboration of a specific lexicon that allows to define with precision the object of study.
- Comparative method: Drawing parallels with other objects of study, either collectively or partially, by analyzing their similarities and differences, helps improve the dictionary and classification.
- Classifying method: To question the classifications of concepts related to the object of study, to expand the list of terms and definitions to create a classification of its own.
- Systemic method: Place the object of study in context and analyze the system.
- Historical method: To study the origin and evolution of the object of study, and it is concretized in a chronology of milestones and epochs.
As mentioned above, all of the above methods are related in some way. That is why ideas seem to emerge as a consequence of the "connections" made as a result of applying the above methods. Therefore, it would not be a strategy like Design Thinking or Design Sprint, in fact, the authors seem to have combined SAPIENS with Design Thinking or Design Sprint. Rather, it would fit into the "Understand" and "Idea" stages (though not explicitly at this stage, but rather implicitly).
Figure 2. Relation between Design Thinking vs SAPIENS ((source: own elaboration)
Design Science (research methodology for engineering)
Finally, design science  is an engineering research-oriented strategy pursuing the development and validation of prescriptive knowledge. They follow a process heavily supported by research techniques and practices that allow for a detailed understanding and validation of both problem and solution mastery (surveys, case studies and experiments). That is why it is possible to focus on only some stages of the process as for example only in the domain of the problem, only in the domain of the new solution that we are proposing or even in comparing solutions that already exist (e.g. to compare them and infer some kind of new knowledge). Rather it follows a Build2Learn approach, that is, learning takes place once the artifact is built, demonstrated and evaluated. For further information, the Óscar Díaz seminar published on the SISTEDES website is recommended .
Figure 3. Design Science (Source: )
Finally, we will conclude with the most relevant conclusions:
- A concept of a practical definition of "Innovation" would be to consider it as a competitive advantage as a result of an R&D process: This concept would involve orienting software processes (research/discovery, development, operations) towards a "Competitive advantage" that is "unique", "sustainable", "protected", "hard to copy" and "imitate".
- Discovery / Research (knowledge):
- Strategies such as design thinking or design sprint (and derivatives) allow us to (1) understand and define the problem, (2) explore and make decisions about the solution (3) build and validate the solution.
- The set of methods of SAPIENS allow us to better understand the problem and that ideas emerge as a consequence of the connection that takes place of knowledge. They allow us: (1) Conceptually define the object of study, (2) Define the system of the object of study, (3) Define the historical evolution of the system and the object of study, and (4) Classify and (5) compare the object of study with other similar ones.
- For engineering research, there are also strategies such as Design Science. It applies research techniques and practices that allow for a detailed understanding and validation of both problem and solution mastery (surveys, case studies and experiments). It is possible to focus on only some stages of the process.