The Outercurve Foundation has written a guide on how to construct open source software. “Making it easy for other people to “make” your software to a known starting state will make it easy for them to fix and enhance your software. Making it easy to reliably get to a known state allows people to experiment with it and contribute. It’s not enough to make it “easy to fork”. It needs to be easy to build and test to a known state,” it writes. “…tool platforms are the only way a FOSS community can scale a community of users and developers to the success of the project in the same way that a software product team could scale development and support to the success of the product. “