Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Signing your work? When do you and when dont you?

by demerphq (Chancellor)
on Mar 07, 2004 at 12:35 UTC ( [id://334596]=perlmeditation: print w/replies, xml ) Need Help??

I imagine that there are a lot of opinions on the subject of accredation of development efforts. Now I dont mean in the legalistic sense but in the informal sense of within a development effort, open source or not. When do you put your name on stuff? If you patch a module do you add your name to the patch? When you rewrite the code of an earlier author, do you give them credit for the original work? If its a total rewrite do you mention the original still? Under what circumstances is it ok to remove accredation? Are these rules different depending on where you are working?

This subject originally arose because I was working on a pmdev patch that involved some cleanup, and was chattering with theorbtwo and observed that I had noticed the node I was patching had been signed, and that I had not removed the signature because I felt that would have been wrong, but that at the same time I would not be signing the patch as I didnt felt my changes deserved it. However this had made me think about the subject in whole, as I have signed at least one contribution (a new code node) that I had made.

Im curious how people out there see things like this? I remember one of my colleagues used to become very upset because his signature was removed from a bunch of code by a colleague during a code cleanup and refactoring, so I know the subject can draw stong feelings. Artists and authors have always claimed the right to sign their work, my feelings generally say this is true for programmers as well. Do you agree?


---
demerphq

    First they ignore you, then they laugh at you, then they fight you, then you win.
    -- Gandhi


Replies are listed 'Best First'.
Re: Signing your work? When do you and when dont you?
by Juerd (Abbot) on Mar 07, 2004 at 13:00 UTC

    When do you put your name on stuff?

    When all of these apply

    • I wrote it
    • I'm proud of what I wrote or want people to know how to contact me
    • It is more than a few lines
    • The code is of significant value to the project

    If you patch a module do you add your name to the patch?

    No, never. I think the module maintainer should give the patcher credit, but if and where they do so is up to them. Unless I am going to maintain the patched code myself (or want to be available to answer questions about it if it is complex), I think no author should be named in code.

    Sometimes there's an AUTHORS file, an ACKNOWLEDGEMENTS heading in the POD, a nice line in the Changes file or nothing at all. I dislike when the maintainer doesn't credit me for my work, but it is not up to me to decide.

    When you rewrite the code of an earlier author, do you give them credit for the original work?

    Yes.

    If its a total rewrite do you mention the original still?

    Only if it still does the same thing. For example, a skinny (protocol used by older Cisco IP phones) proxy based on an existing port forwarding script would mention the original author somewhere. But not if it was rewriten totally, because a skinny proxy doesn't just forward ports.

    Now if the original was a skinny proxy too, even after a total rewrite I would feel that the original author should be given credit.

    still? Under what circumstances is it ok to remove accredation?

    When it is in the wrong place or otherwise disturbing. Or: always, if it is your project. It is of course always a good idea to tell people what you're doing and explain why.

    Are these rules different depending on where you are working?

    Yes. I never put my name on changes when they were contributed by a versioning system. People can check the logs if they want to know who to contact for asking questions about it.

    Juerd # { site => 'juerd.nl', plp_site => 'plp.juerd.nl', do_not_use => 'spamtrap' }

Re: Signing your work? When do you and when dont you?
by fokat (Deacon) on Mar 07, 2004 at 15:25 UTC

    You're only citing "pride and honor" reasons for signing your code (contributions). I think there is a family of reasons not being considered: Change control. From this perspective, every modification to the source code should have an attributable source, which looks a lot like a signature.

    Personally, I feel every snippet of code contributed must have a known author (and therefore, credit).

    Best regards

    -lem, but some call me fokat

      I feel every snippet of code contributed must have a known author

      I couldn't agree more, although I would hope that most people in larger projects (where such questions often come up) are using a versioning system to track the individual changes. ;)

      --
      Allolex

Re: Signing your work? When do you and when dont you?
by Elgon (Curate) on Mar 07, 2004 at 14:28 UTC

    IMHO, you should always sign your work, just as you should always give credit to others' work which you have used or which has inspired you. These two principles pretty much rule out accusations of plagiarism and ensure that the source of a piece of code can always be traced.

    Elgon

    "Stercus! Dixit Pooh. Eeyore, missilis lux navigii heffalumporum iaculas. Piglet, mecum ad cellae migratae secundae concurras."

Re: Signing your work? When do you and when dont you?
by blue_cowdawg (Monsignor) on Mar 07, 2004 at 20:34 UTC

        When do you put your name on stuff?

    When do I put my name on stuff? There are two times that I do that: when I want to take credit for what I've done and when I may have to take the blame. The funny part of that statement in my opinion is the fact that sometimes (often times) they are one and the same.

    Taking Credit

    I wrote it, said it, and/or did it. Therefore I'm going to take credit for it. I may not even own it when I'm done but I'd sure like someone to know that I accomplished this. This I believe is true of any craftsman regardless if it is the author of a piece of code written for hire or a painter who does an oil painting to be hung in a gallery, we all have a pride of ownership for our work. So we sign our work.

    Taking the blame

    There is a duality IMHO to taking credit for things. It in my mind implies a responsibility as well. Not only a responsibility but there is in my mind an implicit responsibility in being a craftsman doing some sort of work. If I write a piece of code for instance and someone comes along 5, 10 or (and I've actually experienced this) 15 years later and someone else has to maintain or port the code it would be nice for that hapless soul to be able to reach out and contact the author for help.

    Even works that I've done for hire and "thrown over the fence" at my client after they've paid the bill I feel an ownership of. On the plus side it is possible that by putting my name on it in the comments it may generate repeat business. That's $$ in my pocket.

    The other aspect of taking responsibility kicks in when I have taken some else's code and "fixed" it. If the person who wrote the code happens to figure out that I changed their code 1) it would be nice if I dropped them an email telling them I did and 2) there were comments in the code with my name attached saying what I changed and why.

    Closing thoughts

    I guess the common thread here in my post can be summed up in one of two (or both) words: "ownership" and "responsibility". Ownership from the perspective of taking ownership for ones actions and responsibilty for them. What a novel concept in this day and age when the US legal system tells people every day that they don't have to be responsible for their actions if they can pin it on someone else.

    So endeth the sermon.


    Peter L. Berghold -- Unix Professional
    Peter at Berghold dot Net
       Dog trainer, dog agility exhibitor, brewer of fine Belgian style ales. Happiness is a warm, tired, contented dog curled up at your side and a good Belgian ale in your chalice.
Re: Signing your work? When do you and when dont you?
by dextius (Monk) on Mar 08, 2004 at 19:28 UTC
    I think it comes down to a level of responsibility, and trying to get past the egotistical angle that is easy to mistake. In my little world, we're pretty segregated in our sections of the code base. More than anything, when something goes wrong, I want to be held accountable if it's my "fault". Likewise, when something works well, I don't mind receiving a little praise..

    If I am modifying existing code, for the love of bob comment vigorously, even if you don't sign your name to every line you modify, explain what the new code is doing.. Well documented code is a good thing!

    cheers!

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlmeditation [id://334596]
Approved by gmax
Front-paged by rob_au
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others examining the Monastery: (5)
As of 2024-04-23 21:27 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found