Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   General Forum (http://www.chiefdelphi.com/forums/forumdisplay.php?f=16)
-   -   Ethics 101: To re-use or not to re-use? (http://www.chiefdelphi.com/forums/showthread.php?t=50240)

chris31 04-12-2006 21:07

Re: Ethics 101: To re-use or not to re-use?
 
Well think of it this way. No code is ever finished. Atleast it isnt in my mind. Every peice of code could use a new feature, tweak, or performance boost. All you need to do is modify the code and it no longer breaks the rule. Your doing yourself a favor by having better code due to this rule.

Dan Zollman 04-12-2006 21:10

Re: Ethics 101: To re-use or not to re-use?
 
Quote:

Originally Posted by ewankoff
The re-implementing of the code forces students to figure out how to make that specific code work with this years robot.

I am not a programmer and I am not responding directly to the rule itself. I want to suggest a different way to think about this, but I hope I'm not off the mark with this opinion.

Some, if not all, teams document their code development like any other engineering project, including everything from the problem statement to reasons for choosing certain solutions to a description of the final product. If you're documenting a program, you would explain why each detail of the code was written the way it was, and why it solves the problems of this year's game and this year's robot. You haven't done a good job with your documentation if you say, "This code has worked before..." or "This code worked on last year's robot/another robot...so we decided to use that code for this year's robot."

Even if you would use your code from a previous year, or if you would use someone else's code, it is much better--and common practice--to explain the details of that code, show why each one is appropriate for your needs and goals, and show why you chose this code instead of writing your own. (Also acknowledge it when your code isn't original, even if you think that would affect a score.)

Would anyone have any objections to copied and pasted code if the team members can thoroughly explain why the code has been written in the way that's right for this year's robot?

Steve W 04-12-2006 21:12

Re: Ethics 101: To re-use or not to re-use?
 
I am convinced that rewriting software is now bad and copy and paste is good (tongue in cheek). Now the fact that I am a builder I can use the same reasoning for using a new drive base that our students have spent all summer and fall fixing and building. Why should we have to rebuild an already good working unit? I would even say that because the students built it that it has more validity than coping someone else's software.

seanwitte 04-12-2006 22:14

Re: Ethics 101: To re-use or not to re-use?
 
Quote:

Originally Posted by Steve W
I am convinced that rewriting software is now bad and copy and paste is good (tongue in cheek). Now the fact that I am a builder I can use the same reasoning for using a new drive base that our students have spent all summer and fall fixing and building. Why should we have to rebuild an already good working unit? I would even say that because the students built it that it has more validity than coping someone else's software.

That's not a valid analogy. The rule states that you can not reuse existing hardware or software, but you can reuse the design. This is a flawed system because the manufacturing costs of the two artifacts are different. Once you design a part, the cost to manufacture it, both in time and money, is roughly the same from that point forward. You may be able to make it a slightly faster or slightly cheaper, but the up-front investment has already been made. Writing software from scratch is completely different. No matter how good your design or algorithm is, reproducing a complex piece of code does not scale the way a mechanical component does.

[EDIT]
I want to clarify my position. I think this is a bad rule and it does not serve the program. However, it is a rule, and cannot be ignored. When you choose to participate in ANY activity you agree to follow the rules, whether you like them or not. This is especially important when the rules are not enforceable.
[/EDIT]

aaeamdar 04-12-2006 22:23

Re: Ethics 101: To re-use or not to re-use?
 
Quote:

Originally Posted by KarenH
Read all of my post. It's the ATTITUDE that leads to anarchy. When people make their own choices between what is an "inconvenience" and what they "shouldn't break," they place themselves above the law. They decide which laws they will follow.

Karen, your later reference to speeding brings up an interesting comparison. Let's say that Don the driver is driving along on the highway. The posted speed limit is 60 mph, but the average speed of the cars on the highway seems to be about 70 mph, with several drivers going as fast as 80 mph. Is it better for Don to "go with the flow" and move along at 70 mph, or is it better for him to go 55-60 mph as the speed limit states?

The answer is that Don is a safer driver at 70 mph (even if this is faster than the speed he would like to go) than he is at 60 mph. Anyone with driving experience knows that a driver going along at a significantly slower pace can cause problems for him/herself and also other drivers.

We make judgements about rules all the time, and we choose to follow them or not based on those judgements. In this case, if a FIRST rules official were to come on this thread and say that simply re-typing (in other words typing while looking at the original code) is the way to follow this rule, I would have absolutely no bad feelings about ignoring such a busywork rule. Please tell me how this would lead to anarchy.

Quote:

Originally Posted by Steve W
I am convinced that rewriting software is now bad and copy and paste is good (tongue in cheek). Now the fact that I am a builder I can use the same reasoning for using a new drive base that our students have spent all summer and fall fixing and building.

Steve, you should re-read Dave Flowerday's postings. I think they shed some light on why these comparisons work. I'll admit that since the beginning of the discussion, I've felt that they aren't as valid as many people seem to think, but I never put words to it. Dave has made a much more persuasive case for it than I could have.

Paul

Steve W 04-12-2006 22:26

Re: Ethics 101: To re-use or not to re-use?
 
Quote:

Originally Posted by seanwitte
Writing software from scratch is completely different. No matter how good your design or algorithm is, reproducing a complex piece of code does not scale the way a mechanical component does.

I agree that writing from scratch is different but that is not what has been said I don't believe. People are saying that they think it a waste of time to re-type which is legal so why not just cut and paste? I believe that it just that people don't want to do what is in the rules because in is an inconvenience. I too would like to make my job easier by reusing parts from last years robot. After all they would have to be modified to fit on the new robot and adjusted for the new game. Why do we want to rebuild an already good unit?

Bharat Nain 04-12-2006 22:57

Re: Ethics 101: To re-use or not to re-use?
 
Where does this put Kevin Watson's software? What about other white papers and code provided by other programmers? Does this mean you should look into Mr. Watson's softwares and grab the logic and re write your own version from scratch?

Dave Flowerday 05-12-2006 06:32

Re: Ethics 101: To re-use or not to re-use?
 
Quote:

Originally Posted by aaeamdar
Steve, you should re-read Dave Flowerday's postings....

Just so we're clear, while I have stated strong opinions about this rule, I do not feel that you can simply ignore a rule if you don't like it, as it appears you are suggesting. The rules are what they are and we have to follow them, but it doesn't mean we have to like them and it doesn't mean we can't critique them and discuss them in an effort to improve the situation.

To be blunt, I want to make it clear that my opinion on this rule does not translate into support for your argument.
Quote:

I would have absolutely no bad feelings about ignoring such a busywork rule.
I think you will find that this attitude will not serve you well in life. It's OK to question rules, but you should work within the bounds of the system to change them, rather than flagrantly disregarding them simply because you don't like them. Questioning authority in certain circumstances can be a good thing, when it is done in a civil manner using proper channels. What you seem to be advocating here however is simply ignoring authority. Trust me, when you get a little older you will find that this doesn't work well. Try something like that at an engineering job and you very likely could get fired, or get someone hurt (ignoring safety standards, for example), or cost someone a lot of money (by getting sued, etc.). Definitely not something to aspire to.

Alan Anderson 05-12-2006 07:36

Re: Ethics 101: To re-use or not to re-use?
 
Quote:

Originally Posted by Bharat Nain
Where does this put Kevin Watson's software?

I think it makes sense to treat it as components included in the Kit of Parts.

Venkatesh 05-12-2006 08:15

Re: Ethics 101: To re-use or not to re-use?
 
There is a neat question that has been raised in this thread - whether software is a concrete "thing" or an abstract "idea".

Consider for a second a description, written in some (human) language, that thoroughly specifies the software of a FIRST robot. All inputs, all outputs, are accounted for. Would reusing this whole between years run afoul of the rule?

I think that this software description mentioned above is a design document, very analogous to a blueprint or a CAD drawing. Assuming that it is practical to fully reuse the design document above, I think that the rules allow it to be used, in undistilled-to-C form.

But do the rules require the entire thing to be distilled to C every year completely fresh or do they allow reuse of old elements? If the C code serves to express an idea from design, then I believe that it is a design document and can be reused, copy-and-paste. If the code itself is a tool or part, then it cannot.

A few years ago, there was an interesting court case in New York; I forgot the name, but in it a professor from CMU makes a very conclusive case that software foremost expresses ideas. Let me try to capture the spirit of his ideas here: If an abstract mathematical description of a system can be an idea, a direct translation of that description into another idea-description/algorithm-description language is still an idea. What I think that this means for us is that teams can reuse elements of prior code, copy-pasted. Elements would mean modules, functional units, whole state machines, etc. But teams would not be able to reuse the parts of the code that came about through the process of converting the description into code - parts that account for how the robot is wired up, specific gain values on sensors, which motor is where, a driver's preferences, etc.

On a more practical note, completely copying prior code, without understanding or modification, would be very difficult because of how much the competition and KoP changes every year - the default code itself has changed so much between the years, even since 2004. I think that the natural changes in the competition itself properly force changes that make running afoul of this rule difficult.

Daniel_LaFleur 05-12-2006 09:42

Re: Ethics 101: To re-use or not to re-use?
 
As a mentor, I am here to teach these students far more than just robotics. I am here to teach about life.

As such, how can I teach them that it is OK to break a rule just because it is inconvienient, and unenforceable. To do so would be teaching them the wrong things.


This question is not about writing code. It's about teaching morals, eithics, and gracious professionalism.

Can people reuse code? YES. Will they get caught? Probably not. If we show them that breaking the rules (and reusing code) is OK, what have they learned? That society does not expect them to follow the rules, and when inconvienient it's OK to break them.

Is this what we really want to teach them?

And where does that put those teams that play fair?

And once we head down that slippery slope, where do we stop?

ntroup 05-12-2006 09:59

Re: Ethics 101: To re-use or not to re-use?
 
I think a lot of this discussion comes down to what the rule actually says. I see a lot of people saying 'I think'/'I infer'/'I believe' regarding this rule, but no one has said 'I know' what the rule exactly means.

What is FIRST's intent when they say "software algorithms and designs may be reused." Does that mean the high level design, or the actual functional implementation. The rule does not exactly say, and it is left to the readers' interpretation.

I would have to believe that most people (and I hope that this is true) are trying to follow the rules, but to their own interpretation of them. In most cases, this would seem like 'bending the rules' to make them more favorable for you. However, in this case, with the software side of FIRST becoming so big, yet still so new, I believe(*) that the rules don't quite state what is/isn't allowed exactly to the level that all will understand. (* Again, my own interpretation)

Each person obviously has their own thoughts on this issue, but those thoughts aren't necessarily FIRST's. I think the appropriate thing to do is to ask FIRST directly, when the rules for 2007 come out, and see how they address this exact issue.

After doing a quick scan of 2006's Q&A system, I did not see anyone post a question regarding this. But, there are a lot of questions regarding Software and how it fits into the rulebooks (i.e. FixIt windows, shipping, practice bots, etc). This shows that there is a large misunderstanding of how we are to deal with this, since it is different than a hardware component.

So, in order to prevent any larger argument, I think we need to agree to disagree until we can get a decisive answer from the powers that be.

-Nate

MikeDubreuil 05-12-2006 10:54

Re: Ethics 101: To re-use or not to re-use?
 
Quote:

Originally Posted by Bharat Nain
Where does this put Kevin Watson's software? What about other white papers and code provided by other programmers? Does this mean you should look into Mr. Watson's softwares and grab the logic and re write your own version from scratch?

Since we can't establish the spirit of the rule we have to go by the letter of the rule. "Unaltered software modules developed during prior competitions may not be directly re-used." Since only Kevin Watson developed the code he can not use the code but every other team can. Hmm... that doesn't make sense does it? BAD RULE.

EDIT: You could also argue that you developed the software during the offseason some people would not consider that time to be "during prior competitions." You could even argue that "during prior competions" only includes events such as regionals and nationals (build season would be excluded from the rule.)

MikeDubreuil 05-12-2006 11:57

Re: Ethics 101: To re-use or not to re-use?
 
This thread discusses the rule when the rule first was introduced. It appears that no one understood the rule at the time. The thread eventually died without resolution. A search of the FIRST forum turned up nothing; indicating no one ever asked FIRST to clarify <R71>.

Bharat Nain 05-12-2006 14:48

Re: Ethics 101: To re-use or not to re-use?
 
Quote:

Originally Posted by MikeDubreuil
This thread discusses the rule when the rule first was introduced. It appears that no one understood the rule at the time. The thread eventually died without resolution. A search of the FIRST forum turned up nothing; indicating no one ever asked FIRST to clarify <R71>.

I am pretty sure the GDC is reading this thread and scratching their heads and probably re-writing the rule with more thought. Happens every year.


All times are GMT -5. The time now is 13:49.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi