Managing Code Analysis Statistics with the NDepend API
If you’re familiar with NDepend, you’re probably familiar with the Visual Studio plugin, the out of the box metrics, the excellent visualization tools, and the iconic Zone of Uselessness/Zone of...
How to Deliver Software Projects on Time
Someone asked me recently, almost in passing, about the keys to delivering software projects on time. In this particular instance, it was actually a question of how to deliver .NET...
Static Analysis Isn’t Just for Techies
I do a lot of work with and around static analysis tools. Obviously, I write for this blog. I also have a consulting practice that includes detailed codebase and team...
Avoid Technical Debt with NDepend
The term “technical debt” has become ubiquitous in the programming world. In the most general sense, it reflects the idea that you’re doing something easy in the moment, but that...
Easy to Miss Code Smells
The concept of a code smell is, perhaps, one of the most evocative in our profession. The name itself has a levity factor to it, conjuring a mental image of...
How to Get an Edge as an IT Management Consultant
I’ve made no secret of, and even frequently referred to my consulting practice including aspects of IT management consulting. In short, one of my key offerings is to help strategic...
How to Analyze a Complex Solution
I’ve made no secret that I spend a lot of time these days analyzing code bases as a consultant, and I’ve also made no secret that I use NDepend (and...
Enforcing Immutability in Multi-Threaded Projects with NDepend
Early in the days of object oriented programming, we really got a lot of mileage out of the language and paradigm features. For instance, if your memory extends back far...
5 Habits that Help Code Quality
When I’m called in to do a strategic assessment of a codebase, it’s never the result of everything being awesome. That is, no one calls me up and says, “we’re...
How to Get Developers to Adopt Coding Standards
If you’re a manager, there’s a decent chance that the subject of coding standards makes you want to bang your head against a wall repeatedly. If you’re a developer, you...
Managing Risk in your Project with Static Analysis
When software developer talk about static analysis, it’s often in the context of craft improvement. Ask most developers in a group about static analysis tools and you’ll get a range...
Static Analysis and The Other Kind of False Positives
A common complaint and source of resistance to the adoption of static analysis is the idea of false positives. And I can understand this. It requires only one case of...
4 Ways Custom Code Metrics Improve A Development Team
One of the things that has surprised me over the years is how infrequently people take advantage of custom code metrics. I say this not from the perspective of a...
The Biggest Mistake Static Analysis Could Have Prevented
As I’ve probably mentioned before, many of my clients pay me to come do assessments of their codebases, application portfolios and software practice. And, as you can no doubt imagine,...
5 Reasons Architects and Developers Don’t Get Along
There’s a cute term for a blog post or article that advertises, in its title, a number of points of interest. For example, “9 Tips for Getting out of Debt,”...
Improve Your Code Review Game with NDepend
Code review is a subject with which I’m quite familiar. I’m familiar first as a participant, both reviewing and being reviewed, but it goes deeper than that. As an IT...
Code Metric Visualization: Lines of Code and Code Coverage
One of the features of NDepend that we get a lot of positive feedback about is its data visualization, and it’s really no surprise. The code metric visualizations allow teams...
The Power of CQLinq for Developers
I can still remember my reaction to Linq when I was first exposed to it. And I mean my very first reaction. You’d think, as a connoisseur of the programming profession,...
Let’s Build a Metric: Wrapping Up
In the penultimate post in the metrics series, I explained the reasoning for winding down this series. I also talked about performing one last experiment. Well, that last experiment is...
How to Add Static Analysis to Your Development Process
As a consultant, one of the more universal things that I’ve observed over the years is managerial hand-waving. This comes in a lot with the idea of agile processes, for instance....
Legacy Code for Developers: Managing your Manager
Here’s a campfire horror story of legacy code that probably sounds at least somewhat familiar. One day, your manager strolls by casually, sipping a cup of coffee, and drops a...
Static Analysis for Small Business
I was asked recently, kind of off the cuff, whether I thought that static analysis made sense for small business. I must admit that the first response that popped into...
A Visual Studio script that saves time and pain
After years of pain, I finally found a clean-and-definitive way to get rid of the dreadful issue Could not copy assembly, the process cannot access the file because it is...
A Manager’s Guide to Legacy Code
If you have a sadistic streak and manage a team of software developers, it’s probably high entertainment to dredge up some old, dusty piece of software and then to task...
NDepend vs. ReSharper
Not too long ago, someone asked me for a comparison of ReSharper (commonly and affectionately abbreviated R#) and NDepend. I didn’t really grok the question, so I asked, “in what...
The Better Code Book – Our MVPs of 2015
We firmly believe spaghetti belongs on the dinner table and not in code. Our mission when starting NDepend was to create a tool to make best coding practices easier to...
How Siemens Healthcare manages over 500 million lines of code – An NDepend Case Study
Siemens Healthcare produces imaging equipment for the medical sector in a variety of fields and is based in Germany. Looking to reduce development costs on the next generation of medical imaging...
Let’s Build a Metric Reconsidered
If you’ve been keeping track, you’ll noticed that it’s been a while since the last post in this series. In case you’d forgotten or lost track, the primary goal is to...
Bridging the Communication Gap Between Developers and Architects
If you want to set off a ceaseless, spirited discussion, ask a roomful of people what makes some music good and other music bad. The opinions are likely to be...
Put a Little NDepend in your Visual Studio
The software development world is filled with what I think of as “Coke-Pepsi” debates. This is how my brain categorizes debates over preference that are almost entirely subjective. There is...