Product Development without Programming Skills
We live in rapidly moving times: new products are launched at incredible speed. Bringing products to market faster than your competitors is a key criterion for success.
Behind product development, however, lies an extensive and complex process that requires many handovers between different roles. I will show you a way to cut this process down and speed up time to market.
What would happen if subject matter experts were involved in product development?
It may sound odd at first that a subject matter expert (SME) who is responsible for specifying products should also be involved in their development. Surely extensive technical know-how is required?
Let’s first look at the situation if this were indeed the case. When we look at product development processes in different sectors, we can often see a division between development departments and IT. Employees in development have extensive subject matter knowledge, essential for the functionality and correctness of the product. In most cases, however, they have little technical knowledge. IT staff, on the other hand, have this technical knowledge, but they lack the professional know-how or interest to become deeply involved in the application area. This leads to a situation in which development is concerned with the design and nature of the product and the use of this material in some form, such as in requirement documents or specifications, but then hands over to IT to be responsible for the product’s implementation.
Problems with transfer between product development and IT
These issues present both problems and challenges. For example, the development department has to formulate its ideas for a product in a way that IT can translate into source code. To avoid errors, requirements definitions must be clear and comprehensible. To ensure this a good handover uses people as intermediaries, who can capture ideas about the product in a structured form or, in extreme cases, even translate them into models or pseudocode that can then be transferred into source code by IT staff.
This process is especially important when an offshore IT service provider is involved, as language barriers must also be taken into account: in addition to the correctness of its content, the specification must be understood linguistically by both parties. To test the implementation a repeat transfer is usually carried out, as it is essential to ensure that the implemented product functions as it should: this can best be assessed by SMEs.
What are the benefits of involving subject matter experts in implementation?
All this can be very time-consuming, because the same facts must be repeatedly described in different ways, making it almost inevitable that errors or redundancy-induced inconsistencies creep in.
Let’s now imagine that we could spare ourselves all these surprises, and that development staff could express their thoughts directly in a way that could be translated into source code automatically. This would save a lot of time, because we would only have to write things down once. At the same time, we could avoid any mistakes arising from the handover, for example because something was misunderstood, and the product could be taken to market much more quickly.
How can subject matter experts contribute to product development?
This basic idea initially sounds promising. But how is it possible without SMEs completing training course in Java, C and so on, or expressing everything in huge Excel spreadsheets?
Technical possibilities exist. Tools such as MPS from Jetbrains make possible the capture of facts in domain-specific languages (i.e. languages from the user's application domain) and later generation of source code. Users, in this case SMEs from the development department, formulate facts as they are accustomed to doing, such as in the form of mathematical, tabular, graphical or textual notations. At the press of a button an executable implementation then emerges. If the languages and tools are designed correctly, SMEs can also write tests or simulate applications, thereby further improving the correctness of the resulting application.
Usability is everything
As we mentioned at the outset, however, we cannot assume that SMEs have comprehensive technical understanding – they are not supposed to. It is all the more important therefore that the appropriate tools help users to formulate their thoughts correctly. Usability must therefore be appropriate, both in the domain-specific language and the application in which the user works with the language.
In terms of domain-specific languages, it is important first to identify how users would normally document things, and the abstractions, notations and concepts they use in their workplace and its domain. This knowledge will enable users to work with the language and notations with which they are already familiar.
It may be necessary for users to work with tools that behave differently to those they already know, such as Microsoft Word or Excel. Such tools operate on the basis of a language definition, which forces compliance with the language. Users can see this as a limitation. On the other hand, such tools can help users with – for example – troubleshooting, testing or simulation. It is therefore essential to support users in their typical workflow: a suitable tool can, for example, prompt for next inputs, provide constructs that are frequently reused as templates, leaving only variable data to be filled in, and allow reference to and reuse of existing elements. Ongoing validation and error messages generated in the background can also help users to discover and rectify bugs.
Faster to market
It is therefore possible, through suitably designed tools and languages, for a development department to implement products directly. This can enable faster speed to market, avoid errors, and reduce the complexity of the development process. It can therefore genuinely provide a good way to keep up with the fast-paced nature of our markets, and perhaps even overtake them.