Open collaborative design/Vast libraries of machines and components
As in software, it would be useful for components and assemblies to be as 're-usable' as possible in the sense of being able to be incorporated in many different machine designs. To aid this it should be possible to specify the vital dynamic functions of a component or assembly in the CAD software, so that it can easily be modified in shape and scale so it can be incorporated into a new design while ensuring it still works correctly.
This will enable a huge reduction in duplication of effort and allow people to focus their efforts on creating new machines of increasing complexity and building on the work of others.
One interesting side-effect of open collaboration is that it tends to lead to highly modular design. FireFox and Linux are examples of this. Modularity also leads to a high degree of reusability; someone designing a new piece of hardware or software can pick-and-mix parts of existing projects.
See our List of open-source hardware to see how far this effort has come already