What Happens To Code From Failed Projects? 225
Idzuna writes "With the somewhat recent announcement of Tabula Rasa shutting down, I have been thinking about what will happen to the Server/Client code. Does it get used as a guide for other projects? Does it get destroyed? Or does it just sit there on a hard drive somewhere in storage? The same question applies to many other failed creations. I know the likelihood of the code being distributed freely is next to nil, as most companies probably recycle code. If a vulnerability was found in old code, it could be applied to other products that the company has released. But wouldn't it help development of different projects if such a resource was available?"
The developers (Score:3, Interesting)
all have copies at home.
Re:It's recycled (Score:4, Interesting)
I know at least one other company that GPL'd a product that was nice but didn't excite enough monied clients : Solsoft GPL'd Net Security Master, an application-level proxy.
http://www.hsc.fr/societe/produits/index.html.en [www.hsc.fr]
I worked for Solsoft at the time :-)
usually not worth saving (Score:1, Interesting)
A large codebase takes so much time and energy for a newbie to understand that often it is more effective, and nearly as quick, to re-implement it from scratch. Yes, I realize this is the well-known NIH syndrome, but a codebase that gained little or no traction in the outside world is probably not worth very much.
Every software company that's been around for a few years has lots of failed attempts at a "new new thing" lying around, some checked into version control systems but many others sitting on a file server or some engineer's hard drive. You learn not to ask the guy about it as this will usually cost you a good chunk of your morning.
It Gathers Cobwebs Till Nobody Left Remembers It (Score:5, Interesting)
In my observation at a commercial software firm:
1. Product is canceled / killed
2. Developers that know anything about the project are axed or leave
3. The source control repository sits untouched for year(s).
4. SCM admins decide the project really is dead, and it can stop wasting prime reliable/backed-up-/offsite storage. Project is archived to offline media.
5. Now the project is not online, people that worked on it are gone, and managers that worked with it don't want to remember. After another few years people barely even remember it existed.
6. What's happened to the code? It literally is sitting on physical media gathering cobwebs.
-Malloc
Re:we do. (Score:3, Interesting)
Who cares? (Score:5, Interesting)
Code is easier and more fun to write than it is to read. The first hurdle in front of this magical "re-usable resource" is that no one even wants to take the time to read it and decide if it's any good; the natural inclination is to write your own.
Secondly, programmers are just as crowd-driven as anyone else; re-using code from a failed project is swimming upstream, just like writing code in an unpopular language.
Third strike -- potential legal encumbrance. On the off chance that your project is successful, who know who might come out of the woodwork with a potential claim against it? Look at the SCO Linux lawsuit; even if the claims against your project are totally bogus, they'll still suck years out of your life.
Re:It Gathers Cobwebs Till Nobody Left Remembers I (Score:3, Interesting)
This jives with what I've seen. Although I'll add the additional, final step:
7. Someone decides to clean out that closet full of accumulated crap, asks everyone if they know what the "FooBar_02" project was all about, and hearing nothing, throws it away.
If it's stored on hard drives, tapes, or other reusable media, somebody might at this point grab them out of the trash for re-use at home, but if not they just go to the landfill with the rest of the garbage.
Maybe at some point in the future, archaeologists will puzzle over the more well-preserved specimens, wondering how we managed to survive with such crummy software.
Failed PROJECTS or failed PRODUCTS? (Score:1, Interesting)
There's a difference. It's estimated that at least 2 out of 3 - and probably more - complex IT projects fail. Usually there doesn't seem to be a whole lot that's salvageable. In large part because if it was of salvage quality, the project wouldn't have failed.
On the other hand, if a project does succeed and becomes a marketed product, that's different.
In this case, you have something useful - either directly or by adaptation. The problem is, someone owns it. So the only (legal) way to salvage it is to either license it or purchase it.
I have, however, seen products that the owners didn't want to do that, but also didn't want to revive or even support them. In which case, tough noogies.
Based on my experience... (Score:3, Interesting)
Freespace 2 (Score:5, Interesting)
Beyond The Red Line [game-warden.com] (BSG conversion with Newtonian physics)
Blue Planet [hard-light.net]
The Procyon Insurgency [hard-light.net]
The Babylon Project [hard-light.net] (Babylon 5 conversion)
Re:Depends (Score:5, Interesting)
Better link: http://en.wikipedia.org/wiki/Atari_video_game_burial [wikipedia.org]
I wish Borland would release code for C++ Builder (Score:2, Interesting)
Re: (Score:5, Interesting)
I took the opposite approach at my current job. After computing the cost to maintain a line of code (around $10/year,) the logical solution was to delete all unused code. The payoff was great: no more worrying about breaking compatibility, smaller, cleaner codebase, etc.
Another plus was that shelved code tends to be bad code: if it didn't suck, it would still be in use. Maybe it had some useful gems in it? Possible, but doubtful: usefully gems should have been in a common library, not a cesspool application.
A final benefit was that it made paying the programmers much easier. The author of 10K lines of code that were being used got paid a lot more than the author of 20K lines of code that were deleted.
Raiders of the Lost Ark (Score:2, Interesting)
It's practically forgoten (Score:3, Interesting)
I used to work in four different companies. From my experience, the code will be forgotten for good.
As a first, software products are typically poorly documented. Typically, some documentation is written *after* the project. If project has failed, the chances are that even post-mortem documentation would never be written. Without documentation, there are small chances that someone will be able to use the code.
Technologically speaking, code reusability is generally very low. Except if it is some framework (which by default means that it is for reuse), sometimes even small changes in business logic may lead to significant changes in code (if it affects some assumptions that are made early in project). Different project would probably require too much change.
Even if the same programmer needs to be swapped to the new project, very few code will be taken to it. But he will transfer his experience, which is not a small asset.
I will give you one small example. I had to write a TCP stack simulator. I was contracted to write a TCP over ATM simulation. My plan was to give a code as GPL after the release (no legal problems there). Project started very well, with nice OOP architecture and everything. As project went further, I noticed some errors in design, but it was too late to change them. The closer we were to the deadline, there was more and more bad code inserted. Not that there were many bugs, but it was not that elegant as it was in the beginning. Finally, no matter that simulation worked quite ok, I was not that impressed by idea to give it to the public. Simply, code was in a need of a refactoring; documentation was almost non-existant; I had no time or motif to work on any more.
That project was a success, but would there be any real benefit of giving that code to someone else to use it? Now imagine if that was a failed project - same thing but with bugs and without any results. Who would ever like to use that?
some things never make sense with corporations (Score:2, Interesting)
Amiga and BeOS, etc One that annoys me is I have some old mac classic machines, still useful if I could get say like classic 8.6 from apple for real cheap, but it is unobtanium. OSX certainly won't run on them, 9.xx is bloated, I'd pay apple a few bucks to download 8.6 or have it shipped on a disk, they don't want it. Look at Redhat when they stopped selling a cheap boxed version. They used to get 60 bucks from me, now it just costs them for me to get Fedora for free, because I am not going to pay hundreds for some "workstation" desktop release, but 60 or under (like ten or twenty bucks for the disks and access to the repos) I might think about if it was stable and supported for several years with just official updates. I'm on dialup so I just buy them from the disk clone makers, redhat gets not a penny because they just don't want the money or something.
I don't like fedora's twice a year release,it is too rushed, but I do it anyway because once the newest stuff is out the older version gets seriously neglected even though they offer some patches and whatnot, you can tell it degrades fast. But I would rather just get stable code and have a little money going to the developers. They don't want it unless you give them hundreds. Ta heck with that. So there is CentOS, but the devs and company at redhat still get no money. If I was a redhat shareholder I'd be complaining about that bigtime. Copies are cheap, why don't they try to make a few bucks?
Sometimes things just don't make sense with corporations. Detroit destroying their initial electric car efforts (that were pretty good actually, the EV1 and electric Ranger where decent vehicles) on purpose so the Japanese could come in and grab that market, now they need a bailout. Crazy corporations. I think sometimes the guys at the top levels get so far removed from day to day reality they just get a case of the stupids from megalomania or something. Back to the cars, when the CEOs all flew in on the jets, they got laughed at, when ANYONE with a clue, basic PR 101, would have told them to drive in with their best efforts and concept cars, like they just did last week the second time they came in to DC to beg for bailout money. The Cxx whatevers just get detached from normal middle class reality because they are just too rich and used to giving orders and think they are infallible, can't even see a lot of things anymore so they make boneheaded decisions with their markets.
Look at the MAFIAA tards who just don't get it that 20 bucks for ten cent plastic disk with some ones and zeroes on it is serious price gouging, because $20 to them is a dropped penny on the ground, all the big bosses in the music and movie industry are multimillionaires surrounded by yesmen toadies. So they wonder why piracy took off. They just don't get it.
Re:It is deservedly buried? (Score:2, Interesting)
I know that if I were tasked with solving the same problem, I'd just start over.
Perhaps they only want a small change or two.
I'm stuck with several packages which haven't been updated since the early/mid 90s which I depend on intrinsically, and the authors refuse to provide upgrades, sell or otherwise provide the source. And I have offered good money.
In one frustrating case, an author agreed to GPL sources, spent a month or so conversing by email as he got the sources off his old computer, then went quiet. That was 9 years ago.
Re: (Score:3, Interesting)
I guess I didn't express myself well. I don't care about KLOCs, I want problems solved.
I get very annoyed at programmers who claim they are productive because they wrote 20K lines of rubbish. So, I fire them and give the freed-up money to the guy who wrote 10K lines of useful code.
And, yes, I do understand that some things are one-shot projects (e.g. data migrations.) Using my super-manager powers, I explain we will get paid for getting the job done, not for writing pretty stuff.
Re: (Score:4, Interesting)
I was lucky enough to have a 10+ MLOC codebase, plus version control history on 500+ developers going back 10 years. After writing a shredder/hasher to look for cut and paste programming, was pretty easy to divide commits into new development vs "maintenance." This gave rough $/line numbers.
Then asked a number of developers to estimate their time spent checking/maintaining compatibility with existing code. Numbers mostly agreed with the version control numbers.
Finally, went to some managers and asked how much they would pay to have 1K, 10K, 100K LOCs removed. Again, numbers matched reasonably well.
I don't claim science here: estimates varied from $1 to $100 per line, but $10 was a number most people were comfortable with.
Places like this, if they're lucky (Score:3, Interesting)
http://www.oldsoftware.com/old_parts.html [oldsoftware.com]
I don't know how one can run a business selling junk like this, but all those old CD's wind up at the bottom of the food chain.
Of course, you may need to broaden the term 'failure' to include 'shipped, but failed to sell'.
but (Score:1, Interesting)
where would all the calculators go?