Hippocrates, one of the founding fathers of modern medicine, realized that those who trained to become physicians were not only able to use their skills for good and for progress, but also might be inclined to misuse all they had learned. To protect against such abuses, new grads back in the 4th century B.C. were made to swear they would only use medicine in the best interests of their patients by taking the eponymously named "Hippocratic Oath."
I think that it's about time we had a similar oath for all those who enter into the venerable profession of software engineering. As generations of future geeks walk down to collect their degrees wearing ill-fitting rented robes before proud parents and nervous colleagues, they should clutch a copy of Design Patterns in one hand, raise the other, and chant: Before all gathered here, I FinnBarMcFooBar swear and promise:
To avoid violating the morals of my community, by which I shall not enter into ridiculous arguments about whether a square is a simplified polygon or specialized triangle, and I shall never look forward to meetings where nothing is produced except whiteboard output and a roomful of carbon dioxide. I swear that my desire to enter the computing profession is not to become an architect and, should I realize that I am not as smart as I thought I was and am unable keep up with fellow programmers in the real world, I shall not be bitter about this and become an architect just so I can make their lives miserable with stupid over-simplifications and banal proclamations about things I don't understand.
To not write code on the user interface thread that has any possibility of taking more than a second. To do so would mean that my applications freeze up on my users so when they grab the title bar and move it around, it leaves a trail of cheese squares on the screen, giving them no choice but to nix my programs from the task bar and leave stuff in an unpredictable state. This I do promise to honor and obey.
To remember that a progress bar is designed to show the percentage completion of a long-running background task. When it is halfway filled, the task is half complete, and when it gets to the end, the task is finished. I shall not write a progress bar that doesn't at least attempt to move in a proportional fashion to elapsed time and time to completion, and I shall never, ever, make my user sit through a progress bar that, when it finishes and they think I'm done, starts all -over again. Verily and verily as such, I declare that install programs have no let out clause here.
Never to do deliberate harm to anyone for someone else's interest. This means remembering that e-mail is one of many media by which communication can occur and that whenever possible I shall not only try to talk to people but to spend as much time as possible listening to them. I shall never send snotty e-mails to colleagues to try to make me look great, to make them look worthless, or to do both by puffing up my own image by being a cad to fellow programmers. Likewise I will never be a pompous git in meetings just so I can try to make others look stupid and myself great.
To keep the good of the user as the highest priority of all I do. There may be other conflicts such as marketing weenies who have just read the latest FooBarnet report and insist I start using yoo-mel 7.5, or architects who have read the same report, but because they don't understand it are e-mailing me from the annual "Yogurt World" conference with urgent updates to the company strategy. I am the person who builds the code that the user gets, and I serve them and not other false deities who are trying to bluff their way to nirvana on the back of any success the product might achieve.
To recognize that I have no experience in the real world and, as I grow from grad to geek to giant, I will always humble myself and be prepared to learn and adapt so that I never violate any of the aforementioned oaths.