Choose open source components based on a few simple criteria associated with the software's legal status, its fitness, and its quality. BSD-style licenses are quite liberal, while GNU licenses make life difficult for proprietary offerings. Consider the project's technological fit, its popularity, the quality of its code and documentation, the frequency of new releases, the strength of its community, and the ease of pushing your changes upstream. You can reuse complete classes or files, use a complete library, or have your code communicate with a separately running process. Avoid modifying the open source code to fit your needs, but if you do keep changes to a minimum, keep them localized, have them follow the project's code style, and contribute them back to the project.
- component choice
- open source