Category: Bug Hunting
It’s bug season! We document our experiences hunting bugs, and give advice on how to find and fix bugs in your codebase using NDepend.
10 Reasons Why You Should Write Tests
As many, I started programming when I was a child 3 decades years ago. With no doubt, the most important practice I’ve adopted during my professional career is to write...
Include IL Offset into Production Exception Stack Traces
In a previous post The proper usages of Exceptions in C# I explained that it is important to get as much information as possible from production crash logs. One such...
The proper usages of Exceptions in C#
The C# exception basics are generally well understood. However exceptions are often used as a way to sweep error handling duty under the carpet. As I did in The proper...
Strategies to Catch Regression Bugs before Production: A Case Study
That’s quite a coincidence that a few days after promoting the joy of immutability in the post C#9 records: immutable classes we stumbled on a bug due to a mutable...
Case Study : Complex UI Testing
In the previous post Case Study: 2 Simple Principles to achieve High Code Maintainability I explained that the principles layered code + high coverage ratio by test are 2 simple...
The continuous adaptation of Visual Studio extensions
One could think that developing an extension for a two-decades+ product as mature as Visual Studio is headache-less. Not really. Visual Studio is a big big beast used by millions...
You Should Favor Software Products That Include Support in the Price
Quite often we talk about architectural concerns on this blog, with topics like application layering or the merits of design patterns. But today I’m going to switch gears a little...
What DevOps Means for Static Analysis
For most of my career, software development has, in a very specific way, resembled mailing a letter. You write the thing, and then you go through the standard mail piece...
Adding Static Analysis to Your Team’s DNA
Stop me if this sounds familiar. (Well, not literally. I realize that asynchronous publication makes it hard for you to actually stop me as I type. Indulge me the figure...
Detecting Performance Bottlenecks with NDepend
In the past, I’ve talked about the nature of static code analysis. Specifically, static analysis involves analyzing programs’ source code without actually executing them. Contrast this with runtime analysis, which...
How to Scale Your Static Analysis Tooling
If you wander the halls of a large company with a large software development organization, you will find plenty of examples of practice and process at scale. When you see this...
How to Prioritize Bugs on Your To-Do List
People frequently ask me questions about code quality. People also frequently ask me questions about efficiency and productivity. But it seems we rarely wind up talking about the two together. How...
The Relationship between Static Analysis and Continuous Testing
As an adult, I have learned that I have an introvert type personality. I do alright socially, don’t mind public speaking, and do not (I don’t think) present as an...
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...
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...
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...
A Software Architect’s Best Friend
To this day, I have a persistent nightmare about my time in college. It’s always pretty similar. I wake up and I have a final exam later in the day,...
Toward Bug Free Software: Lines of Defense
Hurrah!! Last week we released NDepend v6 RTM. Once again we relied on a 2 months private beta-testing period and a one month Release Candidate period to do our best to release a polished...