Moving old to new. Do not be afraid of the re-write -- but take some help

Recently I had to help users on one of my opensource project ISPMan.  http://ispman.net
This project started in 2001 as I was too unwilling to take care of the DNS and VitualHosting stuff as it was a side-thing to the company I worked for (so i wrote a software that took care of all these little details)

Summary: A large project that needs a rewrite can be done in a matter of day.
I will not give you a full case study about a project that went through a re-write but a case study about how easy it is to re-write something.

Details:

My boss was cool enough to let me  open-source the project and obviously,  I got a lot of cool-cred out of it.
Later on I also did some support and implementation  and earned quiet some money with it.

Eventually I had to let the project go out of my hand to the community as I only did it to facilitate a job  that wasnt williing to do. (Setup DNS zones of multiple servers, find out which host should host the website and put VirtualHost section there, find out which mail server should take care of the mailbox and create a mailbox, etc)

The project was quiet successful and there are a number of users who are using it.
One of the project members took himself to be the project manager and has been running the project since.

I have been out of this project almost 5 years (not much time, I have had  2 kids 4.5 years and 8 months old, and my job was very demanding). The stress from my job has weakened a bit now (It took me really 3.5 years to bring them to a stable  "actually an oxymoron when we are talking about high scalability" state).

Back to the topic. We have had having complains about not having this feature and that for this opensource product.
I tried to put in this  feature... "I was the main authour. How complicated would it be for me to add this new feature.." and eventuall I went "What the ...".

Yup, I hated my code, I hated everything about it. (as a programmer, as a sysadmin, as an op).
Yes it was me coded it 7 years ago, it was me who insisted it to be like that... etc.
But times have changes.. Its not 2001 any more.

So I want to re-write it.

Its not the first time that the idea of re-write was in place.
Couple of years the senior members (any one who had to deal with the code) wanted to re-write.

Its not extensible, its not pluggable, blah, blah, blah. Yup it was not written to do so. I was just written so I dont have to do the work which I did not wanted to and it served it welll... So if you want more extend it, re-write it, fork-it, you get my  point (from the guy who wrote an app and opensourced it).

I understand that point of view of the developers too "Why do I have to know how you LDAP scheme works, or how does
Cyrus mail server works, etc"


The re-write part:


Using a PHP framework ( http://framework.zend.com )  ( something that almost did not exist in 2001 ) I was able to get something up and running in a couple of hours. http://ispdirector.net

This whole thing was not possible without.
* PHP5 (we moved from perl to php, in 2001 PHP was really Pretty Home Pages)
* Zend framework ( opensource frameworks were scarce in 2001)
* Some experience  that LDAP as great it is, should not be where you put all your eggs



This particular example does not say that perl(or any other language )  is bad  and php is good or ldap(or any other directory)  is bad and mysql is good , its just how we did it for this particuliar project.

Oh and forgot about the "Get Some Help"
Tellling your colleagues that they have to move to a new API can be more difficult then  to hear a few blah and blah by the secreteries moved from XP to Vista

This was about really moving from Perl to PHP, from PHP to Java,  from Java to Perl, from Perl to Ruby.
The whole point is that it does not matter.

If you can do X faster than Y than I take you (In compute intensive scenario)

If you do all your calculations this way, it might go somewhere.