NDepend is a Visual Studio add-in designed for intense code analysis with the goal of high code quality. NDepend uses a number of metrics and aggregates the data in pleasing static and active visual reports.
In the last few months I put together a review of the add-in in three parts. In this article I wrap the review up and provide my conclusion and recommendation.
Go here to get caught up: Part 1 | Part 2 | Part 3
Good and the Bad
No review would be complete without the obligatory like-dislike list. The first three parts of the review are focused on the software. With this article I bring in the whole picture based on my experiences.
Good - Visual tools
- Performance
- Support response time
- Price
| Bad - Documentation
- VS Integration
- No installer
|
Bad
I’ll start with the bad, because overall my assessment of NDepend is positive.
Documentation is important for me. Some people rarely if ever look at documentation. I like to dig through the documentation. It’s a stylistic way of learning and I’m not alone. NDepend does have documentation. Unfortunately, the implementation is inconsistent and is often comprised only of short tool tips. Sometimes these tooltips aren’t easy to notice and going on an Easter egg hunt for them is not my idea of fun.
The integration of NDepend into Visual Studio needs some polish. This is likely due in part to poor documentation and guidance from Microsoft on integrating into Visual Studio. The point of documentation is sort of ironic. However, the point exists that other tools integrate better into Visual Studio. My biggest complaint is windows such as the CQL Edit Window not remembering their state.
The subject of the installer is not major. However, installers are expected in this day and age. I can let this pass for applications like Eclipse, but not a professional, commercial application like NDepend. I have a certain level of comfort with knowing an application is being installed to a permissions restricted area consistent with other applications on my computer. I can do all of this myself, but I have better things to do.
Good
The visual tools are amazing. The report is the meat of the application, but the tools are the dessert. Without the tools I would have lost interest in using NDepend. My favorite is the Dependency Matrix just in case that hasn’t been made clear yet.
I haven’t mentioned performance in my evaluation so far, because it hasn’t been an issue. I have not benchmarked builds with and without the tool. Undoubtedly there is some cost to the analysis that is being run, but it’s not enough for me to care.
In my evaluations I’ve also avoided talking about anything outside of the actual tool itself. I cannot speak to the sales experience, because I didn’t purchase the tool myself. However, I’ve raised a few questions with NDepend support since I started evaluation and the responses have been fast. I have no reason to believe that my support experience is any different than others, but it’s possible.
And finally price. I purposely didn’t look at the price of the tool until writing this conclusion article. I feel that knowing the price changes the expectations and I wanted my expectations to be solely what I would expect out of a performance code analysis tool. I was happy to see that the price is fair, and just as importantly the licensing is easy to understand.
The Skinny
NDepend exceeded my expectations. I went into the evaluation skeptical as is my nature. I knew when I accepted the offer to evaluate the tool in exchange for a license that I was taken on the responsibility to give it a fair shake. I take that responsibility seriously. And I’m pleased to say that after using this tool it will be something I continue to use and recommend others to use.
Disclaimer: Patrick Smacchia contacted me about reviewing NDepend. I received a free license in return for sharing my experiences and talking about the capabilities of the add-in on this site. There is no expectation of a positive review elicited from the author of NDepend.