When a software engineer starts on a new project, her first step is almost always to survey the ecosystem of open source software that exists in the problem space.