herman_shaw
12-05-2007, 01:44 AM
I am working on a large scale re-factoring initiative of a software product written in C#. The re-factoring process needs to be completed in a specific time-frame that looks very aggressive to me. Due to the lack of documentation, it is too complex for me to try understanding all the code that has been written so far. I was just wondering if there is any application that could give me some quantitative information on the project so I would be able to assess the complexity and maturity of various modules. Does anyone know if there are any applications that would count for instance the number of lines of code and the number of classes within a .NET assembly? Thanks in advance!
plumsauce
12-05-2007, 07:59 AM
When it comes to things like this, I start quoting by the week. Not days or hours.
It is often justifiable to charge a week just to look at the project. Certainly, if it took me more than a couple of hours, I would go back to the client and say that proceeding further would require agreement to pay for the examination.
If someone has come up with a timeframe, then get them to justify it on a module by module basis. This is for the purpose of getting them to understand that it is not as simple as they thought. Or, you may discover that there is no justification other than picking a number out of thin air.
YMMV.
notepad can count the lines of code, and just a search on clas keyword will return classes definition. But will do that any good?
re-factoring is usually worse than groundup creation of the app. I would try to determine how long it would take me to create the application from scratch. This is a typical analisys exercise. And from this number, apply the rule of dumb. At first sight you can read and understand all the code? Then decrease time to deliver. Instead code is difficult and messy? Then increase the time to deliver
Q
Atarim
12-05-2007, 10:28 PM
If you can, try to work out a two-phase project, with the first phase being analysis - paid for separately, at the end of which you'll be able to produce a detailed quote for the rest.
hernick_james
12-06-2007, 03:41 AM
I would suggest visiting Tech-IS’s web site techinceptions com They have a code metrics application called OxyProject Metrics as a free download. OxyProject Metrics is available at the following URL: techinceptions com/codemetrics html Happy holidays!
ubersmith_boo
12-11-2007, 01:20 PM
I would definitely suggest breaking the project up into pieces/phases/modules and then give estimates on each of those individually and then separately on the project as a whole. At the very least this will allow you a little bit better control over future expectations from the client as it sets clear milestones that you can plan for.