Modular design and the development of complex artifacts: lessons from free/open source software