How will this improve our software?
Excerpt from the article Fighting the complexity associated with the .NET Developer Tool NDepend . NDepend helps the team manage a large and complex code base. The idea is that code metrics are good and reduce the complex complexity of code implementation:
During my interview with Scott Hanselman's Code Metric on Software Metrics, Scott had a particularly important point.
Basically, although I explained that long and complex methods kill quality and should be divided into smaller methods, Scott asked me:
look at this big too complicated method, and I break it down into smaller methods, the complexity of the business problem still exists, looking at my application, I can say that this is no longer a difficult method, but the software as it relates to other bits of code can indicate other problem ...
Software complexity is a subjective measure regarding a person’s ability to know. Something complicated when it takes effort to understand a person. The fact is that the complexity of the software is two-dimensional. To understand a piece of code, you need to understand both:
- what this piece of code should do at runtime, code behavior, is the complexity of business tasks.
- How a real implementation really reaches a business problem, what was the mental state of the developer when writing code, this is the complexity of the implementation.
The complexity of business tasks lies in the specification of the program and its reduction means working on the behavior of the code itself. On the other hand, we are talking about complex complexity when it comes to implementation complexity : it is fabricated in the sense that it can be reduced without changing the behavior of the code.
Patrick from NDepend team
source share