The virtual world is crucial for rapid and responsive development. Even when speeding up the physical processes (e.g. via rapid prototyping), it’s still slow compared to the virtual world.
There is no perfect architecture for any given system, it highly depends on the circumstances like market conditions, corporate strategy which may change over time. Architecture therefore is a continuous finding of a structural solution that fits the trade-off. Depending on uncertainties (changing circumstances, new technology, etc.) we need to find a balance between intentional (looking and planning further ahead) and emergent (develop the architecture as we learn and discover). More on these topics in the Architecture article.
Design makes architecture concrete. There are many stakeholders and disciplines involved and lots of unclarities and uncertainties, making it a challenge. Design for Excellence (DfX) helps to identify needs and design directions for specific stakeholders and functional areas of a system. Examples are Design for Assembly, and Design for Safety. When viewing DfX from an agile perspective, we find many opportunities to design for improved agility. For example Design for Maintenance in combination with the desire to deliver upgrades, we could design 1-click install-able modules.
Design patterns are known good practices that can be useful to find solutions for common design challenges in many different situations. For example the singleton pattern that tells us that in some cases it is best to use a centralized approach or single interface like with a central safety control unit. As most design patterns originate from software development, not all can be used for hardware design and they do require a bit of creative re-thinking. More on these topics in the article Design for Excellence (DfX).
Model Based Engineering (MBE) is a model centric approach where the system (mechanical, EM, software, etc.) is put in a abstract models. It combines architecture, design rules and constrains, product and control data, simulation models, design tools and algorithms, etc. It supports collaboration, exploration, knowledge management, integration and testing, and artifacts generation. All of this speeds up the process, increases responsiveness and quality, and reduces risks. More on this topic in the article Model Based Engineering.
To make things even better, we can digitize the entire operational value stream via a so-called digital twin, a virtual counterpart of a physical item (factory, product, …) linked via a digital thread. More on this topic in the article Digital Twin & Thread.