What Happens To Code From Failed Projects?
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?"
They go to the little /dev/null in the sky.
The code is used for other projects by the same company. Few companies release their old/failed code -- id being the only game company I know of that does so (GPLing their old code).
Disconnect and self-destruct, one bullet at a time.
. . . it just fades away.
Schroedinger's Brexit: The UK is both in and out of the EU at the same time!
all have copies at home.
We recycle code. We have to separate it ourselves though. There are code bins for C, Java, Javascript, Perl, and Python. It's pain though! Every semester some intern puts Javascript code in the Java bin and the other way around!
But it beats having the code end up in a landfill!
That really depends, if it fails really badly then it gets buried.
Summation 2
Some have described a tunnel of bright light where the code executes in an infinite loop forever.
Others theorize an ultimate review where code structure is judged. Good code may branch anywhere at anytime with an infinite clock speed and infinite memory space regardless of pointer size. It is said that in the code afterlife, even vista will run quickly. Bad code, say like MS BOB, will spend eternity in some embedded device like a clapper or firmware that controls a japanese toilet.
Where I work if a project gets shelved we separate any useful functions from the code and copy those for future use. and then the code gets archived and a document of its code printed out on paper for reference and as a hard backup. Basically its recycled, although we've had clients come up after 5 years wanting to restart the project, and are surprised that we still have it.
It just sits and waits for an approval, so it can be given a decent burial within the Yucca Mountains.
I've never worked on a project like this, but on other things I've done, I've used it as a learning experience. We always learn how to do things better over time, even if they're not the same type of project.
Depending on the project, I've either kept a copy of my code somewhere safe, or I've just remembered "oh, it took this to do it well", and then do it again but better next time.
I've known people who recycle their code directly. Unfortunately, that makes their errors follow them, and they reuse bloated libraries over (and over and over). On some, I've had to clean up, where I've found multiple things that do the same or almost the same things, and many things that were simply unused and had no application in the new project. Why should you have 10,000 lines of code, where only a couple hundred do the job. Sometimes the leftovers contained subtle but exploitable bugs. Is it worth saving a little time to leave a potentially dangerous bug in place?
Serious? Seriousness is well above my pay grade.
What happens to a code deferred?
Is it ignored
with no more patches to come?
Or sit there, abandoned --
and never run?
Does it become obsolete
Or turn into freeware --
to become something sweet?
Maybe it's reused
To spawn newer code.
OR DOES IT EXPLODE?
Goo goo g'joob.
how do you think they got cloud computing off the ground?
if its really bad code it goes to code hell
most pieces of malware, for example, are zombie pieces of code stitched together from pieces of netscape and aol. the code devil himself is composed of the evit bit and the piece of code that confused imperial units and metric units and caused the mars climate orbiter to crash
intellectual property law is philosophically incoherent. it is your moral duty to ignore it or sabotage it
Usually a program chooses exile when they face deletion. They are supposed to retun to the source, but they sometimes hide in Matrix and manifests themselvesthose werewolves, and aliens, etc in Matrix to screw with people's minds.
To paraphrase the old saw about decisions:
Writing good software requires experience, and experience comes from writing bad software.
Have you read my blog lately?
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.
Doh! It gets patched every second Tuesday of the month.
Say hello to my little sig.
It's how Quake III rose from the dead to become Star Trek: Elite Force.
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
___________________ I want to be free()!
(no text)
I am hoping that some other company will buy TR from NCSoft and continue to host it.
That is what happened to Hellgate: London, for example.
Given how much money was invested in this game, it doesn't make sense for NCSoft to just sit on it and not run it...especially if they have the chance to recoup some of their losses.
I imagine that if you saw into the heart of your typical code developed entirely for internal use (i.e. not for distribution without being compiled first), you would find only rot, stink, and generally a very scary place. You don't want your clients seeing that stuff.
When EA shut down Earth & Beyond, there were the typical calls for the server software to be released. Amazingly enough, they actually did get a response: that the code for the backend of an MMO represents a huge investment by a company, and that they (EA) would not release the code for two basic reasons. One, access to the code (source, libraries, decompilable libraries, whatever) for a fully functional MMO would be a huge leg-up for competitors attempting to enter the field. Two, the code represents a base that can be used for other projects, and releasing a version of that base could be a liability to those future projects. For those two reasons, the chances of EA in any way supporting community-run servers would be nil.
Not stellar news (nor surprising), but the one pseudo-official response I have ever actually seen. And it does make sense, to me at least.
Failed codes seek the oracle and wait for the bug in the system known as the "one" to save them.
...other assets like models, graphics, animation, sound, maps, and data files? These are enormous, time-consuming and expensive assets that also face extinction with failed projects. Or what about assets for projects that are... older and discontinued?
I often wonder how great it would be for new (or smaller, or hobbyist, or cash-starved, or early in SDLC, or whatever) developers if more companies open-sourced these assets.
How can you recycle the code? Doesn't the recycling the code more expensive than create the new one? Different program has a different unik code, so if you recycle the failed code to the new program, you will spent more time on it.
They're bought up by Larry Ellison and used for future versions of Oracle.
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.
"Nothing was broken, and it's been fixed." -- Jon Carroll
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.
"Ladies and gentlemen, my killbot features Lotus Notes and a machine gun. It is the finest available."
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.
It goes to code haven.
Nothing for 6-digit uids?
Failed code is reused! It's all collected and put into the new version of Windows.
I always thought it was really cool of Volition to release the source code to Freespace 2 after Interplay's demise. It's allowed a whole ton of custom mods and campaigns that I'm still playing today, 12 years after the game's release. Textures and effects were updated by the mod community and a lot of the new campaigns include new ships or weapons. Some of the best include:
Beyond The Red Line (BSG conversion with Newtonian physics)
Blue Planet
The Procyon Insurgency
The Babylon Project (Babylon 5 conversion)
Murphey's fighting Occam, and we're in the stands.
Back before the days of the Internet, "Walnut Creek" used to send me a catalog and they had tons and tons of code for sale. What ever happened to that code ? I can't seem to find Walnut Creek anywhere on the Internet and nor can I find that code. Another piece of code I am looking for is an HPGL plotter driver. There was an open source version floating around in the early 1990s, but I can't seem to find it anymore.
People who don't write code seem to think that it's like a made thing, which, once made, has some level of intrinsic value. This is not true. Poor code can have actual negative value (it can even be destructive to a company). Even good code which solves the wrong problems can be a huge hindrance. Failed projects and companies seldom fail simply because they were technically excellent. [I'm not saying it doesn't happen, but I am saying that it doesn't happen all that often, and it's often impossible to divorce code from its context.]
I still get requests to open-source a package I wrote 18 years ago for an OS which hasn't existed for 10 years. I wrote the original version of the package while I was a fulltime college student, in the two months before finals. I certainly went on to put another 3 or 6 months of fulltime work (spread over years) into improving it, so there's certainly some value I put into it. I don't think requesters really understand me when I suggest that if they were REALLY capable of using my code as a starting point, they would easily be capable of simply starting from scratch. There's maybe 10% of the code which really has value, but anyone talented enough to be able to pick that 10% out and repurpose it would probably have no desire to do so. I know that if I were tasked with solving the same problem, I'd just start over.
"government warehouse!"
Borland has released code for several products. They stopped making C++ Builder a few years ago. I wish they would release that code to open source. Eclipse needs a visual editor for C++. They have one for Java, but not for C++. It could work with the QT libraries.
Sheesh, someone shows intelligence and they get moderated away? SMRT!
If the company lives, the code stays on the shelf and eventually the media suffers literal bit rot.
If the company dies, it is marked as being a valuable asset by the creditors, which then hoard it because the poor people that collect the remaining 1% of their investment don't understand the true value of code. They just want their money back.
They'll overvalue the code as if the code is minimally worth the wages it took to produce it, if not much, much more. Really the code is worthless without people who can build it, fix it, use it, sell it, service it, or answer questions about it. Since most would-be purchasers of the code clearly understand that it's worthless without such a support system, they'll want to buy it at a much lower price.
Often the sellers won't be one person, and that makes it even more difficult to sell. Often there are no buyers; if people cared enough about the code to spend more money/effort, it likely would not be mothballed.
Check again. Partial C++0x is support too.
No doubt - which is tragic. :)
My two favorite computer games (by far) are Fighters Anthology (1997), and Star Trek: Armada (2000). Just absolutely phenomenal games.
But the first was abandoned when EA disbanded its military-simulation division ("Jane's"), and Armada was completely abandoned after a legal dispute between Activision and Paramount (one day, all the Armada-related materials on the website just disappeared).
On second thought, that's probably why games like Armada couldn't be officially released - too much of a copyright hurdle between Activision's code, and Paramount's art/storyline/characters/etc. But it's nice to dream that they could be; both Armada and Fighters Anthology still have active modding communities (and that's saying something with FA, which had no mod tools) a decade later. Imagine what people could do with the full sources. They're good games; it's a shame that they'll eventually just be forgotten and lost forever.
If I was a game developer, I'd want to snag a copy of all the source code just as a product finished, so I could share it around a decade later and see what happens.
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.
Remember the last scene from Raiders of the Lost Ark?
i didn't stay awake tthrough them if thats what you mean. talk about crap.
I suppose he or she thinks that it comes down to survival of the bittest?
I'm here all week.
I had a sucky sig.
8. New client asks for a project just like "FooBar_02". Brilliant, free money - all the work is already done! Now we just need to get the code out of CVS... D'OH!
What's happened to the code? It literally is sitting on physical media gathering cobwebs.
I think you need to look up the definition of literally.
While it may be sitting (which, one could argue the term sitting, but I know what you mean) on physical media, it definitely is not "literally" gathering cobwebs.
Ahhh...now I feel better that I've had my grammar fix for the day.
I think this whole AskDot topic is pretty important.
Lurking around your post and some of the others is the key to Web 3.0.
If __ codebase "has negative value", then it might be a candidate for release to GPL after being "codecleaned".
Some hobbyist may extract some random subroutine with a scalpel and then puff it into some entirely different little app.
There's some weird brand of the contrapositive of opportunity cost going on here. Trench sniping over IP is the hot pastime of this decade and next. So it's "worth" throwing out huge code derelicts, thus wasting tons of resource time, and then complaining when someone wants to poke at it.
My first Journal Entry ever, in 8 years! http://slashdot.org/journal/365947/aphelion-scifi-fantasy-horror-poetry-webzine
when I was getting rid of old ASP site for :)
a very well known european airline
I almost convinced my manager that maybe the source code should be printed and stored is a safe location
it was fun
Can Ted McGinley help?
http://www.jumptheshark.com/forum/Ted-Mcginley/22
My first Journal Entry ever, in 8 years! http://slashdot.org/journal/365947/aphelion-scifi-fantasy-horror-poetry-webzine
I know of APLers with about 40 years of software production on their belt. They still use functions and code they wrote in their first year. They claim it is much more fun to do something new than repeating oneself over and over again. If they write a new program, it mostly goes like this: take/copy some functions from library, add some database and string manipulation, drop in a stylesheet and voila your shiny new web-application. I have never seen them needing more than one or two days to finish a complete application, even quite complex ones.
bah you said "buy" not bury.
My first Journal Entry ever, in 8 years! http://slashdot.org/journal/365947/aphelion-scifi-fantasy-horror-poetry-webzine
Dead source code that's commercial is almost never released because of "IP Issues". Someone winds up owning the bones of the dead project so you'll never see it because, in theory, the owners might be able to recover some small part of their investment if it stays closed. IMHO, this is the worst part of commercial software; the world never gets to learn from it. Even the folks who wrote the code are risking their necks if they reuse more than concepts from the original code in their next project.
Oh man, real support for Eclipse would be brilliant.
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?
No sig today.
It becomes firefox.
What is that, like 500 lines?
Help stamp out iliturcy.
Trapped in the amber of Entropy, existing in the continuum of usefulness between infinitely close but unreachable alternative choices more and less useful which define the code utility metaverse.
Help stamp out iliturcy.
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.
You pay programmers in terms of KLOCs produced? Is this 1970s IBM?
On numerous occasions I've written an alpha version of something, had stuff mostly working, then went through with a "lessons learned" approach and rewrote huge chunks into the final product that are a fraction of the original in length. What happens to the alpha code? It's no longer in use, I don't reuse it, I don't get paid for it?
I usually archive it for historical/documentation purposes and never look back, but to say the author of 20k lines of unused code didn't work as hard as the author of 10k lines of code, or that the longer code isn't of the same quality seems unfair, shortsighted and ineffective.
The Golgotha source did get released when the company producing it closed down. It's not exactly a success story though since apparently nobody completed the game based on the released material.
I am the Software Curator of the Computer History Museum. We are actively soliciting donations of software, in particular, source code.
http://www.computerhistory.org/collections/donateArtifact/
Over 60,000 artifacts of all kinds are now searchable on line
http://www.computerhistory.org/collections/search/
And we get useless Ask Slashdot posts... No wait, they get into the linux kernel so that people can change the in-kernel ABI for apparently no reason whatsoever between point releases and as for drivers which don't get updated ...
They get slashdotted
And we get useless Ask Slashdot posts... No wait, they get into the linux kernel so that people can change the in-kernel ABI for apparently no reason whatsoever between point releases and as for drivers which don't get updated ...
They get slashdotted
And we get useless Ask Slashdot posts... No wait, they get into the linux kernel so that people can change the in-kernel ABI for apparently no reason whatsoever between point releases and as for drivers which don't get updated ...
They get slashdotted ... and so on.
I believe C++ Builder and Delphi are now owned by Embarcadero.
http://www.embarcadero.com/
So... 10K used lines gets paid more than 20K unused lines...
return 0;
Here we have one line that is used frequently! That'll be $4 million. I accept paypal.
... it gets posted here.
Offtopic, Inflammatory, Inappropriate, Illegal, or Offensive comments might be moderated up.
What do you mean Armada couldn't be officially released? It was the second-best-selling Star Trek game, and it had a sequel.
Over 20 years ago I would at a company called Business and Professional Software. They had a DOS presentation package called "Trumpet" (This was before Trumpet WinSock)
Anyway, I ported the DOS version to Windows. Being a Windows 2.x beta tester and developer, I had access that BPS didn't have yet, so I had the expertise and the knowledge.
I did some very cool stuff in real-mode Windows. When the program printed, I saved a new document that represented what was selected for print, and spawned a new copy of the program to print. Everyone else at the time had printing as a modal operation. I did some cool things with font mapping, kerning, color management, etc. The product was very cool. Personally, I think we were better than Hollywood (look it up) and Powerpoint was a joke. In the infinite wisdom of David Solomont, he hated Windows, and didn't push the project. He only wanted it to back up the DOS and DEC CDE software offering. Alas, so it goes. It would probably make a good base for a Linux offering today as we used AGFA font rendering and did our own layout, we did not use the Windows GUI except as an output device.
Anyway, I had a copy of the code a long time ago. (In case they need to ask me about it or need a fix) It is, however, now long lost. Most code doesn't actively get tossed when it is no longer used, but it becomes less and less likely to be backed up. In the case of companies going out of business, it exists until the last hard disk is crushed in the land-fill.
There's probably more than a million man-years work of code lost every decade.
Nobody wants it -- why do you think the project failed?
What do you mean Armada couldn't be officially released?
Sorry - I meant if Activision wanted to release the source code for it now (or if anyone wanted them to) they wouldn't be able to work it out with Paramount. I imagine that most abandonware games die that way. You're right though - definitely was officially released, and highly popular. :) And then gone.
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.
I'm afraid that your code violates several of my patents. I demand you cease using it immediately.
-Lee
What's funny is that you let the "sitting" part pass and take issue with the "cobwebs" portion. Yes, it possibly is literally gathering cobwebs, and arguing the contrary just brands you as an idiot.
Also, a debate over the proper use of the word "literally" is a semantic one, not syntactic (or morphological). You could've avoided this by learning the definition of the word "grammar" before engaging in a semantic argument, but that masturbatory post of yours felt really good, didn't it?
P.S. You're a dick.
Ah, that makes a bit more sense :)
Now make the other 9,999 lines of code per year look as easy and clean as that, and you'll have your $4M pretty soon.
There's far too much code out there to reuse it all. So we need some way to separate out the good reusable code from the the bad code. And one way is to let individual voluntary actions of developers and users operate to create an emergent order that will rank the code by desirability. In other words, a free market of ideas. Some good code will slip into obscurity and some bad code will get more promotion than it warrants, but overall the code that does get reused will be the good code.
It's like that other emergent order called evolution. Does anyone care what happens to failed mutations? The good genes get reused and improved, the bad genes die out. It's not perfect, but nothing in life is.
Don't blame me, I didn't vote for either of them!
You'll never have a UID as low as Anonymous Coward.
-Lee
We pass our engine code from project to project, and during each project, it is evolved as needed for the requirements of their project. A modern game codebase can be anywhere from one and three million lines of code (our current project is well over 2 million lines, without even including the middleware libraries we use for things like physics). Modern game engines usually have many many man-decades of labor invested in them, and we like to get as much mileage out of that as we can for each new project.
I am intrigued as to how you came up with a figure of $10 per line of code? It's not that I don't believe you. I'm just interested in the manor in which you calculated this figure.
$10/year to "maintain a line of [shelved] code"??
What the hell are you paying for storage?
Silicon valley is formed between the mountains of buried code from failed start-ups.
I'm sitting on piles of years old code that's still more sophisticated than any graphics code commercially available today (crazy stuff like fully interactive 100fps high res 32bit color animations in under 100k file sizes inside of web browser)
And I can't do anything with any of it because of the legal entanglements that encrust such code. So it sits in unracked servers and drives.
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.
What should happen is the code gets released into the public domain as part of the deal that is "copyright".
Modern copyright is theft of culture from everyone and it retards the progress of the useful arts and sciences.
I have seen at least one case where the code was sold to a firm that just used it as a tax deduction. They could write off the development costs of the asset even though they had no intention of using it.
http://www.oldsoftware.com/old_parts.html
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'.
If you post it, they will read.
>6. What's happened to the code? It literally is sitting on physical media gathering cobwebs. and bad sectors.
Honestly, if you're lucky, several of the lead developers have kept copies of the source of their own (legally or otherwise), and have a decent idea about what is and isn't worth reusing. I've seen this in a few places, both very big and small.
The brightest people I've seen (coders, managers, producers, etc) have "personal scrapbooks" of this sort.
If they're still at the same company, or otherwise have rights to the code, they use or encourage use of the code directly; if they're not, they generally use the practices and ideas to implement it again. New implementations on the same ideas can be even better than old ones.
If you work someplace with some examples of great code or ideas, it's worth prodding the authors until you understand the hows and whys. Often, if you get the reason behind _why_ something was done the way it was done, (re)building it becomes much easier. People generally enjoy explaining if you take an interest at an opportune time. This kind of information can be even more valuable -- and yet less legally/morally questionable -- than taking the code with you.
Better yet, if *you* have coded or helped with a great system, share it. If you can't share the code, share the ideas: lecture at an industry conference, talk to students, write a blog, submit magazine articles, publish a book, or whatever you can get away with; even company-internal workshops. You'll get far more information than you give, almost guaranteed. It's rewarding on several levels.
All that having been said, some of these things really do work out for the best; some of the code that was lost deserves to undergo a death/rebirth (it would stagnate and never improve otherwise), and some rare pieces should be utterly forgotten (too complex or useless to even present an effective antipattern -- the stuff of nightmares).
On the other end, in companies with little communication, or programmers who think they can do it better/faster from scratch, old code is hardly looked at and often lost forever.
And past that you've got the government, which starts from scratch multiple times within each project. I was on a government project once only to find we were working on the fourth version of a program that had never been finished and didn't work. A few weeks in we discovered why as the government insisted we use a certain third-party development software and ignored all of our warnings that it would never do what they wanted it to do.
After banging our heads against the wall trying to warn them, we eventually gave up and played the CYA game, reminding ourselves that we still got paid even if the project never worked.
In a capitalistic society, it goes against the grain to release "dead" code to the public. It might give some competitor a 'leg-up' in some future venture against you. Companies that kill products, or go out of business are nearly always intent on taking their code to the grave with them.
All that wasted intellectual capital -- that others could have looked at, gotten ideas from, possible adapted for other uses...It's a sick and harmful effect on society and humanity -- so much better to throw away good code than to let anyone else possibly benefit.
Certainly it isn't pro-human-race survival for humans to always be "knee-capping" each other to always keep others from getting ahead -- but it's like -- I think it was female lobsters put in a bucket. If it looks like one is about to get out -- the others will pull her back in to prevent her from "getting ahead" and "surviving"....better to kill everyone so we are all 'even'.
It's very related to people going out of their way to make sure others don't get or make use of some perceived advantage. It's sad to see some 25% of the people who will go out of their way -- out of spite, to bring others down to their level -- rather than going with the idea that if some are pushed up, there may be more opportunities for them -- even if they aren't the ones that make it ahead.
To me, that's a psychopathic, negative personality -- that seems to exist in the US population in the 25-33% range (maybe depending on generation or economic climate).
What's odd, is that in group studies where one person can donate money to a 'pot' that is then divided among all,
there are US folks that will forfeit their own money and progress to punish those who are perceived as not giving their "fair share", yet reap benefit. However, this is specific to US society. In ex-Soviet states, the "punishers" punished those who gave who gave *more* than the average -- or gave the higher amounts -- there, it had become more important to punish those who put pressure on the others to give more.
Similar 'sentiments' punish those who don't meet the norm, but very fascinating the way it went in different directions in different societies. Yet -- it still boils down to some 25-33% of the population who make themselves guardians, judges, and enforcers of some 'mediocrity' in society.
It's almost as sad as thinking about all the resources and capital that have been 'burned' or gone to waste by people singly and in large groups fighting against each other and destroying accomplishments all to keep others from getting ahead -- all of which ultimately drags down the entire group.
It's one of the saddest features of most large US companies -- where employees are rated and ranked against each other -- a large number spend significant time and effort to undermine successes of other employees.
It really needs to be classified as *pathological*, sick and criminal behavior -- not "human nature" and not "acceptable" -- because it pulls everyone backwards and down. Ultimate -- it fits the true definition of evil -- something that is anti-human (human health, life, race, evolution). Things that have ill will toward humans (in general) or humanity are the most general definition of "evil".
where would all the calculators go?
The problem with all this old code is that it was written for a particular environment, and that environment is always changing. Unless the owner of the code spends resources maintaining it and adapting it to new environments, it will eventually either not function well or not function at all.
You may be able to resurrect it in an emulation layer for historical curiosity. This is what we do with old Commodore-64 and CP/M programs.
It also means people don't have to reinvent the wheel constantly.
First I misread the title: what happens to jailed projects...
Before you ask, no I am not Hans...
code sold for £250.000 and transformed by its author to become, tra la, Venda.com - sort of.
Yes because every time they maintain the line SCO claims it was part of their UNIX property rights. After disproving that, Microsoft claims it infringes on Windows IP and offers and offers a deal to Novell. The resulting press campaign and cross licensing frenzy triggers another EU antitrust case. After all is said and done and Media Player is removed from Windows we arrive at a cost of $10 per line.
the code will probably end up buried in the desert somewhere.
Of all the code from discontinued projects which vanished, I would have liked to see the MULTICS code released. Instead, I'm told that Honeywell wouldn't even sell the code, reasons unclear.
Having worked on that code decades ago, and seen how close the modern Intel/AMD processors are to the features of the original GE-645 CPU (four rings instead of eight), it would seem that MULTICS could be ported to such processors, making all the application code written for MULTICS (mostly in PL/1) available again.
I guess I'm a dreamer, but even if the code needed to be emulated, ala bochs it would probably run as fast as the 70s processors.
it decompiles.
Some kind of terroristic advert? ;) Are you from the ECC (exploding code coalition)?
--- I am known for the ones who want to find me on the net. Is that a privacy risk or a privilege? One might wonder..
Codegear owns C++ Builder now.
C++ Builder 2009: http://www.codegear.com/products/cppbuilder
Unless you meant Kylix, which seems to have been abandoned.
The manor is on a large estate in upstate New York.
-Lee
Earth and Beyond was the last MMO I played - loved it! Totally pissed when EA shut it down. Amazed at their stupidity, I could never understand why they didn't leverage the game as a conduit to move top-level players into another game or level with enticements/rewards, etc. Instead, they told us they didn't want our monthly $12.95 anymore and pissed off a huge cadre of devotees. I swore I'd never give EA another penny (and I haven't). Hopefully, many others did likewise. I'm hoping these bastards will go broke and their IP will be bought up by someone with a seat on the clue train.
- The Kessel run is for nerf herders. I can circumnavigate the entire Central Finite Curve in a lot less than 12 parse
That would have been awesome if you had ended it with "PS I'm a dick" instead.
I worked on a project that failed eventually they sold the code. I was thinking too bad you couldn't have an openmmorpg framework.