Three phases of a project: Design, Training and Inference

Oct 13, 2022 | Jagannath Rajagopal | 4 min read

You ready for some more terminology? Hooray! Vocab!

We use the term “design” to describe the conceptual phase where a system architect: establishes the pieces that will form the structure of the solution, develops the pipeline of elements solving the problem, or creates the architecture of components to deal with the problem.

This phase is performed by the expert — the data scientist, engineers, modellers, software designers, architects, etc. Whoever is building this model for their use.

We use the term “training” in reference to the task of helping a model learn its world. In this phase algorithms construct the model by learning, optimizing, simulating, and scaling. This phase is performed by the machine.

The combination of designing a solution template, and the computation of training — produce a model of the world.

Once the world is established inference can be performed. Inference refers to operating a trained model in this world. Furthermore, inference is about exploiting this established world model. This can be done automatically by a computer system, interpreted by an expert, or any combination of both.

As system architects it is important to distinguish between the following phases:

  1. Design — Expert conceptualization of the problem and system architecture
  2. Training — The computer operation in learning from data or simulating the problem
  3. Inference — Computer operation in the real world based on learning. Let’s go through a couple of examples of systems and the phases they involve.

I’ve created a LOT of resources on this topic. Here’s my course on Design Thinking for Hero Methods. Here’s my YouTube channel with previews of course videos. Here’s my website; navigate through the courses to find free previews & pdfs.

- - -

Let’s go through a couple of examples of systems and the phases they involve.

Consider for a moment a self-adaptive computing system that can adapt to failure conditions by learning and acting autonomously; it involves phase 1 (design). The system is designed to self-configure; to self-protect from attack; to self-heal from faults, and self-optimize its use of resources. It learns continuously on the job which means that it may tend to be error-prone in early stages but will get better over time. Keep in mind that situations that involve just one phase are rare.

Most problems involve two phases. For example, data driven problems tend to involve phases 2 (training) and phase 3 (inference), with a little design. If you want to forecast sales with historical sales data, that’s a data driven problem and it will involve phases 2 and 3.

Principle-driven problems tend to mostly involve phases 1 (design) and 2 (training). For example, if you want to forecast how a new type of beverage dispenser would affect sales in a region, that’s a principle driven problem, and it will involved phases 1 and 2.

If you want to forecast how a new type of packaging would affect product sales in a region, that’s a knowledge driven problem. Knowledge-driven problems tend to involve phases 1 and 3.

Think back to our new and improved ABC ‘Southern Style’ Spicy Watermelon Arnold Palmer example from earlier. Boy, that’s a mouthful! If only there was an algorithm that could truncate that name in an appealing way.

- - -

Large-scale problems involve all three phases due to their nature, and also because they can be structured into sub-problems that involve two phases. Think about our self-driving car model. Self-driving cars include significant design effort of the autonomous components…..,

…. intensive model training and testing with a wide range of scenarios,….

….& embedded inference in an autonomous system.

In contrast to standard IT development, in hero development there is an iterative process of model building driven by the problem, data or knowledge. The proposed solution is refined and its behaviour is adapted by massively iterating computer executions. This process helps establish the optimal parameters for this software to operate.

At Kado, we show you how to structure complex problems. Keep in mind the system architect’s critical contribution to this process: meanings of concepts are refined manually by an expert to resolve contradictions, breakdowns in logic, and avoid infinite loops. Designing, building and testing is not enough; a model needs to be effectively created, and fed all possible pertinent data to make it effective.
Don't hesitate!

Design Thinking for Hero Methods!

Created with