Years ago, I discovered NDepend and downloaded it for a trial. At the time, I found myself working in a .NET shop where a lot of developers worked in the same large WPF codebase. Code reviews were mandated, debates were frequent and impassioned, and global variables were everywhere, to the dismay of only some of us. There was an entrenched majority that favored (or at least didn’t mind) a highly procedural style of writing object-oriented software, and nobody seemed able to put their fingers on why most feature development there had slowed to a crawl.
I was new to the group and had to pick my battles, particularly with people that had been there a long time. Developers who favored automated testing and craftsmanship principles were in the minority there and had a history of leaving out of frustration, so I knew it’d be a challenge, and I went looking for help. Among other things, I found NDepend and, after installing a trial, I recognized the power of the tool.
I recognized that it could help me as an objective, unbiased partner in making my arguments, but I also recognized that the way I approached code and architecture would never be the same. The ability to visualize architecture in real time, the ability to treat code as queryable data, the metrics, the statistics, the well thought-out code warnings… it was a game-changer for me. I just needed to convince my manager to let me spend a few hundred dollars to convert my trial version into a paid version.
It turned out this wasn’t hard, at least for me. I had the good fortune of working for a company that appropriated a tools and learning budget for each individual developer, meaning all I had to do was declare that I wanted some of my total spend to go toward NDepend. I did it without blinking. But it might be that you aren’t as lucky. Maybe you find yourself in a similar position to mine back then, but wanting to convince your manager that this powerful tool is indispensable because you don’t have a discretionary tools budget.
ROI: The Language of Management
I think I can help you here. After all, I did leverage my experience running an IT department into a Plurlasight course about how to lobby your managers for practices and tools. And the key to making a business case for anything, NDepend included, is to talk in terms of profits and losses, rather than in terms of, “it’s awesome, and it has all these graphs, and it shows me these rules, and CQLinq is the coolest thing ever, and…” You get the idea. NDepend’s coolness factor isn’t going to convince your manager to buy it for you.