0

Recently, our development team had a discussion about the conversion of one of our oldest applications. The application is one of the core systems of the company but there are modules that are irrelevant and are no longer in used. We are planning to convert the application by using a new framework and, at the same time, remove all unneeded modules.

We don't have a project manager that will lead us on how we are going to start. Just hearing suggestions from anyone in the team makes me worried about the direction of the project.

I'd like to take the initiative to lead but I don't have a solid idea and experience to make the project move on. So here I am seeking for your help. Any suggestions, comments, or links that will direct me to handling the project. Is there any template or guidelines that I can use?

2
  • What problems are you aming to solve with this rewrite? As ashok's answer explains. This is a very costly and risky idea. Unless you have an equally serious answer then you should not do it.
    – Kempeth
    Mar 14, 2018 at 13:52
  • @Kempeth - as mentioned in my reply to Ashok, the application that we are about to convert is buggy and no documentations at all. It's hard for us to maintain it since it was developed in an older platform. The developer of this application is no longer connected with the company more than 3 years ago. Enhancements for the application takes us more time just by studying the code than the actual development.
    – youji.xii
    Mar 21, 2018 at 1:38

1 Answer 1

1

Completely rewriting an application is a bad idea

Joel Spolsky founder of Stack Overflow, Stack Exchange and Trello in his blog post titled Things You Should Never Do says:

deciding to rewrite the code from scratch... is the single worst strategic mistake that any software company can make

He goes on to give the reasons why:

There’s a subtle reason that programmers always want to throw away the code and start over. The reason is that they think the old code is a mess. And here is the interesting observation: they are probably wrong. The reason that they think the old code is a mess is because of a cardinal, fundamental law of programming:

It’s harder to read code than to write it.

The idea that new code is better than old is patently absurd. Old code has been used. It has been tested. Lots of bugs have been found, and they’ve been fixed. There’s nothing wrong with it. It doesn’t acquire bugs just by sitting around on your hard drive.

When you throw away code and start from scratch, you are throwing away all that knowledge. All those collected bug fixes. Years of programming work.

Instead he recommends rewriting parts of the application to make specific improvements:

Even fairly major architectural changes can be done without throwing away the code.

A second reason programmers think that their code is a mess is that it is inefficient... But this only affects a small part of the project, which you can optimize or even rewrite. You don’t have to rewrite the whole thing. When optimizing for speed, 1% of the work gets you 99% of the bang.

3
  • IIRC Joel's blog post dates from before the drive for automated testing. If you have comprehensive automated tests, you have the confidence to change any amount of the code with a feedback loop to check that you haven't broken it. Mar 14, 2018 at 16:42
  • @JBRWilkinson I agree that you can change code if you have automated tests and they are comprehensive. But the OP is not talking about changing code. He seems to be talking about a rewrite using a new framework. Mar 14, 2018 at 17:03
  • @AshokRamachandran - thanks for your answer. I actually agree with the recommendations you gave. Unfortunately, the application that we are about to convert is buggy and no documentations at all. It's hard for us to maintain it since it was developed in an older platform. The developer of this application is no longer connected with the company more than 3 years ago. Enhancements for the application takes us more time just by studying the code than the actual development.
    – youji.xii
    Mar 21, 2018 at 1:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.