In the new - hopefully a better - year and a new setting it’s time to define the goals for the future. When I quit my day job five years ago, I did that with the purpose of working on my own project(s). Time flew by, and none of them even started to materialize. Partly that can be explained by the goals being too ambitious, leading to an extended analysis paralysis period. That, however, is just an excuse. Being frank with myself, I admit that I didn’t pursue my targets with enough focus and dedication. Procrastinating any further will destroy all chances of success.
Actually, there is a single super-goal:
Build a platform for designing technical systems of high complexity
The targeted domains/fields will include but won’t be limited to the following:
- Software engineering
- Electronic and chip design
- Architectural desgin and structural engineering
- Mechanical engineering
The defining principle of this new engineering platform must be that
The main value is not in the current artifacts but in the way they have been achieved.
A simple very-short-term goal is to pick a name for that future platform.
In any case it has to include:
-
A knowledge management system, that can serve as an expert system for the current project. However, technical knowledge generated from various projects must be shareable and reusable (something like a Wikipedia for scientific and technological projects, but in a format that can be processed algorithmically).
-
A library of best practices, a tool for enforcing them, as well as a tool facilitating discovery and introduction of new practices.
-
A new kind of revision control system, enabling the discovery and automation of new classes of changes to the project, so that the project can be redefined as a sequence of transforms leading to the final state.
-
A new “universal” programming language
-
A relation/dependency management system that tracks all relations/dependencies between different parts/components of the design and facilitates decision making when some component has to be modified or enhanced.
-
A simulation engine, or rather a framework for creation of efficient simulation tools.
All of the above items will be elaborated in separate posts.
Of course such a platform cannot be built into something useful in a waterfall fashion. It must grow incrementally, providing some utility at all stages of its implementation. Validation of the platform must be performed by building with its help something really challenging. One very challenging project is this project on its own, but using it only to build itself doesn’t make much sense. So another short-term goal is to select several hard projects each of which would require effort beyond the capabilities of a single person. The ultimate goal will be to accomplish those projects with the help of the new development platform.