Career Map: Software Engineer

Alternate Title(s)

Software Developer

Minimum Education Requirements

Bachelor's degree

Salary

See Bureau of Labor Statistics for more information

Job Skills

- Analytical skills. Developers must analyze users’ needs and then design software to meet those needs.

- Communication skills. Developers must be able to give clear instructions to others working on a project. They must also explain to their customers how the software works and answer any questions that arise.

- Computer skills. Developers must understand computer capabilities and programming languages in order to design effective software.

- Creativity. Developers are the creative minds behind new computer software.

- Detail oriented. Developers often work on many parts of an application or system at the same time and must therefore be able to concentrate and pay attention to detail.

- Interpersonal skills. Software developers must be able to work well with others who contribute to designing, developing, and programming successful software.

- Problem-solving skills. Because developers are in charge of software from beginning to end, they must be able to solve problems that arise throughout the design process.

Job Duties

Software developers typically do the following:

- Analyze users’ needs and then design, test, and develop software to meet those needs

- Recommend software upgrades for customers’ existing programs and systems

- Design each piece of an application or a system and plan how the pieces will work together

- Create a variety of models and diagrams (such as flowcharts) that instruct programmers how to write software code

- Ensure that a program continues to function normally through software maintenance and testing

- Document every aspect of an application or a system as a reference for future maintenance and upgrades

- Collaborate with other computer specialists to create optimum software

Job Profile

Software developers are the creative minds behind computer programs. Some develop the applications that allow people to do specific tasks on a computer or another device. Others develop the underlying systems that run the devices or that control networks. Software developers are in charge of the entire development process for a software program. They may begin by asking how the customer plans to use the software. They must identify the core functionality that users need from software programs. Software developers must also determine user requirements that are unrelated to the functionality of software, such as the level of security and performance needs. They design the program and then give instructions to programmers, who write computer code and test it. If the program does not work as expected or if testers find it too difficult to use, software developers go back to the design process to fix the problems or improve the program. After the program is released to the customer, a developer may perform upgrades and maintenance. Developers usually work closely with computer programmers. However, in some companies, developers write code themselves instead of giving instructions to the programmers.

The information presented within this occupational profile was synthesized from the Bureau of Labor Statistics, U.S. Department of Labor, Outlook Handbook, 2016-17 Edition and the U.S. Office of Personnel Management’s Handbook of Occupational Groups & Families.