In Part 1, Joel discussed licensing models. In this episode, Joel and Ken talk about the other criteria in his selection process.
- License model
- 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…
- 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
- 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.?
- Functionality and Features
Enjoy the podcast!
Joel and Ken