Computer Wisdom
This was recently forwarded to me from a friend at Intel.
It is the comments of a programmer who was departing for a 12 month
leave-of-absense (the identity of the program was lost, perhaps
intentionally, after several forwardings of the message).
I think it sums up many common problems among computer professionals,
or wannabes.
... Things haven't quite happened the way I was
expecting, but I have been learning many valuable things along the
way. Here are a few of them:
-
Never be afraid to ask for help.
-
Solve problems rather than assign blame.
-
Foster an environment in which asking questions or admitting
ignorance isn't viewed as a personal weakness.
-
Eschew the macho super-hacker role model. The image of the ideal
programmer as someone that when presented with a problem can take
it away, not ask any questions, nor for any help, and can then
come back two days later with a perfect solution is very harmful.
-
Be your own duck. Think for yourself. Have no respect for the
received wisdom. Don't be afraid to speak out.
-
Avoid regular meetings. They are a waste of time.
-
Use email.
-
Answer email promptly. If you don't have time to answer email,
don't read it.
-
Secrecy is bad. Tell people what you are doing and why you are
doing it or don't do it at all.
-
Ignore organizational hierarchies and structures. They change
frequently, and have nothing to do with people's skills,
interests, or abilities.
-
Don't assume someone in charge knows what is best.
-
Avoid bureaucracy. It is easier to step around a bureaucracy, or
work on something else than to waste time dealing with it.
-
Anarchy is more efficient than bureaucracy. Bureaucracy doesn't
scale well, anarchy does.
-
Large organizations develop complex systems.
-
Building software is hard.
-
System administration is hard.
-
Shared memory is hard. So hard it is probably a bad idea.
-
Focus on solving problems not technologies. What good is a
microkernel or object oriented if it doesn't solve a problems?
-
Never underestimate the power of simplicity or the cost of
complexity.
-
Collect and share information people might find useful.
-
Put people in contact with people.
-
Thank people that do good things.
-
Work together to develop excellent software.
-
Have fun!
trent...