Editorial note: I originally wrote this post for the NDepend blog. You can check out the original here, at their site. While you’re there, take a look at how NDepend can help make you a better programmer.
I remember my first exposure to NDepend. Back then, I worked for a company that allocated software developers a budget for personal improvement. Predictably, most people spent theirs on books, courses, and the like. But not me.
You see, as soon as I discovered NDepend, I saw immense potential for my own career. A static analyzer that helped with visualizations of the codebase? This wouldn’t just help with code reviews. It would actually make me better at software development. I took that argument to my manager, and he agreed. Next thing I knew, I had an officially licensed copy of NDepend.
While NDepend did, in fact, improve my chops, I don’t intend to create an entire post about that here. Instead, I want to respond to an interesting question I heard recently. In essence, “how can we get the most out of NDepend with only one license for the team?” Having used my training budget to buy NDepend, I found myself in the position of having the sole license and wanting to spread the value.
In the years between then and now, NDepend has grown more feature rich. Meanwhile, I’ve traveled all over the place and interacted with dozens of software groups, as both employee and consultant. But the question and the conundrum remain relevant. So today, I’ll offer some ideas on how to generate the most value for a team from only one NDepend license.
Some Ground Rules, First
Before I get into my suggestions, however, I’d like to pre-address some things that a sharpshooter reading the post might say. In other words, it’s not that I failed to consider these things, but that I don’t want to speak to them.
First of all, please don’t comment about strategies for using the license for multiple people in violation of the spirit or letter of the licensing model. Just as I wouldn’t bother to blog about how stealing cable is a cheaper alternative to paying for cable, I won’t talk about this subject either.
Secondly, I consider the build machine edition of NDepend a separate discussion. When you have only that version, you have something intended to be unique. You can use the build machine edition by, well, installing it on the team’s build machine.
And, finally, the one person with the license could, obviously, hoard all of the benefit. But, let’s assume that the team has a non-dysfunctional dynamic and wants to succeed as a group.
So with all that in mind, let’s move on to some creative use cases.