Embracing Software Development Techniques in Hardcore Engineering
One of the most dynamic fields within engineering is undoubtedly computer science. This sector has been a magnet for talent, fostering rapid growth and innovation. A key phrase that encapsulates this trend is "software eats the world," coined by Marc Andreessen. It's fascinating to consider how tools and methods used in software development could be transferred to hardcore engineering. This goes beyond simply using software in engineering; it involves adopting the core methodologies of software tools, virtualizing them, and applying them to engineering practices.
Imagine the concept of Docker containers in the context of engineering. In software development, these containers simplify the setup of a complete working environment, including the operating system structure and tools, on any hardware with minimal configuration. What would the equivalent be for an engineer's working environment?
For any given project, an engineer’s environment includes:
Engineering methodologies (like V-model or lean development)
Technical knowledge (books, codes, formulas, design and construction methods)
Project-specific models and experimental data (coefficients, orders of magnitude, etc.)
Network of collaborators (contacts, subcontractors, expertise)
A container for engineers would quickly provide all these elements, regardless of the structure they work within. One major challenge is that much of an engineer's traditional work environment is paper-based (books, charts, etc.). Here, augmented reality (AR) could offer a future solution.
Imagine starting a new project in a new setting (lab, company, etc.). Normally, you’d spend time familiarizing yourself with the work environment, gathering office supplies, collecting project documentation, finding contacts, and ensuring tools are properly installed. Now, imagine putting on a pair of AR glasses and deploying a project-specific container. Your environment would instantly be filled with all the necessary knowledge.
With proper settings, you could maintain a familiar spatial arrangement of elements, no matter where you are. Gantt charts would appear on the wall, brainstorming sketches on a virtual whiteboard. Your code GUIs would be ready on one side of the room, connected to computation servers or experimental databases. An almost infinite virtual library would be at your disposal, and an AI assistant would be on hand to answer basic questions and assist with the project.
With this environment readily available, you can focus on the core of your work: designing engineering components and collaborating with colleagues.
This example demonstrates how a software-derived method can be applied to real-world engineering. The potential of such analogies is evident. In future articles, we will delve deeper into this example and explore other analogies (reactive programming, Jupyter kernels, WebAssembly, etc.) to further investigate the potential of this approach.

