What makes a good software engineer?
Venue: Proceedings of the conference on Tri-Ada '89: Ada technology in context: application, development, and deployment (1989)

Since the term &ldquo;software engineering&rdquo; was coined some 20+ years ago, [4] a number of definitions for both the practice and the practitioner, a &ldquo;software engineer,&rdquo; have been proposed. The definition from a recent report on undergraduate software engineering curricula [3] states: Software engineering entails the understanding and application of engineering principles, design skills, good management practice, computer science and mathematical formalism. &hellip; The Software Engineer must be able to estimate the cost and duration of the software development process, and to determine correctness and reliability and express them with a degree of precision meaningful to other engineers and informed clients. &hellip; In recent years, several advanced degree programs in &ldquo;software engineering&rdquo; have been instituted in the US and abroad. One example of this can be found at the SEI itself. Two of the goals of the SEI Education Program are to: (1) develop software engineering curriculum modules that identify, organize, and document the body of knowledge that could be taught in software engineering degree programs, and (2) design, develop, support, and maintain model curricula for undergraduate and graduate software engineering programs. The question remains, however, how much of this can be taught in a classroom setting or even in a design lab, and how much must be learned on the job or via some sort of apprentice program? What does Ada have to do with software engineering ? Can Ada exist without it? Can software engineering be done without Ada? There are those who believe the term &ldquo;software engineering&rdquo; is just plain wrong: [1] &hellip; I deeply resent the misuse of the word &ldquo;engineering&rdquo; in the compound term &ldquo;software engineering.&rdquo; Such misuse constitutes, in my opinion, a cheap, deceptive attempt to take advantage of the professional reputation and image developed by real engineers over a century or so &hellip; it constitutes theft of professional reputation. In 1986, I coordinated a similar panel for the ACM Computer Science Conference (CSC) [2]. The introduction from that session still holds true for this one, and is paraphrased and tuned below: Most universities prepare students for continued growth and development during a lifetime of employment, whether in an industrial or government setting. Since traditionally, such an education has implied better job opportunities, the university student believes that by studying computer science and/or software engineering, she2 will be assured of a good job at a reasonable salary performing interesting and challenging tasks. On the other hand, some universities prepare students for graduate education and research, placing a heavy emphasis on theory. From this perspective, the university student believes that upon completion of a computer science or software engineering degree, she will be able to choose where to pursue her research, at the university, industry, or government site of her choosing. Three years have passed; and I have found other group of articulate people to join us and present new and exciting viewpoints on the topic of software engineering, university education, and, of course Ada. Richard Fairley, who participated in that CSC panel, continues to represent the academic point of view; Marcia Finfer represents the industrial point of view; Garth Glynn also provides the industrial point of view with the interesting addition of evaluating graduate-level software engineering degree curricula; David Markus brings the perspective of the human resource issues; Lyn Plinta provides the view of the recent graduate dealing with veterans of the hacking era; and David Umphress represents the DoD interests. These panelists, bringing together a wealth of experience as educators, practitioners, and policy makers, provide insights from both the demand-side of software engineering and the supply-side, as they take a multi-faceted, multi-national look at industrial, academic, and government expectations of software engineering as it is taught and practiced today.