In Part 1, Joel discussed licensing models. In this episode, Joel and Ken talk about the other criteria in his selection process.
Criteria
- License model - See BusinessCast Episode 3
- Code Quality
- JavaNCSS - Free tool (and maven plugin) to analyze lines of code / number of methods, MCCabe metrics etc...
- JDepend - analyzes and checks for cyclic dependencies
- Runtime Analysis
- Do a performance test - check CPU, memory, I/O peaks, etc...
- Design
- Grade all software by reading the code, checking for code smell, etc. Set a short timebox to see if you can review the code and see structure, organization, etc...
- Pay attention to Bob Martin's four design principles
- Can you understand how they organized the code?
- Project Velocity
- Pedigree
- Community
- Market Penetration - ohloh.net is a good tool here
- Documentation quality - can you read the docs? Read the code and understand how the docs relate? Dev, admin, test, install, etc.?
- Support
- Functionality and Features
Enjoy the podcast!
Joel and Ken