Software Rewrite: The Chase
Last week, a post I wrote, “The Myth of the Software Rewrite“, became pretty popular. This generated a lot of comments and discussion, so I decided just to write a...
Relax. Everyone’s Code Rots
I earn my living, or part of it, anyway, doing something very awkward. I get called in to assess and analyze codebases for health and maintainability. As you can no...
Let’s Build a Metric 6: Cyclomatic Complexity Explained
In the last installment of this series, I talked a good bit about lines of code. As it turns out, the question, “what is a line of code?” is actually more...
Hidden Costs in Your Software
One of the things I remember most vividly from my CIO days was the RFP process for handling spikes in demands on my group’s time. In case you haven’t participated in...
Let’s Build a Metric 5: Flavors of Lines of Code
The last episode of this series was heavy on theory, so let’s balance it out a bit with some applied science. The lofty goal of this series of posts is...
Bringing Objectivity to Clean Code
If you want to stir up a pretty serious amount of discussion-churn, wander over to where the software developers sit and ask for a consensus definition of “clean code.” This...
The Myth of the Software Rewrite
“We can’t go on like this. We need to rewrite this thing from scratch.” The Writing is on the Wall These words infuriate CIOs and terrify managers and directors of...
Let’s Build a Metric 4: Science and Experiments
Last time around, I promised a foray into Newtonian mechanics, so I might as well start with that. This is the equation for gravitational force, one of the 4 fundamental...
Managing to Avoid Cobras
Incentives are a funny thing. Done well, they can spur your team to productivity and career-advancing, win-win situations. Done not so well, they can create havoc. As this point, I...
A Test Coverage Primer for Managers
Managing Blind Let me see if I can get in your head a little bit. You manage a team of developers and it goes well at times. But, at other...
Let’s Build a Metric 3: Compositeness
Last time, I talked through a little bit of housekeeping on the way to creating a metric that would be, uniquely, ours. Nevermind the fact that, under the hood, the...
Let’s Build a Metric 2: Getting the Units Right
Last time in this series, there was definitely some housekeeping to accomplish. I laid the groundwork for the series by talking a bit of theory — what are code metrics...
Let’s Build a Metric 1: What’s in a Metric?
A while back, I made a post on my blog announcing the commencement of a series on building a better, composite code metric. Well, it’s time to get started! But before...
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,...
Why Should Managers Care About Static Analysis?
I’d like to talk a bit today about how, if you’re a dev manager for a team or teams that are responsible for .NET code bases, NDepend will help you...
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...
Using NDepend to Make You a Better Programmer
If you’re a software developer, particularly of the newly minted variety, the concept of static analysis might not seem approachable. It sounds academic. It sounds architect-y. It sounds complicated. I’ve seen...
Static Analysis : Code as Data
A lot of programmers have some idea of what static analysis is, as least superficially. If I mention the term, what pops into your head? Automatic enforcement of coding standards? ...
NDepend version 6 insights
Welcome to the brand new NDepend blog! This blog will talk about NDepend of course, announcements, directions, features advanced usage, but this blog will also talk about related topics including,...