Software engineer
![]() | It has been suggested that this article be merged into Software engineering. (Discuss) Proposed since July 2021. |
![]() Margaret Hamilton (shown in 1989), a leader on Apollo moon landing software, entrepreneur, and one of the people credited with coining the term "software engineer" | |
Occupation | |
---|---|
Occupation type | Profession |
Activity sectors | Information technology, Software industry |
Description | |
Competencies | Requirements analysis, specification development, algorithm design, software quality assurance, documentation tasks. |
Education required | Varies from bachelor's degree to advanced degree in software engineering or related field |
A software engineer is a person who applies the principles of software engineering to the design, develop, maintain, test, and evaluate computer software. The term programmer is sometimes used as a synonym, but may also lack connotations of engineering education or skills.
Education
![]() | The examples and perspective in this article may not represent a worldwide view of the subject. (November 2010) |
Half of all practitioners today have degrees in computer science, information systems, or information technology.[citation needed] A small, but growing, number of practitioners have software engineering degrees. In 1987, the Department of Computing at Imperial College London introduced the first three-year software engineering Bachelor's degree in the UK and the world; in the following year, the University of Sheffield established a similar program.[1] In 1996, the Rochester Institute of Technology established the first software engineering bachelor's degree program in the United States, however, it did not obtain ABET accreditation until 2003, the same time as Rice University, Clarkson University, Milwaukee School of Engineering and Mississippi State University obtained theirs.[2] In 1997, PSG College of Technology in Coimbatore, India was the first to start a five-year integrated Master of Science degree in Software Engineering.[citation needed]
Since then, software engineering undergraduate degrees have been established at many universities. A standard international curriculum for undergraduate software engineering degrees, SE2004, was defined by a steering committee between 2001 and 2004 with funding from the Association for Computing Machinery and the IEEE Computer Society. As of 2004[update], in the U.S., about 50 universities offer software engineering degrees, which teach both computer science and engineering principles and practices. The first software engineering Master's degree was established at Seattle University in 1979. Since then graduate software engineering degrees have been made available from many more universities. Likewise in Canada, the Canadian Engineering Accreditation Board (CEAB) of the Canadian Council of Professional Engineers has recognized several software engineering programs.
In 1998, the US Naval Postgraduate School (NPS) established the first doctorate program in Software Engineering in the world.[citation needed] Additionally, many online advanced degrees in Software Engineering have appeared such as the Master of Science in Software Engineering (MSE) degree offered through the Computer Science and Engineering Department at California State University, Fullerton. Steve McConnell opines that because most universities teach computer science rather than software engineering, there is a shortage of true software engineers.[3] ETS (École de technologie supérieure) University and UQAM (Université du Québec à Montréal) were mandated by IEEE to develop the Software Engineering Body of Knowledge (SWEBOK), which has become an ISO standard describing the body of knowledge covered by a software engineer.[4]
Other degrees
In business, some software engineering practitioners have CS or Software Engineering degrees. In embedded systems, some have electrical engineering, electronics engineering, computer science with emphasis in "embedded systems" or computer engineering degrees, because embedded software often requires a detailed understanding of hardware. In medical software, practitioners may have medical informatics, general medical, or biology degrees.[citation needed]
Some practitioners have mathematics, science, engineering, or technology (STEM) degrees. Some have philosophy (logic in particular) or other non-technical degrees.[citation needed] For instance, Barry Boehm earned degrees in mathematics. And, others have no degrees.[citation needed]
Profession
Employment
Most software engineers work as employees or contractors. Software engineers work with businesses, government agencies (civilian or military), and non-profit organizations. Some software engineers work on their own as consulting software engineers. Some organizations have specialists to perform all of the tasks in the software development process. Other organizations separate software engineers based on specific software-engineering tasks. These companies sometimes hire interns (possibly university or college students) over a short time. In large projects, software engineers are distinguished from people who specialize in only one role because they take part in the design as well as the programming of the project. In small projects, software engineers will usually fill several or all roles at the same time. Specializations include:
- in industry (analysts, architects, developers, testers, technical support, managers)
- in academia (educators, researchers)
Impact of globalization
Most students in the developed world have avoided degrees related to software engineering because of the fear of offshore outsourcing (importing software products or services from other countries) and of being displaced by foreign visa workers.[5] Although government statistics do not currently show a threat to software engineering itself; a related career, computer programming does appear to have been affected.[6][7] Often one is expected to start out as a computer programmer before being promoted to software engineer. Thus, the career path to software engineering may be rough, especially during recessions.
Some career counselors suggest a student also focus on "people skills" and business skills rather than purely technical skills because such "soft skills" are allegedly more difficult to offshore. Reasonable command over reading, writing & speaking English is asked by most of employers.[8] It is the quasi-management aspects of software engineering that appear to be what has kept it from being impacted by globalization.[9]
Prizes
There are several prizes in the field of software engineering:[10]
- The Codie awards is a yearly award issued by the Software and Information Industry Association for excellence in software development within the software industry.
- Jolt Awards are awards in the software industry.
- Stevens Award is a software engineering award given in memory of Wayne Stevens.
See also
- Programmer
- Systems analyst
- Systems architect
- Bachelor of Science in Information Technology
- Bachelor of Software Engineering
- Release Engineer
- Software Engineering Institute
References
- ^ Cowling, A. J. 1999. The first decade of an undergraduate degree program in software engineering. Ann. Softw. Eng. 6, 1–4 (Apr. 1999), 61–90.
- ^ "ABET Accredited Engineering Programs". April 3, 2007. Retrieved April 3, 2007.
- ^ McConnell, Steve (July 10, 2003). Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers. ISBN 978-0-321-19367-4.
- ^ Software Engineering — Guide to the software engineering body of knowledge (SWEBOK), International Organization for Standardization, 2015, retrieved January 11, 2020
- ^ "IT news, careers, business technology, reviews". Computerworld.
- ^ "Computer Programmers".
- ^ "Software developer growth slows in North America | InfoWorld | News | 2007-03-13 | By Robert Mullins, IDG News Service". Archived from the original on April 4, 2009.
- ^ "Hot Skills, Cold Skills". Archived from the original on February 22, 2014.
- ^ Dual Roles: The Changing Face of IT
- ^ Some external links: