A guide for analyzing the quality of an open source application?
Ok, so you want to evaluate and open source application?
What guidelines should you use? Here is a guideline. I will continue to update this as I find valid items to measure. If you have something I should add to the list, please let me know.
Obtaining the Software
- A top link in search engine when searching for open source app’s name?
- A quick download link?
- Clear description of different downloads per platform?
Installation of Open Source App
- Clear description of different downloads per platform?
List of platforms: - Ease of install score:
- Ease of initial configuration score:
Authentication
- Integration with Active Directory?
Score: - Integration with LDAP?
Score: - Database authentication?
Explanation: Can authentication occur in a database such as Postgresql, MySQL, etc…
Supported Database list:
Score: - Authentication to a 3rd party programs database?
Explanation: So that if you have an application A with a database that hosts a username a password, can this open source application B use your database from application A to authenticate?
Score:
Security
- How secure is this application?
- What security holes have been reported and fixed?
- What development designs were taken into consideration to enhance security?
- What security analysis tools such as Nessus has this open source application been analyzed with?
Documentation
- Install guide exists?
Quality Score: - Users guide exists?
Quality Score: - Admin guide exists?
Quality Score: - Developer’s guide exists?
- Compile/Debug guide on how to load in an IDE and compile and debug (Visual Studio 2008, Eclipse, KDevelop, other, etc…)
- Guide for submitting a bug or suggestion?
- Guide for contributing documentation?
- Ease of contribution Documentation?
Ease of Use
- Is the application easy to use?
- Can non-technical users use the application with minimal training?
Stability
- How stable is the application? Determine this from normal use for a period of time.
- How stable is the platform(s) and/or 3rd party dependencies the application runs/depends on?
- Does the application crash with normal use?
- Does the application crash with abnormal use?
- Does the application crash with prolonged use?
- Is the process for submitting a bug simple?
- Is the process for applying a patch simple?
- Does applying patches decrease stability?
Community Strength
- Is it being maintained by a strong community?
- Is there a high adoption rate for this application?
- What is the average turn around time for a bug in the community?
- Is there a forum? What is forums user base? How quick do questions get responses?
- Is there a mailing list?
- Is there an RSS feed?
Customization of Open Source Application
- What language is this written in?
- Ease of customization.
- Ease of contributing to project
- Ease of compiling/debugging?
- Ease of getting fixes committed to source?
Scalability
- Does the application scale well with increased usage?
- Does this application integrate with the two most used operating systems for desktops? Windows and OS X?