Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
Software

Code Copying Survey for Developers 389

Struan Robertson writes "With all the controversy surrounding SCO's allegations that its Unix code was copied into Linux, we're running a survey with ZD Net to gauge industry practice on code copying. Do you keep a code library? Do you take it from one employer to another? These are the questions we're asking. All answers will be anonymous. The results - with expert legal analysis - will be published free - we're not doing this to sell reports etc. If you're a developer and happy to help, see our questions on SurveyMonkey.com."
This discussion has been archived. No new comments can be posted.

Code Copying Survey for Developers

Comments Filter:
  • Sure, Why Not? (Score:5, Insightful)

    by Saeed al-Sahaf ( 665390 ) on Thursday April 08, 2004 @02:10PM (#8805918) Homepage
    Yes, it's standard to keep a code lib, and take it from job to job. Why reinvent the wheel?

    This is one reason that software patents are just silly. At some point, virtually every technique will have been written, then software companies will indeed all become like SCO: A few developers and a fucking platoon of IP lawyers.

  • Anti-business? (Score:2, Insightful)

    by Anonymous Coward on Thursday April 08, 2004 @02:12PM (#8805939)
    we're not doing this to sell reports etc.

    Not to troll, but why are so many people here opposed to business and money? The submitter probably knows (from experience) someone here will accuse him/her of greed in the first five posts if they didn't add that discaimer.

  • Question 6 (Score:5, Insightful)

    by Anonymous Coward on Thursday April 08, 2004 @02:14PM (#8805966)
    Is unreasonable. You are assuming I would reuse code but not saying if its in house or between companies. In my stats class this question would be deemed unethical and slanted. Thus, the results of the survey would be thrown out.
  • by Queuetue ( 156269 ) <[queuetue] [at] [gmail.com]> on Thursday April 08, 2004 @02:14PM (#8805967) Homepage
    It asks

    3. By law, who do you think owns the rights in a piece of software that you develop or in code that you write?

    Me
    My employer
    The client who commissioned and is paying for the development

    But never asks where I developed it, nor what legal documents exist to protect various parties.

    Obviously, if I'm working on code under a work for hire agreement, it belongs to the guy with the cash. If not, It's copyright me. If it's OSS code that I need to improve for a client's benefit, of course it doesn't belong to either of us - it belongs to the original author.

    Did I do it at home? Did I start it before or after getting involved with the company or client? Does the client mind freeing the source? Does it contain proprietary information?

    This survey is worthless so far, except to publish articles.
  • Re:well.. (Score:2, Insightful)

    by Oligonicella ( 659917 ) on Thursday April 08, 2004 @02:14PM (#8805969)
    Ah, good. One presumes then, that *you* will be writing and posting on the net a library of routines and snippets donated to posterity.

    Didn't think so.
  • by Anonymous Coward on Thursday April 08, 2004 @02:16PM (#8806005)
    Sounds like you don't really understand much of the code you put out . . . I just hope you're not "writing" anything critical.
  • Sure, why not? (Score:3, Insightful)

    by PlatinumInitiate ( 768660 ) on Thursday April 08, 2004 @02:17PM (#8806023)
    Unless you specifically sign an NDA or it's in your contract that you are not allowed to do this, I don't see what the problem is. Writing everything from scratch every time you go onto a new project at a new company when you have code snippets that could be used would be ridiculous - it would be a waste of time and money for your employer. On the other hand, taking work that was done by you (and probably other programmers) and using it at another employer is certainly underhanded, especially if you've signed an NDA stating that you will not do it. If you haven't signed an NDA, check your contract. If nothing about code is mentioned, you are probably safe. Even a lot of "intellectual property" paragraphs can be invalid - people falsely assume that if the y have "intellectual property" protection, they are safe. Actually, the terms have to be very verbose and descriptive, incorporating either copyright rules or patent rules. A lot of NDA contracts that I've seen from prospective employees from their former companies (in the gaming arena, where NDAs are almost universal) were invalid!
  • Game Creation (Score:2, Insightful)

    by PaloDeQueso ( 769669 ) on Thursday April 08, 2004 @02:18PM (#8806037)
    Let's take a look at the game industry, the same code is often used over and over, or at least the same algorithms because you can't afford to loose efficiency in your engine. Especially with modern game engines where the best cards on the market still choke... FarCry? Doom3?. Sharing of code in games is not required, but as an earlier post said, why reinvent the wheel?
  • Just to be safe... (Score:3, Insightful)

    by tallpole ( 723263 ) on Thursday April 08, 2004 @02:19PM (#8806050) Homepage
    ... I make sure that I write in a different programming language every time I change jobs.

    Sriously though, the problem with coding, is that it is still more of an art than a science, and therefore the endproduct tends to reflect the style of the developers. It creates legal issues, but it's like asking Da Vinci to paint in a different style for a patron, "because we don't want those Sistine fellas complaining on infringement of copyright"- Ridiculous yes, but very real (IMHO).
  • by 4/3PI*R^3 ( 102276 ) on Thursday April 08, 2004 @02:21PM (#8806090)
    Overly simplisticly, coding is like painting. All painters use the same colors over and over again. What differentiates a painting is the order and placement of the colors.

    Patenting or copyrighting an individual block of code is like patenting or copyrighting the color red. A painter would never be able to patent or copyright the color red and demand a royalty for all artists who use red. Painters copyright their entire image -- even a large enough sub section is copyrightable.

    Coding should be the same. How many ways can somebody write a decimal to currency string formatting routine? How many ways can somebody write an RGP go greyscale conversion routine?


    note: for those who say "what about Pantone?". Pantone does not copyright the color itself only the name and the Pantone color number is copyrightable. You are always free to use any RGB combination you want but Pantone will guarantee that their color system will always generate the same color on any printer that supports Pantone -- this is the value of Pantone.

  • by flossie ( 135232 ) on Thursday April 08, 2004 @02:23PM (#8806115) Homepage
    There are many implicit assumptions evident in the survey questions.

    The question that asks whether or not you think it is legal to re-use code for different employers needs another option: "it depends". For instance, code released under the GPL with a former employer's permission is free to be used elsewhere. However, the survey doesn't ask whether or not the code was supposed to be kept confidential.

  • Re:Choice? (Score:3, Insightful)

    by woodhouse ( 625329 ) on Thursday April 08, 2004 @02:24PM (#8806136) Homepage
    Wow, this survey will produce helpful results. For some reason I'm guessing it'll conclude that 100% of programmers would copy code. Genius.
  • by Chromodromic ( 668389 ) on Thursday April 08, 2004 @02:25PM (#8806148)
    It's pretty ridiculous to lament the current state of average software quality and then require developers to reinvent the wheel every time they're on a new job or working for a new client. It may not be lawful, in all instances, to copy code between projects and clients, but in order to meet requirements, especially time requirments, while ensuring a quality project that's as bug free as possible, copying is not only a necessity but a common practice.

    Besides, what are we really talking about most of the time? Code libraries? What's the difference, really, if I copy code from my library or use routines from memory, things that I've been required to code over and over again, like validation routines, or basic algorithms?

    No one is going to say that they go from client to client and write brand new code each time. Furthermore, if I were a client I would have to seriously question whether I'd even want that. If I were on a tight time constraint I wouldn't get it even if I did want it.

    It would be like commissioning someone to build a bridge and then requiring that they only use brand new formulas anc techniques. Okay, but I'm not gonna be the first guy to test it ...
  • by Hockney Twang ( 769594 ) on Thursday April 08, 2004 @02:27PM (#8806177)
    If I write a program that performs a particular function, and then later want to write a program to do the same thing, I end up producing an almost exact replica of what I coded previously. Maybe it's just me, but my coding style is basically set in stone.

    So, in that key, I'm not physically keeping a code library, but I am reproducing code that may have become the property of another party.
  • Good reason... (Score:5, Insightful)

    by lukewarmfusion ( 726141 ) on Thursday April 08, 2004 @02:27PM (#8806185) Homepage Journal
    ...not to document your own code?

    Sorry, but a hack != programmer. You can toss together a bunch of stuff other people have written, but when it breaks you'll need to be able to fix it. If you never learn how to do that, you'll never be more than a cut-and-paste drone.

    It's great to be able to use resources like View Source to learn new stuff, see new techniques, even find quick examples of how something's done. But if you can't understand how to do it on your own (which may take much longer, granted) then you're not going to last.
  • by Neil Blender ( 555885 ) <neilblender@gmail.com> on Thursday April 08, 2004 @02:28PM (#8806186)
    ...in my brain.
  • Re:Choice? (Score:4, Insightful)

    by bolverk ( 31238 ) on Thursday April 08, 2004 @02:29PM (#8806202) Homepage
    How about c) If the license permitted it? I've written code for employers under the GPL and the BSD licenses. (My current project is to work on BSD-licensed code). I've even worked under contract where part of the terms were my retaining copyright on the code I wrote. Of course, I'd re-use any of this code in a heartbeat. Just yesterday, I got special permission to use code I wrote on contract three years ago. I'll re-use that code too. This is an extremely poor survey. I can't answer honestly with this survey since there is no option for me to do so.
  • code arsenal (Score:3, Insightful)

    by gfody ( 514448 ) on Thursday April 08, 2004 @02:32PM (#8806261)
    myself and every other developer I know it's common to build up an arsenal of code (written or otherwise collected/customized) for various things. more importantly there's the problems and how you solved them that you'll never forget but the problem may come up frequently regardless of where you work.

    it's pretty rare that you find code that you can copy paste and compile. usually you need to read the code to understand the algorithm, then rewrite it to suite your application/variable names/coding style.

    one-off hacks and throw away code probably all looks the same company to company programmer to programmer. it's the overall system design and high level architecture that I would consider the meat of the IP anyways.. and it would typically take more than a single developer to pickup and rebuild it somewhere else
  • Re:Sure, Why Not? (Score:5, Insightful)

    by somethinghollow ( 530478 ) on Thursday April 08, 2004 @02:36PM (#8806321) Homepage Journal
    1) Not only that, I think programmers should share. We are, after all, computer scientists. What if every other scientist locked up all of their secrets and just said, "Yeah the Earth moves around the Sun. I won't tell you why or how I know, though."

    2) In the beginning, people shared code to do common things (e.g. sorting algorithems). I wonder if they mean "Do you keep a copy of your sorting algorithems to use in other programs?" or "Do you keep a copy of your accounting software to recompile at your next job?"

    3) I agree w/ the parent. It's just plain stupid to re-write some things when you have a perfectly good solution already written. Besides, if you write it over enough times, you'll remember how to write it... then you are ALWAYS carrying around code from job to job. You can't not take it.
  • by UCRowerG ( 523510 ) <UCRowerG@y a h o o . c om> on Thursday April 08, 2004 @02:39PM (#8806366) Homepage Journal
    Is it just me or does it seem that the survey is bias towards making developers look like they are unlawful?

    Exactly. Question #6 doesn't even have a "mu" option:

    6. Would you re-use blocks of code written elsewhere

    * Only if you were confident that nobody would find out

    * Whether it would be found out or not

    What if I already answered "I don't re-use code (that I don't own)"?

  • by mattwarden ( 699984 ) on Thursday April 08, 2004 @02:40PM (#8806379)
    You never ask whether the person wrote the code in their code library on their own time. It seems like you assume that it is all written on someone's dime and then reused in someone else's project.
  • by meshko ( 413657 ) on Thursday April 08, 2004 @02:41PM (#8806387) Homepage
    It does. Stupid questions of the type "have you stopped drinking whiskey in the morning?". I got really aggravated after answering 5 questions.
    I have a "code library" (whatever they mean by that) which I wrote in my spare time. It is released under GPL. I'm the copyright holder. I can assign any other license to that code. Therefore I can embed parts of this library in any proprietary code I write for my employer.
    I also reuse other people's code released under BSD, MPL etc. This is all legal, but the survey doesn't know about this stuff.
  • by Niles_Stonne ( 105949 ) on Thursday April 08, 2004 @02:44PM (#8806441) Homepage
    The real question for this example is:

    When are you not just mixing colors, but making a painting? At what point does the combining of code become a unique work? One line? Ten? A Thousand?

    There isn't an easy guage to determine that point, perhaps one needs to be developed? When does code truly change from General Purpose (a "color"), to specialized (a "painting")?

    I think the colors should be free for all, and the paintings rights should be retained by the artist or whomever they are painting it for.

  • Re:I'm amazed (Score:1, Insightful)

    by 110010001000 ( 697113 ) on Thursday April 08, 2004 @02:46PM (#8806469) Homepage Journal
    Uh, how is taking code from your personal code library copying code without permission? Where do you work? Do you actually work in the industry?
  • by civilizedINTENSITY ( 45686 ) on Thursday April 08, 2004 @02:48PM (#8806499)
    When you improve or extend GPL-ed code, don't you then own the changes you made? Wouldn't you and the orignal author then have copyright interests in your derived work?
  • by ChiralSoftware ( 743411 ) <info@chiralsoftware.net> on Thursday April 08, 2004 @02:53PM (#8806564) Homepage
    If software patents had existed thirty or forty years ago, there would be patents on the for loop, linked lists, the subroutine, use of buffers, storing text in the form of a sequence of bytes (an invention called a "string"), use of APIs, re-use of code in a form called a "library", the process of merging multiple files of executable code together known as "linking", and many other things, and the process of taking a file containing "source code" and turning it into executable (a novel invention known as "compiling"). All of these things would be patented. Non-commercial software could not exist because there's just no way to write a program without strings, lists and loops, unless your program just consists of a long list of NOOP instructions. But of course NOOP could have been patented too. In fact all these inventions are much more patentable than the stuff that is getting patented now, because when these software constructs were developed, they really were completely novel and non-obvious, unlike things like one-click ordering.

    --------
    Create a WAP server [chiralsoftware.net]

  • by akajerry ( 702712 ) <akajerry@akatec h . c om> on Thursday April 08, 2004 @03:04PM (#8806699)
    > If it's OSS code that I need to improve for a
    > client's benefit, of course it doesn't belong
    > to either of us - it belongs to the original author.

    Actually if doesn't matter if you're improving OSS code or writing from scratch, the code still belongs to the client. However if the original OSS code is used under a copyleft license like GPL the owner of the modifications is required to also release the modifications under the same copyleft license.

    The distinction is that the original author of the unmodified OSS code cannot turn around and incorporate your modification into his/her codebase and license it to someone else under different terms.

    Also, the GPL does not actually require you to release your modifications, it just restricts you from releasing the modification under any other terms than the GPL. I.e. you can keep the modification to your self or release them under GPL, but you cannot sell them.
  • Re:Sure, Why Not? (Score:5, Insightful)

    by dubious9 ( 580994 ) on Thursday April 08, 2004 @03:07PM (#8806751) Journal
    Which brings us upon an interesting question. Even if you didn't bring the same exact code, you're the same exact person. If you implement the code in the same way, if you have a good memory it could be almost verbatim. Same class/file name, variable etc.

    Is that illegal? To be legal can I never write a program with similar functionality? Or do I just have to do it in a different way? How different does it need to be to be legal?

    If you can defend reimplementing something very similar, then how different is that then copying the file exactly?

    I guess my point is that at some point a reimplementation by the same person for the same thing looks like you copied it exactly then changed things around.
  • Re:bad questions (Score:3, Insightful)

    by CanSpice ( 300894 ) on Thursday April 08, 2004 @03:17PM (#8806866) Homepage
    To risk using a Slashdot cliche, you're new here, aren't you? Thinking that the mods are going to do anything is rather naive around here. Most of the time they can't even be bothered to spell or grammar check submissions, and now you're expecting them to edit another person's survey?
  • by Anonymous Coward on Thursday April 08, 2004 @03:19PM (#8806896)
    If your contributions are small enough then they can be 'fair used' away by the original author and they retain copyright. However as your contributions grow then yes you do retain ownership of them.
  • Re:Sure, Why Not? (Score:2, Insightful)

    by It'sYerMam ( 762418 ) <[thefishface] [at] [gmail.com]> on Thursday April 08, 2004 @03:22PM (#8806949) Homepage
    unscrupulous scientists routinely steal important discoveries and fame.

    And therein lies the game. What should be happening is for scientists to be working together and cooperating to achieve a common goal, not competing and impeding one another for their own betterment.
    If your goal as a scientists is personal fame then you deserve no help whatsoever. If on the other hand you're trying to obtain the meaning of life for the people of the world's enjoyment, you should receive full cooperation.

  • Re:Sure, Why Not? (Score:2, Insightful)

    by Glug ( 153153 ) on Thursday April 08, 2004 @03:50PM (#8807407)
    Because it's illegal?

    I would rephrase that to "Because employers place erroneous (and, alas, believed by the courts) claims of ownership on the code that programmers bring into a workplace in their heads and notebooks."

    This allows them to take the best features/ideas of their historical library and integrate those ideas in new and better ways...

    As you pointed out, taking features/ideas from their historical library and integrating them in new and better ways can be illegal.

    The problem is not that programmers sometimes reuse some of their own source code to avoid wasting time by having to reimplement some mundane algorithm, but that IP law does not recognize that the line between what code an employer owns and what an employee owns must fall somewhere outside of the employee's head rather than within it. You simply cannot own people's minds, humourous examples involving the current presidential administration notwithstanding.
  • Oh yeah (Score:5, Insightful)

    by ENOENT ( 25325 ) on Thursday April 08, 2004 @04:07PM (#8807639) Homepage Journal
    I really want to haul the same old bloated and broken code that I wrote 5 years ago from job to job, like an albatross around my neck. That would really make me happy.

    The biggest tempatation in looking for new jobs is being able to forget the current code base forever, and never have to add YET ANOTHER feature onto already-baroque code that nobody wants to take the time to rewrite.

  • by moodboom ( 191676 ) on Thursday April 08, 2004 @04:22PM (#8807927) Homepage
    I think the parent comment is a lot more accurate than you might first think, for people with both good AND bad memories. My memory sucks - as is true of all good C++ coders - wrap and forget. :> I often search for instances of variables with names I can't remember using the name that seems most reasonable, and I'm constantly surprised by my success.

    Then again, now that I think about it, maybe I'm just the type that's constantly surprised, period. Ha!
  • by torokun ( 148213 ) on Thursday April 08, 2004 @04:25PM (#8807963) Homepage
    If hardware patents had existed thirty or forty years ago, there would be patents on the transistor, the zener diode, pipelining architectures, bus architectures, and all the different approaches to RAM... All of these things would be patented. Non-commercial hardware could not exist because there's just no way to create a computer without transistors. unless your computer just consists of a bunch of relays. But of course relays could have been patented too. In fact all these inventions are much more patentable than the stuff that is getting patented now, because when these hardware constructs were developed, they really were completely novel and non-obvious, unlike things like using a blue laser instead of a red laser to read/write data.
  • by Anonymous Coward on Thursday April 08, 2004 @04:33PM (#8808079)
    So where can I get non-commercial hardware then?
  • by apocalyptic ( 769718 ) on Thursday April 08, 2004 @05:08PM (#8808606)
    Can anyone tell me exactly what the difference is between components of a program (loops, specific API calls) and components of real world object X (a bridge, a house, etc)? Would the US patent office allow a pipe making company to patent a 5' pipe then allow that company to sue a pipe company that made a 10' pipe. All this world need are smarter lawyers!
  • Re:Loop (Score:3, Insightful)

    by Virtex ( 2914 ) on Thursday April 08, 2004 @05:17PM (#8808723)
    Infinite loop? Nonsense. There's no such thing. They're fairy tales told to scare young programmers into submission. I've been programming for 100 years and I've yet to see a loop that ran forever. One way or another, they always terminate, whether by a Control-C, hardware failure, or any of a million other ways. Infinite indeed.
  • Re:Sure, Why Not? (Score:4, Insightful)

    by revividus ( 643168 ) <phil.crissman@gmail.cTOKYOom minus city> on Thursday April 08, 2004 @05:19PM (#8808757) Homepage
    Reminds me of when John Fogerty (orig of CCR) was sued by his old record company b/c they said one of his songs sounded too much like CCR. A bit about that here [johnfogerty.com] I like the line "Critics had a field day contending that Fantasy was suing John Fogerty for sounding like John Fogerty"

    On another slant, all the Safari sites, like this one [oreilly.com] have, right beneath the search function on the left a box you can check to "Search for code fragments only".... Of course, these are published expressly for the purpose of educating, so there's nothing illegal about using snippets of code from technical books. I wonder how much actual production code contains code from O'Reilly (or insert other publisher) books in it?

  • Re:Sure, Why Not? (Score:2, Insightful)

    by williamhb ( 758070 ) on Thursday April 08, 2004 @06:35PM (#8809615) Journal
    Many corporately employed artists, writers, etc, do not own copyright on their portfolio, but it is accepted standard practice for them to show copies of work at job interviews. I have heard of it happening often amongst interviews for technical writers (where being able to write clearly about a technical topic is important), but seeing code samples from an applicant for a programming job is surely of limited value: Is the interviewer going to know the applicant's products that well that she/he is going to be able to see why particular design decisions were made? And by the time you take into account company coding standards, code reviews, and other people making maintenance changes to the code, how much of the formatting is an indication of that individual programmer's skills? More usual is to get asked a bunch of technical questions by an engineer sitting in on the interview and to get into a bit of a discussion that will also reveal if you have an understanding of the new company's field or not.
  • Survey is biased (Score:4, Insightful)

    by Salsaman ( 141471 ) on Thursday April 08, 2004 @07:19PM (#8810064) Homepage

    6. Would you re-use blocks of code written elsewhere

    Only if you were confident that nobody would find out

    Whether it would be found out or not

    So where is the 'only if it were legal' option ?

  • by arkanes ( 521690 ) <arkanes@NoSPam.gmail.com> on Thursday April 08, 2004 @11:23PM (#8811940) Homepage
    It's pretty simple, really. Patents on hardware don't harm "free" development of hardware because there is no such thing - you can't make transistors without a fab and patent fees are the least of your worries there. On the other hand, freelance/hobbyist software development can't afford that kind of fee. It's why we have copyrights on books instead of patents.

    Patents aren't boogeymen. Patents on things that haven't been invented (speculative patents), have already been invented (trivial patents), and things which shouldn't be invented (frivolous patents) are boogeymen. Patents on things you DO rather than things you MAKE are REALLY boogeymen, because they're extremely broad and conver the concept of doing something rather than a way of doing something, preventing innovation, and, incidently, being totally useless to the public domain once the patent expires.

  • Re:Sure, Why Not? (Score:2, Insightful)

    by fegu ( 66137 ) * <Finn@ G u n d e rsen.net> on Friday April 09, 2004 @05:16AM (#8813463) Homepage
    This problem is easy to solve. If the guy isn't interested or dedicated enough to have done even ONE small project for fun in his spare time, then we're simply not interested in hiring him. We require geeks. Geeks invariably have some opensource contributions, a half-done MP3 player, some cool IRC bot or similar to show. This is so because they think coding is, you know, fun.
  • Re:Sure, Why Not? (Score:3, Insightful)

    by BlackHawk-666 ( 560896 ) on Friday April 09, 2004 @11:35AM (#8815868)
    This is pretty much spot on. The libraries I personally hold are getting quite old and new techniques should be investiated before using one of the templates. That's why I investigate the appropriate tech prior to starting a project and will write new template routines as required to stay fresh with modern innovations.

    As for using anything more significant than code snippets, I wouldn't do that. Standard libraries are available either freely (thanks GNU) or at a reasonable price in comparison to a project. I usually get a purchase order for any significant library which we will require to develop a project. For me, my library is all about saving keystrokes and reducing simple errors, rather than dropping in 10,000 lines of code that rightfully belongs to another company.

  • by Latent Heat ( 558884 ) on Saturday April 10, 2004 @03:57PM (#8826197)
    Why don't you ask your candidates to take an examination? It would even be take-home -- here is a simple problem, how would you code it?

    I know a lot of people hate job interview exams, but those are perfectly legal, ethical, reasonable assessments of fitness for a job. But asking to see already-written code is just asking for trouble -- how do you know they even wrote it?

This file will self-destruct in five minutes.

Working...