![]() |
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.
|
Re: Ethics 101: To re-use or not to re-use?
Quote:
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? |
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.
|
Re: Ethics 101: To re-use or not to re-use?
Quote:
[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] |
Re: Ethics 101: To re-use or not to re-use?
Quote:
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:
Paul |
Re: Ethics 101: To re-use or not to re-use?
Quote:
|
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?
|
Re: Ethics 101: To re-use or not to re-use?
Quote:
To be blunt, I want to make it clear that my opinion on this rule does not translate into support for your argument. Quote:
|
Re: Ethics 101: To re-use or not to re-use?
Quote:
|
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. |
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? |
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 |
Re: Ethics 101: To re-use or not to re-use?
Quote:
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.) |
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>.
|
Re: Ethics 101: To re-use or not to re-use?
Quote:
|
| 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