Usually once a year I get a new license for NDepend from Patrick Smacchia - its creator. I’ve written about this tool several times (here: NDepend 6, NDepend 5 and NDepend) so I won’t repeat myself about its basic usage. I also haven’t change my mind and still think that NDepend is a great tool, so instead of writing it’s full review I will focus only on functionality that I found most valuable in this new version.
Debt Estimation
The new version of NDepend introduces two new concepts: a technical-debt and an annual-interest. Now all reported problems has those two additional metrics. The technical-dept tells us how much time we need to spend to fix a reported issue. It may vary from minutes to days. On the other hand an annual-interest warn us how much time per year we will need to maintain this problem if we won’t fix it. It sounds simple, but it’s extremely useful.
Without exaggeration I can say that for this one feature it is worth to update to the newest version of NDepend. It gives you a “tool” to make a better decisions about needs and costs of the refactoring tasks.
Quality Gates
Since the beginning NDepend is a tool that analyzes our source code and shows us all issues we have in it. To us, as developers, belong the process of analyzing those results. The “Quality Gates” try to helps us in this process by giving us hints about what can we do with the current version of the source code e.g. can we release it to production or can we commit the changes to the source control. This advice is presented in the form of red (fail) / yellow (warn) / green (pass) flag.
Quality Gates rely on many different criteria like:
- rules results
- tests
- tests coverage
- previously analyzed data.
In example Quality Gate can have a red flag, because:
- new critical issue was introduced since the last time our code was analyzed
- newly written code is not tested
- we didn’t lowered the technical-debt of our project in the last month
and so on. I hope you understand how valuable this thing is.
GUI improvements
Information about technical-dept and annual-interest has been added to many elements of the GUI - providing easier access to them. On dashboard we can spot a section about the debt (with nice colored rating info) and about the quality gates. Dashboard also has new charts that show changes of dept and quality gates in time.
Issues menu has been added to the main menu to give faster access to the ordered by the priority list of issues that needs to be fixed.
For people who has just started working with NDepend the guide tooltips have been added. After hovering over certain UI element its explanation is shown as a tooltip - very handy!
This is only a small part of the changes that have been introduced to the NDepend visuals. Almost in every element I could spot some bigger or smaller improvements.
Summary
Once again I can recommend NDepend for all developers (especially for architects or technical project leaders) who wants to have better knowledge about their project source code.