There are several type of development for each project.
- New development
- Change Feature
- Adding new Feature
- or redesign / revamp code
- Bug fixing / Code refactoring
Its unlikely for client (non-programmer) to fully understand the concept behind revamping code,
as in their point of view, its just a piece of program which doesn't work with new business process or doesn't change with new business process.
Out of all 5 different type of tasks, new "development" and "redesign/revamp code" takes the longest time. But this is subjective to either, the code is developed by the same developer, or other developer.
As known that redesign/revamp code could take as long as new development, its best that every new development should goes with proper planning. Both the client / business development manager must cooperate together to discuss the business flow and future path for the system to be used for. The sole purpose would be meeting business long term goal and objective. Without a proper planning, revamping code could possibly be a better choice in later stage of the development. But, lots of time will be wasted bug fixing existing code / work around to fix issue to suite business where it was not developed for that sole purpose.
But, migration of existing system to a new revamped system will also incur lots of time. Not only that, new code also meant new bugs and the process get all reloaded from the start again.
To sum it up, developer should take more time to think of long term solution to the client business, while business manager should consider proper plan for the direction of the company along with the system to build.
By end of the day, both developer and business manager should shake hand and work as a team to make things happen. A little higher price / time spent for a properly planned system save a lot of time along the life of the system.