Once I got bored with old code-base and started wondering, how much effort it will take to rewrite entire software.
First, you will need to write down entire feature scope. Linear lists (like issues in Jira) or even bullets doesn't work as good as mindmaps. There are a lot of tools available. Best free are XMind and http://mind42.com/ (for free online collaboration). We build a feature map (also called as story map, or impact map) in mind mapping tool (example from the web):

As I am dealing with already existing software, I want to know exactly how much effort was put into each component. This way I'll know what components\feature are the most risky, so we can plan more time in.
As the code got rotten enough, lets first answer the question "How long it will to do rewrite?"
You can download NDepend for .Net project, it is a really good tool for visualizing software metrics. (http://www.ndepend.com/).
After it analyzes given solution (*.sln), dashboard along with web report appears:
120K lines of code... Seems a lot. So I disable some of irrelevant assemblies (Utilities and test projects):
96K looks better.
Here is the Metrics overview (element name become visible on mouse over, selected element is displayed on class browser at the left):
One of the most useful feature is LINQ to Code:
With such LINQ it is possible to query TOP-10 Assemblies with biggest LOC or cyclomatic complexity, and more!
Form what I understood out of this metrics:
First, you will need to write down entire feature scope. Linear lists (like issues in Jira) or even bullets doesn't work as good as mindmaps. There are a lot of tools available. Best free are XMind and http://mind42.com/ (for free online collaboration). We build a feature map (also called as story map, or impact map) in mind mapping tool (example from the web):
As I am dealing with already existing software, I want to know exactly how much effort was put into each component. This way I'll know what components\feature are the most risky, so we can plan more time in.
As the code got rotten enough, lets first answer the question "How long it will to do rewrite?"
You can download NDepend for .Net project, it is a really good tool for visualizing software metrics. (http://www.ndepend.com/).
After it analyzes given solution (*.sln), dashboard along with web report appears:
120K lines of code... Seems a lot. So I disable some of irrelevant assemblies (Utilities and test projects):
Fragment from web report:
Here is the Metrics overview (element name become visible on mouse over, selected element is displayed on class browser at the left):
One of the most useful feature is LINQ to Code:
Form what I understood out of this metrics:
- A lot of code is related to WinForms InitializeComponent() method
- A lot of code is only for handling UI controls
- Core components are not so big to rewrite.
Need to run onto story-map now...





Комментариев нет:
Отправить комментарий