Let's stop a minute and think about the word "health" what does health mean in terms of software. If a project is not healthy any of the following, among many other things, could happen:
- Bugs are slow to be fixed, or not fixed at all
- Long time between releases with new features, or no releases at all.
- Project is dormant, or worse abandoned but has not been stated publicly
- Finding community support can be hard
- End up maintaining the whole project yourself inhouse.
- When a project is not moving forward fast enough, or the scope of the project is too small, required features might be implemented as hybrid extensions only (for example using a different license or even closed source), and not available as part of the open-source project
So when you are looking to adopt a technology how do you assess if it's healthy, how do you avoid situations detailed above:
- Large development community
- Regular commits
- Large support community, either via real time chat or mailing lists
- Is the project financially profitable already.
- Published books?
- If publishers are willing to invest in books, you know there is a large end user community. That means lower risk of bugs, and easier to hire people and find consultancies.
- Commitment to public global speaking engagements, such as java user groups or workshops.
With Drools, jBPM and Guvnor there are published books, and you only have to pop onto irc or the mailing lists to see the vibrant chats going on. We continue to hire aggressively, with two more people starting within the next two months. More importantly though you only have to go to github to see the flurry of activity going on for a large number of developers. Below you can see the graphs taken from github, and I think they speak for themselves :)
Drools Commit Graph
jBPM Commit Graph
Guvnor Commit Graph