Xref: utzoo comp.software-eng:4172 misc.jobs.misc:8379 Path: utzoo!attcan!uunet!wuarchive!psuvax1!rutgers!sun-barr!newstop!sun!amdahl!JUTS!kpc00 From: kpc00@JUTS.ccc.amdahl.com (kpc) Newsgroups: comp.software-eng,misc.jobs.misc Subject: some advice to a software engineer Message-ID: Date: 14 Sep 90 11:23:37 GMT Sender: kpc00@ccc.amdahl.com Distribution: comp Organization: my-organization Lines: 54 What do you think of this as advice to a software ungulate, or to a software engineer? ========== Engineering is a creative act. By that I mean that you have the power to determine the quality of the products that you design. You also have the power to decide what should be designed and what should not be designed. Both are creative undertakings, each in its way. To be an engineer is not to abandon the attributes that distinguish humans from the machines that humans use. To grind out code for the purpose of saying "it is done" is to be a pulp novelist. It is to be an architect of the "functional" buildings that ultimately subvert even their ostensible functions. For every line of code that you write, if you cannot be proud of it, then you are cheapened; if you can be proud of it, then you are elevated. Do not be led to forget this, and do not let management tell you what to be proud of. Expect to maintain pride in what you do and satisfy management's needs at the same time. If you cannot do this, then it is management who has imposed the wrong position on you, for the engineer with unrealistically high standards is mythical. If you discover that engineering is not yours to do, find another field. And when you become a manager, do not let expedience cause you to destroy those qualities that make your best engineers valuable to you and good at what they do. If your wish is to hire a machine, purchase one, or build one instead. When you have the fortune to hire an engineer who is a human being, let him remain a human being. As an engineer, you are a practitioner; to non-technologists, you also represent technology. In these roles, strive to automate those things that should be automated. Strive earnestly to prevent from being automated those things that should not be automated. For every program that you write, consider its efficiency and its usefulness. Consider its safety, its impact on privacy, and its effect on the environment. Consider its beauty and its technical merit. Consider these things and more. Programs, like literature and like architecture, last well beyond their instantiations. In different ways and to different degrees they remain forever as instances of your creativity, of your priorities, and of your decisions. -- If you do not receive a reply from me, please resend your mail; occasionally this site's mail gets delayed. Neither representing any company nor, necessarily, myself.