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 typically do the following:
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 functions of the 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 programmers.
Developers who supervise a software project from the planning stages through implementation sometimes are called information technology (IT) project managers. These workers monitor the project’s progress to ensure that it meets deadlines, standards, and cost targets. IT project managers who plan and direct an organization’s IT department or IT policies are included in the profile on computer and information systems managers.
The following are examples of types of software developers:
Applications software developers design computer applications, such as word processors and games, for consumers. They may create custom software for a specific customer or commercial software to be sold to the general public. Some applications software developers create complex databases for organizations. They also create programs that people use over the Internet and within a company’s intranet.
Systems software developers create the systems that keep computers functioning properly. These could be operating systems for computers that the general public buys or systems built specifically for an organization. Often, systems software developers also build the system’s interface, which is what allows users to interact with the computer. Systems software developers create the operating systems that control most of the consumer electronics in use today, including those used by cell phones and cars.
Software developers usually have a bachelor’s degree in computer science and strong computer programming skills.
Software developers usually have a bachelor’s degree, typically in computer science, software engineering, or a related field. Computer science degree programs are the most common, because they tend to cover a broad range of topics. Students should focus on classes related to building software to better prepare themselves for work in the occupation. Many students gain experience in software development by completing an internship at a software company while in college. For some positions, employers may prefer that applicants have a master’s degree.
Although writing code is not their first priority, developers must have a strong background in computer programming. They usually gain this experience in school. Throughout their career, developers must keep up to date on new tools and computer languages.
Software developers also need skills related to the industry in which they work. Developers working in a bank, for example, should have knowledge of finance so that they can understand a bank’s computing needs.
Software developers can advance to become information technology (IT) project managers, also called computer and information systems managers, a position in which they oversee the software development process.
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.
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.
The median annual wage for software developers, applications was $103,620 in May 2018. The median wage is the wage at which half the workers in an occupation earned more than that amount and half earned less. The lowest 10 percent earned less than $61,660, and the highest 10 percent earned more than $161,290.
The median annual wage for software developers, systems software was $110,000 in May 2018. The lowest 10 percent earned less than $66,740, and the highest 10 percent earned more than $166,960.
In May 2018, the median annual wages for software developers, applications in the top industries in which they worked were as follows:
Software publishers | $114,320 |
Manufacturing | 110,290 |
Finance and insurance | 107,960 |
Management of companies and enterprises | 104,420 |
Computer systems design and related services | 100,080 |
In May 2018, the median annual wages for software developers, systems software in the top industries in which they worked were as follows:
Manufacturing | $118,900 |
Engineering services | 113,250 |
Finance and insurance | 111,380 |
Software publishers | 110,920 |
Computer systems design and related services | 108,790 |
Most software developers work full time and additional work hours are common.