Re: Re: Initiative or otherwise?
by cjf (Parson) on Jul 08, 2002 at 01:13 UTC
|
Assuming Programmer A and Programmer B are equally skilled to begin with, the situation following the project would be as follows:
- Programmer A would have improved his programming skills more than Programmer B.
- Programmer A would know his resulting code better than Programmer B would know his.
- Programmer A's employer wouldn't have to worry about licensing issues.
The argument in favor of Programmer B is based on the myth that existing code is somehow superior to your own. This is a very dangerous assumption, look no further than MSA for examples.
| [reply] [Watch: Dir/Any] |
|
Your arguement ignores the power of open source software. Yes, it is true that Person A has built code that he understands better than the code that person B has modified, but that is only true for the person who has authored the code, not for anyone looking at or using it in the future.
By reusing/improving upon something that already exists, Person B has a code base tested by users from around the world. By contributing back to the code base he insures that his code changes will get also get that testing. Since his code ties into the open source commons, his company can now leverage the communities knowledge base and as the codes tree matures, gives them access to free upgrades in the future.
If a programmer brought to me a library that duplicated something that I knew already existed in open source, I would ask him why I am paying him to reinvent the wheel. Such an activity may be interesting for the programmer, but it is pure folly from a business perspective.
Yes, it is true that there are times when the solutions available are weak and a good programmer can do it better, but such times are rare, and need to be carefully considered before the path is embarked upon. A solution to things already considered is a fragile flower with little chance of survival even when built by the best of programmers.
We all stand on the shoulder's of giants. What better than to help everyone get a little higher?
()-()
\"/
`
| [reply] [Watch: Dir/Any] |
|
Person B has a code base tested by users from around the world
How do you know this? How do you know you're not the first person to ever run it? How do you know the author hasn't completely ignored all patches sent his way? Just because the code exists doesn't mean it has been thoroughly tested.
By contributing back to the code base he insures that his code changes will get also get that testing.
What if management won't let him release the source? What if the project is not open source?
Such an activity may be interesting for the programmer, but it is pure folly from a business perspective.
Is allowing your employees to spend time improving their skills "pure folly?" I think not.
When using existing code you have to take into account licensing, quality, and maintenance considerations. Same as if you wrote the code yourself. The same rules apply. Blindly trusting a piece of software because the source is available is very dangerous.
| [reply] [Watch: Dir/Any] |
|
|
"The argument in favor of Programmer B is based on the
myth that existing code is somehow superior to your
own..."
Well, i don't necessarily disagree with that, but ..
"The program is required for a demo Tuesday."
So sure, A will have improved some kind of skill - but
there is an equal chance that that
that skill will be
thrown away with the demo. Besides, how can one say that B
doesn't already have that skill and realizes that her/his
time would be better spent with the family?
Say that the program is not for a demo - well, any serious
application is going to need more than a weekend to just
hack together. Shops that don't realize this are doomed
to spend endless hours debugging and recoding mistakes
that could have been avoided by proper research and
design - proper skills that i'll bet that B is familiar
with. ;)
But, we have digressed away from the original question,
which was basically what is the difference between cheating
in school and using existing code on the job. I'd tell you
my opinion on this, but i would just be repeating what
MeowChow has already excellently said.
Update re: reply:
I only said that because i speak
from experience. I have written demo's that were never
used and i have not completely forgotten any learned skills - but i
didn't waste my time by re-inventing wheels that would end
up in /dev/null either. ;) (that that that ... gotta work
on my grammar). Oh, and give yourself a year - you will
forget more than you credit yourself for remembering. I know i sure ... what's that word?
jeffa
"I drank what?"
--Socrates
| [reply] [Watch: Dir/Any] |
|
| [reply] [Watch: Dir/Any] |
|
| [reply] [Watch: Dir/Any] |
|
As far as your first point, maybe. Some tasks are just linear. Many jobs I've done are equivalent to manual labor. Doing more or less the same thing over and over. These types of jobs don't expand your horizons much. As far as licensing issues, unless the results are going to be available to the public in some form, I suspect most people don't even read the license.
That being said, I'm more or less a Type A.
-Lee
"To be civilized is to deny one's nature."
| [reply] [Watch: Dir/Any] |
Re^2: Initiative or otherwise?
by Aristotle (Chancellor) on Jul 08, 2002 at 02:00 UTC
|
I don't know about the saved time part. He saved time for himself, sure. How did it make any difference on the end result? Both were done around the same time.
Like cjf++ I also don't buy the notion that existing code is necessarily better than your own. Safe for CPAN, I have come to assume any Perl source on offer for download is likely to be awful, and so far practice has shown me only few exceptions to this rule.
Makeshifts last the longest.
| [reply] [Watch: Dir/Any] |
|
The notion of time saved stems from the scenario of the original post. If the situation had begun at the beginning of the week, that would be time spent solving other issues important to the business. Any company that spends it's time solving things already solved will have a short lifespan.
()-()
\"/
`
| [reply] [Watch: Dir/Any] |