The Artima Developer Community
Sponsored Link

Java Community News
The Big Rewrite: Why So Hard?

30 replies on 3 pages. Most recent reply: Jan 3, 2007 11:29 AM by Carsten Saager

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 30 replies on 3 pages [ « | 1 2 3 | » ]
Mark Thornton

Posts: 275
Nickname: mthornton
Registered: Oct, 2005

Re: The Big Rewrite: Why So Hard? Posted: Dec 29, 2006 3:57 AM
Reply to this message Reply
Advertisement
> >what would
> > you advise someone who is considering doing a Big
> Rewrite?
>
> My advise: Don't.

Sometimes you don't have a choice as is the case where the existing software depends on a platform that is defunct (or about to be). If the dependency is on the GUI system and with UI components often making up 80% of the total code there may not be much left of the old system to reclaim.

James Watson

Posts: 2024
Nickname: watson
Registered: Sep, 2005

Re: The Big Rewrite: Why So Hard? Posted: Dec 29, 2006 6:26 AM
Reply to this message Reply
> Hi guys,
>
> I am in the position where I am going to be responsible
> for a Big Rewrite. The rewrite aims to change an existing
> 2-tiers Fat Client application written in Delphi to
> N-tiers web application written with Java backend and Rich
> Client frontend. The Rich Client technologies is still to
> be decided, but probably not going to be Ajax. It is
> based on the fact that although Ajax has improved greatly
> UI experience for webpage-based application, it is still
> some way to go to close up to traditional desktop-based
> application, both in terms of UI experience support and
> IDE support. I plan to pick richer web client platform
> such as Flex 2 for frontend, hopefully it can cut down the
> project risk.
>
> Any advices for a Big Rewrite is appreciated, thanks Bill.
> ;)

Four things off the top of my head:

1. Get all the requirements written down and get someone to sign off on them. Don't fall into 'the current app is the spec' trap. If the application is not trivial, your project is going to be late if not a complete failure. If things in the app are obsolete, remove them from the requirements.

2. Don't estimate until you've got the requirements. This sounds stupid but people do it all the time with these rewrites.

3. No matter how tempted you are, don't add any new stuff or improve on things unless it will make development faster and easier.

4. Keep it simple. Don't try to get real fancy neat new technologies. I worked at a company where some contractors tried to do a big rewrite and they used seven languages. Some of these things added no value. For example, they used flash for the front-end. The application was some boring business app. No one gave a crap about how cool it was or the great user experience. Most of the people at the company were still using green screens. All anyone wanted was an application that worked. Instead, they ended up failing miserably and losing any future work with the company after burning through at least 1 million dollars (I've heard as much as 10 but I know it was in the millions.) The software never made it to production. Get an app that really works and then improve the interface in a future version.

Erik Engbrecht

Posts: 210
Nickname: eengbrec
Registered: Apr, 2006

Re: The Big Rewrite: Why So Hard? Posted: Dec 29, 2006 7:27 AM
Reply to this message Reply
> > >what would
> > > you advise someone who is considering doing a Big
> > Rewrite?
> >
> > My advise: Don't.
>
> Sometimes you don't have a choice as is the case where the
> existing software depends on a platform that is defunct
> (or about to be). If the dependency is on the GUI system
> and with UI components often making up 80% of the total
> code there may not be much left of the old system to
> reclaim.

You mean like the Vax? A couple years ago someone where I work "discovered" a Vax emulator for Windows and was hailed as a hero because apparently there's so much critical software running on Vaxes that could die any day.

The point is:
1) Working hardware a lot of times continues working longer than you would think
2) Old hardware can generally be effectively emulated (more than one Vax per Windows box!) so even when the hardware dies the software can live on
3) eBay - I've heard you can find parts for archaic hardware and keep it running using eBay

Merriodoc Brandybuck

Posts: 225
Nickname: brandybuck
Registered: Mar, 2003

Re: The Big Rewrite: Why So Hard? Posted: Dec 29, 2006 8:12 AM
Reply to this message Reply
> 2) Old hardware can generally be effectively emulated
> (more than one Vax per Windows box!) so even when the
> hardware dies the software can live on

I'm wondering what twists software packaging is going to take as virtual machines become more mainstream. Or Live CD's like knoppix or Ubuntu. Heck, with CDs like that you can treat a computer like a video game box. No game installation just pop the cd in and boot up to play and have a flash drive for a memory card for saved games and such. Currently there may be performance issues with such a scheme but as drives get faster and machines come loaded with more and more memory, these problems go away.

James Watson

Posts: 2024
Nickname: watson
Registered: Sep, 2005

Re: The Big Rewrite: Why So Hard? Posted: Dec 29, 2006 12:19 PM
Reply to this message Reply
> I'm wondering what twists software packaging is going to
> take as virtual machines become more mainstream. Or Live
> CD's like knoppix or Ubuntu. Heck, with CDs like that you
> can treat a computer like a video game box. No game
> installation just pop the cd in and boot up to play and
> have a flash drive for a memory card for saved games and
> such. Currently there may be performance issues with such
> a scheme but as drives get faster and machines come loaded
> with more and more memory, these problems go away.

As flash memory gets faster and cheaper booting from flash will probably be preferable to CDs.

It's kind of funny because I remember having to boot from floppies back in the day.

Merriodoc Brandybuck

Posts: 225
Nickname: brandybuck
Registered: Mar, 2003

Re: The Big Rewrite: Why So Hard? Posted: Dec 29, 2006 1:10 PM
Reply to this message Reply
> As flash memory gets faster and cheaper booting from flash
> will probably be preferable to CDs.
>

I think the other problem they have to solve with that is that flash craps out after a certain number of writes. One of the advantages of booting from flash vs. a CD is that it is a read/write medium and I'd want to take advantage of that as much as possible. But you do have to respect any device that can hold the Sword of a Thousand Truths.

Actually now that I'm thinking about it, since you can boot off of USB, how long before you don't need a hard disk in a computer anymore? People can just carry their computers around with them as an external USB hard disk or flash drive. I mention the hard disk only because currently you can't get a 200 GB flash drive. It'd be knoppix or ubuntu taken to its logical conclusion, I guess.

> It's kind of funny because I remember having to boot from
> floppies back in the day.

Hell I still remember that. I'm not that old, am I? That wasn't nearly so bad as having to install Word or Pool of Radiance from many, many floppies.

Or the battery of floppies Netware came with for all of the different clients it had to support. You could install all your client machines and then have a unique set of party coasters when you were done.

James Watson

Posts: 2024
Nickname: watson
Registered: Sep, 2005

Re: The Big Rewrite: Why So Hard? Posted: Dec 29, 2006 1:32 PM
Reply to this message Reply
> Hell I still remember that. I'm not that old, am I? That
> wasn't nearly so bad as having to install Word or Pool of
> Radiance from many, many floppies.

I just makes me smile when I think back to my old mac plus with one floppy drive. I'd have to insert a disk, start booting, then it would ask for the second boot disk and finish booting. Then I'd have to eject that and put in another disk to run a program.

Merriodoc Brandybuck

Posts: 225
Nickname: brandybuck
Registered: Mar, 2003

Re: The Big Rewrite: Why So Hard? Posted: Dec 29, 2006 1:47 PM
Reply to this message Reply
I remember that all too well.

I also remember my first hard disk for the mac. It was about the size of my copy of 'Programming Windows' by Charles Petzold and had a capacity of 20 MB!

Mark Thornton

Posts: 275
Nickname: mthornton
Registered: Oct, 2005

Re: The Big Rewrite: Why So Hard? Posted: Dec 31, 2006 3:51 AM
Reply to this message Reply
> You mean like the Vax? A couple years ago someone where I
> work "discovered" a Vax emulator for Windows and was

If your company is the software user then you can keep it working for a long time. The position of the software vendor is different. The software my company sells was originally written for Windows 3.x using CommonView and C++. Now where would you go from there? We still support it for those customers who don't want to upgrade, but our current system was completely rewritten in Java.

Achilleas Margaritis

Posts: 674
Nickname: achilleas
Registered: Feb, 2005

Re: The Big Rewrite: Why So Hard? Posted: Jan 2, 2007 5:55 AM
Reply to this message Reply
The reason rewrites are hard is because there are no specifications. Perhaps it would be better in this case first to write the specs document and then recode the app looking only at the specs and not the previous version.

James Watson

Posts: 2024
Nickname: watson
Registered: Sep, 2005

Re: The Big Rewrite: Why So Hard? Posted: Jan 2, 2007 7:55 AM
Reply to this message Reply
> The reason rewrites are hard is because there are no
> specifications. Perhaps it would be better in this case
> first to write the specs document and then recode the app
> looking only at the specs and not the previous version.

As myself and others have said in this thread, yes this is the way to do it. The problem I've seen with this approach, however, it convincing the users that the new software isn't broken even though it doesn't work the way the old version did.

Erik Engbrecht

Posts: 210
Nickname: eengbrec
Registered: Apr, 2006

Re: The Big Rewrite: Why So Hard? Posted: Jan 2, 2007 12:22 PM
Reply to this message Reply
> As myself and others have said in this thread, yes this is
> the way to do it. The problem I've seen with this
> approach, however, it convincing the users that the new
> software isn't broken even though it doesn't work the way
> the old version did.

Simple: Don't start working on the new version until you've convinced the users the old one is broken.

Of course that breaks the principle of not allowing any new requirements.

Erik Engbrecht

Posts: 210
Nickname: eengbrec
Registered: Apr, 2006

Re: The Big Rewrite: Why So Hard? Posted: Jan 2, 2007 12:29 PM
Reply to this message Reply
> > You mean like the Vax? A couple years ago someone where
> I
> > work "discovered" a Vax emulator for Windows and was
>
> If your company is the software user then you can keep it
> working for a long time. The position of the software
> vendor is different. The software my company sells was
> originally written for Windows 3.x using CommonView and
> C++. Now where would you go from there? We still support
> it for those customers who don't want to upgrade, but our
> current system was completely rewritten in Java.

Yes, it is different when you are an ISV.

This is OT, but I think a lot of "interesting" discussions emerge when ISV developers, internal developers, contract developers, "independent" consultants, and ISV consultants all start yakking at each other without providing any context.

James Watson

Posts: 2024
Nickname: watson
Registered: Sep, 2005

Re: The Big Rewrite: Why So Hard? Posted: Jan 2, 2007 1:38 PM
Reply to this message Reply
> > As myself and others have said in this thread, yes this
> is
> > the way to do it. The problem I've seen with this
> > approach, however, it convincing the users that the new
> > software isn't broken even though it doesn't work the
> way
> > the old version did.
>
> Simple: Don't start working on the new version until
> you've convinced the users the old one is broken.

In my experience, it's usually not broken from the user's perspective. The software may not be perfectly stable or reliable but all the requirements are met by the time it gets old enough to rewrite. You might convince the users that it's broken in terms of performance or reliability or even correctness but they will still complain bitterly when their favorite feature disappears, as well they should. But when you shake the specs at them and say it's just the way it's supposed to be, they will remain unconvinced.

In other words, getting detailed specifications for the rewrite doesn't really solve the problem of missed requirements. It's just makes it possible for development to finish in a fairly orderly manner and gives cover to the development team when things are missed.

Chee Seng Chua

Posts: 62
Nickname: quai83
Registered: Nov, 2006

Re: The Big Rewrite: Why So Hard? Posted: Jan 2, 2007 5:46 PM
Reply to this message Reply
Really appreciate valuable advices given by Dave Wave and James Watson, thank you very much. :)

Flat View: This topic has 30 replies on 3 pages [ « | 1  2  3 | » ]
Topic: Rebooting Java Media Previous Topic   Next Topic Topic: Groovy 1.0 Released

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use