Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

If a software company loses the source code to one of the products they are selling, how serious would that be, in terms you could explain to a layman? Would the term "gross negligence" be too strong? Or "gross incompetence"? Obviously no one got killed but isn't it as serious as some financial negligence that people get jail time for?

EDIT: Let's say it's not a case of a disk drive crashing, natural disaster or anything like that. Just they misplaced it.

share|improve this question
37  
There is a story behind this question, and I so want to hear it. I'll just wait for it to show up on Daily WTF. –  BlairHippo Oct 21 '10 at 19:24
4  
@Josh K - Bad analogy! A kid can't be replaced. Source code can. (and I'm seriously shaken if you think that source_code==kid). But, I'm guessing you don't have one (yet). –  Rook Oct 21 '10 at 19:45
6  
@Rook: Why is it a bad analogy? Source code cannot be replaced exactly, it can only be replicated similarly. Granted this isn't as extreme as loosing a child, but the simile is still sound. –  Josh K Oct 21 '10 at 19:48
6  
@Rook: You're missing the point that while one (children) are obviously much more important then source code, the possession of both is still greatly treasured. You dismissing my analogy because children are more important then source code would be like dismissing Yahoo! as a search company because Google is so much bigger. My point is that both are huge, the fact that one is ~10x as meaningful / important then the other doesn't matter. Tell you what, loose the repository (and all copies of code) for your companies main application and get back to me in 5-10. –  Josh K Oct 21 '10 at 20:45
5  
I don't understand how there could only be one copy to be "misplaced" in the first place? I typically have at least two or three copies myself in various stages of fixes, updates and patches that I'm working on. My colleagues would have their own copies. At worst, you might lose the history in your source repository (if you're using a central repository without backups)... I just don't see how this is possible... –  Dean Harding Oct 21 '10 at 22:31

11 Answers 11

Let's say MS loses the source for Windows Phone 7... people have been killed for waaaaay less than the estimated $400 million it cost to develop it.

Depending on the product, there isn't a term that I can think of that is 'too strong'.

share|improve this answer
1  
If they're selling software and don't have the source code for it, yes, it's incompetent. However, as a custom software developer, it's amazing how often I've run across little companies run by non-programmers who outsourced their development, and didn't even have buildable copies of the source code for the software they were selling. –  Bob Murphy Oct 22 '10 at 0:35
1  
And it's not just small companies that do that. My consulting firm used to do a lot of work for Informix, which back in the day was a viable competitor for Oracle. They decided to shift one of our projects to an Indian outsourcing firm, and one day the manager called us up: "You didn't send us source!" "Yes we did, it was on X date (about a year before), and here's the FedEx tracking number. Did you lose it?" "No, of course not." "It's ok if you did, because we can retrieve it from our archives, but there'll be a fee." "No, don't bother." We found out later they had, indeed, lost it. –  Bob Murphy Oct 22 '10 at 0:41

For a company this is like losing the crown jewels. If it is a product with an embedded processor then they can continue to make the product "as is" but they lose the ability to improve it or to fix any problems.

In today's markets a company IS it's IP. Lose that and it goes out of business.

share|improve this answer
    
Well said!..... –  Chris Oct 21 '10 at 19:49

As long as they're still able to sell the product, I don't think they're in trouble. Now, if they're under contract to a client to extend the product and provide certain new features in the next version, that's a lot more serious because it's setting them up for breach of contract penalties. But I don't think there's a legal problem with losing the code itself.

This doesn't mean that it isn't an absolute disaster for the company. But it's a financial disaster; not a legal one. I'd probably start with the term "gross incompetence" and work my way up from there.

share|improve this answer
    
-1: "I don't think they're in trouble" They can't bug-fix, patch, or make changes when Microsoft "upgrades" the operating system. They're totally doomed to a rapidly dwindling customer base and the only new sales will be to complete idiots. (A non-zero population, but one without a lot of money to spend on sfotware.) –  S.Lott Oct 21 '10 at 21:34
    
@S.Lott: What may be more important, they can't even recompile. If anything changes in the customer's environment, the software won't work. –  David Thornley Oct 22 '10 at 15:11

To be honest, I think it depends on the language used. If you lose a C# codebase, it can be decompiled extremely easily, but if you lose a C++ codebase, that's far worse.

share|improve this answer
    
Decompiled to the point where it could still be built and run, but would it still be maintainable? –  Jay Oct 21 '10 at 19:40
3  
If you followed good coding practice, then by all means, yes. All method and field names are preserved, even private ones. If methods are short, then the purpose of local variables should be obvious. Compiler tricks like anonymous methods and iterators might look intimidating, but can be reversed (if need be) with some work. And even if the assembly was obfuscated, there should still be a debug version laying around somewhere. –  Note to self - think of a name Oct 21 '10 at 19:50
    
Unless the only code you have is obfuscated, in which case it's going to be a wee bit of a pain. –  MIA Oct 21 '10 at 23:22

While there are certainly cases where it could be cataclysmic, I think there are plenty where it's not (at least from the perspective of the software company).

I think that there are far too many variables to give a blanket answer as to whether there are any legal repercussions, but a handful of questions to consider in determining that would include:

  • What's the nature of the program? If it's something they lost because apps like it are a dime a dozen and it's not important, so what? If it's the company's flagship commercial product, they've only really harmed themselves. If it's custom software they've been contracted to build, that's where it could get interesting, but they you have to ask ...
  • Who owned the copyright of the code? (If the customer holds the copyright, then their property has been arguably lost/destroyed)
  • Is the customer being actively harmed by the code's disappearance?
  • Were there contracts in place regarding future development that will be breached as a result of the code's disappearance?
  • How important is it to be able to recreate the existing software? If it's something like a shell script to do maintenance tasks, the software company eats the time it takes to make a new one that does the same things. If it's an office suite, dust off the resume.

And I'm sure there are plenty of other factors that ought to be considered. Feel free to add on.

Now, I did say "from the perspective of the software company." It may still be catastrophic in the mind of the customer because of plans they had for changes, enhancements, or whatnot. A contract for such things or ownership of the copyright notwithstanding, though, it may seriously anger the customer, but without any obligation on the part of the developer aside from doing what they can to maintain good customer relations.

share|improve this answer
    
And to further expand on the "customer's perspective" bit, what I'm getting at is, I don't know what the story behind the question is, but it would not be unheard of for the customer to think they've got the right to expect the source code to be guarded like Fort Knox while the developer considers it a "throw away" when the customer hasn't asked for any modifications or additional work in the three years since deployment. –  Blumer Oct 21 '10 at 19:30
    
Note that doing things that seriously anger a customer might also be breaches of contract and legally actionable. It may also result in the customer publicly complaining. –  David Thornley Oct 21 '10 at 19:51

As the others have noted, this likely falls under the "it all depends" heading, so a couple of senarios:

Source for a disk-based, console video game - This would likely have little impact on the company since they tend to not make any changes to the game once it has been burned to disk. Granted they might lose some time if there is library code that they have to redevelop, it wouldn't be that bad.

Source for a downloadable video game - This would likely be bad since the the customers are likely going to expect that bugs will be patched, not being able to do so could cause the customers to lose faith in the company which could adversely effect future releases.

Source for a game in development - Most video game companies cannot afford to lose the code for a game currently in development unless it is extremely early in the development cycle (i.e. days, maybe weeks into it.) For a small company, losing the source for their flagship release could cause them to go out of business.

Source for a small business application with a limited release audience - Unlikely to cause any problems for the company, although they might lose a couple customers.

Source for a large business application with a limited release audience - Another situation where it might cause the company to go out of business due to the loss of faith from their customers. Even in most small markets there tend to be more than one company operating and this could be enough for the business to move to a competitor.

Source for a major application from a large company - Here is where it really all depends and would likely be on a very narrow, case-by-case basis. Flagship products (e.g. Microsoft Windows) generally have support contracts associated with them and not being able to support the product could lead to breach of contract lawsuits. If I had to give an estimate, I would say that most people involved in the lose of the code up to senior leadership of those people might need to be looking for new employment.

Across the board though, I would likely say that the person that lost the code would be looking for a new job (and might find it hard to find one!) and they might also be facing lawsuits from the company.

share|improve this answer

If word of that got out, well, any vendor that could lose its source code by any means other than a fairly widespread disaster is obviously not following anything like sound development practices, and is not to be trusted. I'd consider that as very strong prima facie evidence of gross corporate incompetence.

How about "incredible stupidity"?

share|improve this answer

If they don't have to fix any bugs, then it's probably not that big of a deal. For example, if the company makes custom ActiveX controls, and they lose the source to one of their legacy products, then who really cares? The product probably isn't actively maintained, and likely isn't being aggressively marketed, either. They'll sell it as long as people still use 32-bit ActiveX, and then forget about it.

That said, I'd still classify it as gross negligence. Obviously there's no source code management system in place, which is professional incompetence for a software house.

share|improve this answer
    
-1: "If they don't have to fix any bugs" What an enviable level of perfection. Who has software that good? Anyone? –  S.Lott Oct 21 '10 at 21:34
1  
"Not having to fix bugs" != "No bugs". Lots of companies continue to sell EOL'd software with a list of known bugs that they have no intention of fixing. Like a USB driver for Win98 -- they're out there, they're probably not perfect, but I doubt anyone's applying bug fixes. –  TMN Oct 22 '10 at 13:02

I would liken it to other jobs that require construction of an item. Likely something physical. e.g. If an architect lost the plans for a building that was built; If an automobile company lost the plans for a model of car; If a seamstress lost the pattern for an outfit they had made; etc.

There are many jobs that have physical comparisons to liken to creating software.

share|improve this answer
    
Except that the plans aren't usually as important. If the architect loses the plans, another one can still oversee changes to the building. If an automobile company loses the plans, its cars can still drive on roads with newly developed pavement. If I lose the source code, I can't change the program in any significant way, and I can't recompile it to get it to run on a new operating system or with a newer version of a library. –  David Thornley Oct 21 '10 at 21:00
    
@David: I don't think you understood my analogy. If an architect looses the plans to a building, he has to re-make the plans in order to build a new one. I also don't see how another architect can oversee changes to a building if they have not plans to go off of. You, totally misapplied the automobile analogy. Although, you did point out that it was a bit of a weak parallel anyway. –  frogstarr78 Oct 22 '10 at 16:41
    
@frogstarr78: It's feasible to make changes to a building without the original plans. There's a building there that can be observed. Building a new building would probably require new plans, although they could be based on the old ones. The plans for a car model are only going to be necessary for one model year; after that, it's possible to examine the car for necessary information. Losing plans to physical objects isn't good, but it doesn't impact the usability nearly as much as losing source code. –  David Thornley Oct 22 '10 at 20:29
    
@David: I disagree. –  frogstarr78 Oct 23 '10 at 7:49
    
@David: It sounds to me like your comparing the re-drawing of plans for a house, or a car, to be as simple as seeing a running program, and being able to change it. If the program is compiled (and yes reasonably cross-platform compliant), or a car is already built, or a house already built, you can use them all. However, when you need to change any of these things (like I said the car is the weekest example here), you'll need plans to do so. I'm not saying these examples are perfect, but they put the concept in the realm of something physical and familiar to most people. –  frogstarr78 Oct 23 '10 at 8:00

Ah, given this clarification from you (in the comments):

It was developed a long time ago, without source control, they've been selling it all this time and now suddenly they need to update it

In this specific situation, I would say it's probably not the end of the world. Given that they've been selling the software for years without needing the source code, then you can just say to this one customer that's requesting the update, "sorry no-can-do".

Now don't get me wrong, losing the code is not good. It's going to be very expensive for your company to re-write or reverse-engineer the original version (if that's what they decide to do). But it's not the end of the world. They've obviously survived for this long without needing the code, so they probably continue to survive without it.

This is assuming, of course, that the software they're selling is only a small part of their business. Which I'm guessing must be the case...

share|improve this answer
    
Yes, it's just one of many products they sell –  JoelFan Oct 22 '10 at 3:04
    
It's not just 1 customer... it will no longer work on the latest release of the OS –  JoelFan Feb 22 '12 at 19:52

I think apart from the option of decompiling the code, this would be a pretty big issue assuming the company intended to continue to market the software product. If it was an in-house application the same would be true to a lesser degree.

If you can not restore the source code then maintence (bug fixing) and enhancements can not be performed so the application is now static. If Microsoft or Apple or Apache or whoever your operating platform is changes or upgrades their code then your old compiled code may not work and you can not fix it. If you are selling this application to external clients you can not control when they will upgrade their Windows, MAC OSX, iPhone, Web Browser so you have a pretty big risk here to your company's reputation and possibly legal risk also if you have a maintenance contract with the clients.

Secondly the source code represents an asset for the company. So for a software company it is an asset on the books. It is something you can sell as a product or sell the source code and all rights to another software company. I would not continue to sell a software product to clients I knew I could not maintain as I have lost the source code. Further I doubt another software company would buy the application and all rights if they could not further develop the product. So the asset value of this application must be reduced.

For an internal in-house application you may have more control over the operating platform for your application but I would still look to replace this application if the source code can not be decompiled into a useable code base for maintenance.

Cheers,

Kevin

PS I hope this is only a theoretical question...:)

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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