According to IBM Research: “Software development refers to a set of computer science activities dedicated to the process of creating, designing, deploying and supporting software.”. Software itself is the set of instructions or programs that tell a computer what to do. It is independent of hardware and makes computers programmable. Mar 31, 2021 The average salary for a Software Developer is $72,162. Visit PayScale to research software developer salaries by city, experience, skill, employer and more. Whether you are working on projects internally or for a client, software development is critical to the success of IBM and our clients worldwide. Software developers are the creative, brainstorming masterminds behind computer programs of all sorts. While some software developers may focus on a specific program or app, others create giant networks or underlying systems that help trigger and power other programs.
What Software Developers Do
Software developers create the applications or systems that run on a computer or another device.
Work Environment
Many software developers work for firms that deal in computer systems design and related services, manufacturing, or for software publishers.
How to Become a Software Developer
Software developers usually have a bachelor’s degree in computer science and strong computer programming skills.
Pay
The median annual wage for software developers was $110,140 in May 2020.
Job Outlook
Employment of software developers is projected to grow 22 percent from 2019 to 2029, much faster than the average for all occupations. Software developers will be needed to respond to an increased demand for computer software.
State & Area Data
Explore resources for employment and wages by state and area for software developers.
Similar Occupations
Compare the job duties, education, job growth, and pay of software developers with similar occupations.
More Information, Including Links to O*NET
Learn more about software developers by visiting additional resources, including O*NET, a source on key characteristics of workers and occupations.
Research, design, and develop computer and network software or specialized utility programs. Analyze user needs and develop software solutions, applying principles and techniques of computer science, engineering, and mathematical analysis. Update software or enhance existing software capabilities. May work with computer hardware engineers to integrate hardware and software systems, and develop specifications and performance requirements. May maintain databases within an application area, working individually or coordinating database development as part of a team.
Sample of reported job titles:Application Developer, Application Integration Engineer, Developer, Infrastructure Engineer, Network Engineer, Software Architect, Software Developer, Software Development Engineer, Software Engineer, Systems Engineer
This title represents an occupation for which data collection is currently underway.
Software Developer Requirements
Tasks | Technology Skills | Tools Used | Detailed Work Activities | Credentials | Wages & Employment | Job Openings | Additional Information
Tasks
- Analyze information to determine, recommend, and plan installation of a new system or modification of an existing system.
- Analyze user needs and software requirements to determine feasibility of design within time and cost constraints.
- Confer with data processing or project managers to obtain information on limitations or capabilities for data processing projects.
- Confer with systems analysts, engineers, programmers and others to design systems and to obtain information on project limitations and capabilities, performance requirements and interfaces.
- Consult with customers or other departments on project status, proposals, or technical issues, such as software system design or maintenance.
- Coordinate installation of software system.
- Design, develop and modify software systems, using scientific analysis and mathematical models to predict and measure outcomes and consequences of design.
- Determine system performance standards.
- Develop or direct software system testing or validation procedures, programming, or documentation.
- Modify existing software to correct errors, adapt it to new hardware, or upgrade interfaces and improve performance.
- Monitor functioning of equipment to ensure system operates in conformance with specifications.
- Obtain and evaluate information on factors such as reporting formats required, costs, or security needs to determine hardware configuration.
- Prepare reports or correspondence concerning project specifications, activities, or status.
- Recommend purchase of equipment to control dust, temperature, or humidity in area of system installation.
- Specify power supply requirements and configuration.
- Store, retrieve, and manipulate data for analysis of system capabilities and requirements.
- Supervise and assign work to programmers, designers, technologists, technicians, or other engineering or scientific personnel.
- Supervise the work of programmers, technologists and technicians and other engineering and scientific personnel.
- Train users to use new or modified equipment.
Technology Skills
Software Developer Resume
- Access software — Citrix ; PuTTY
- Administration software — Software distribution management software
- Analytical or scientific software — IBM SPSS Statistics ; Minitab ; SAS ; The MathWorks MATLAB (see all 9 examples)
- Application server software — Docker ; Red Hat OpenShift ; Red Hat WildFly ; Spring Boot (see all 7 examples)
- Backup or archival software — Backup and archival software; Veritas NetBackup
- Business intelligence and data analysis software — IBM Cognos Impromptu ; MicroStrategy ; Oracle Business Intelligence Enterprise Edition ; Qlik Tech QlikView (see all 5 examples)
- Communications server software — IBM Domino
- Computer based training software — Moodle
- Configuration management software — Perforce Helix software; Puppet ; Visible Razor; VMWare (see all 10 examples)
- Content workflow software — Atlassian JIRA ; Emerald Software Group Emerald Green Office
- Customer relationship management CRM software — Blackbaud The Raiser's Edge; Oracle Eloqua; Salesforce software
- Data base management system software — Amazon DynamoDB ; Elasticsearch ; MongoDB ; NoSQL (see all 24 examples)
- Data base reporting software — Microsoft SQL Server Reporting Services ; Oracle Business Intelligence Discoverer; SAP Business Intelligence; SAP Crystal Reports (see all 7 examples)
- Data base user interface and query software — Airtable; Apache Hive ; Blackboard software; MySQL (see all 18 examples)
- Data mining software — Google Analytics
- Desktop communications software — Skype
- Desktop publishing software — Adobe Systems Adobe InDesign ; Microsoft Publisher
- Development environment software — Advanced business application programming ABAP ; Apache Ant ; Common business oriented language COBOL ; Go (see all 60 examples)
- Device drivers or system software — Microsoft DirectX
- Document management software — Adobe Systems Adobe Acrobat ; Document management system software; Dropbox
- Electronic mail software — Google Gmail; IBM Notes ; Microsoft Exchange ; Microsoft Outlook
- Enterprise application integration software — Atlassian Bamboo ; IBM WebSphere ; Microsoft SQL Server Integration Services SSIS ; Oracle Fusion Middleware (see all 8 examples)
- Enterprise resource planning ERP software — Microsoft Dynamics GP ; NetSuite ERP ; Oracle Hyperion ; Oracle JD Edwards EnterpriseOne (see all 10 examples)
- Enterprise system management software — IBM Power Systems software; Splunk Enterprise
- Expert system software — Ansible software
- File versioning software — Apache Subversion SVN ; Git ; Version control software
- Filesystem software — File server software
- Financial analysis software — Delphi Technology; Oracle E-Business Suite Financials
- Graphical user interface development software — Graphical user interface GUI builder software; Graphical user interface GUI design software; Salesforce Visualforce
- Graphics or photo imaging software — Adobe Systems Adobe Creative Cloud ; JamBoard; SmugMug Flickr ; Trimble SketchUp Pro (see all 11 examples)
- Information retrieval or search software — Apache Avro; LexisNexis
- Instant messaging software — Blink; GroupMe
- Internet protocol IP multimedia subsystem software — Voice over internet protocol VoiP system software
- Metadata management software — CA Erwin Data Modeler; Talend Data Fabric
- Network conferencing software — LogMeIn GoToWebinar
- Network monitoring software — Nagios ; Wireshark
- Network operation system software — IBM z/OS operating systems
- Network security and virtual private network VPN equipment software — Virtual private networking VPN software
- Object or component oriented development software — Apache Spark ; jQuery ; Objective C ; Scala (see all 33 examples)
- Object oriented data base management software — Hibernate ORM; PostgreSQL
- Office suite software — Google Drive ; LibreOffice; Microsoft Office
- Operating system software — Bash ; Microsoft Windows Server ; Red Hat Enterprise Linux ; UNIX Shell (see all 23 examples)
- Platform interconnectivity software — Amazon Web Services AWS CloudFormation ; Migration software
- Portal server software — Apache HTTP Server
- Presentation software — Google Slides; Microsoft PowerPoint
- Program testing software — Fault testing software; Hewlett Packard LoadRunner; JUnit ; Selenium (see all 24 examples)
- Project management software — Confluence ; Microsoft Teams; Oracle Primavera Enterprise Project Portfolio Management ; Slack (see all 6 examples)
- Requirements analysis and system architecture software — IBM Rational Requisite Pro; Requirements management software; Unified modeling language UML
- Spreadsheet software — Google Sheets; Microsoft Excel
- Storage networking software — Amazon Simple Storage Service S3 ; Storage area network SAN software
- Transaction security and virus protection software — Encryption software; McAfee; Symantec
- Transaction server software — Customer information control system CICS; IBM Middleware; Microsoft Internet Information Service IIS; Object Management Group Object Request Broker (see all 5 examples)
- Video conferencing software — Cisco Systems Webex; FaceTime; Google Meet; LogMeIn GoToMeeting (see all 5 examples)
- Video creation and editing software — Adobe Systems Adobe AfterEffects ; Flipgrid; Screencastify; YouTube (see all 5 examples)
- Web page creation and editing software — Adobe Systems Adobe Dreamweaver; Google Sites; LinkedIn ; Social media sites
- Web platform development software — Backbone.js ; Google AngularJS ; Microsoft ASP.NET Core MVC ; React (see all 28 examples)
- Word processing software — 3M Post-it App; Google Docs ; Microsoft OneNote; Microsoft Word (see all 5 examples)
Hot Technology — a technology requirement frequently included in employer job postings.
Tools Used
- Central processing unit CPU processors — Graphics processing unit GPU; Multi-core central processing unit CPU
- Computer servers — Application servers
- Desktop computers
- Digital cameras
- Flash memory storage card — Flash disks
- High end computer servers — Directory servers
- Integrated circuit testers — In circuit emulators ICE; Logic analyzers
- Mainframe computers
- Notebook computers
Software Developer Bootcamp
Detailed Work Activities
- Analyze project data to determine specifications or requirements.
- Modify software programs to improve performance.
- Supervise information technology personnel.
- Apply mathematical principles or statistical approaches to solve problems in scientific or applied fields.
- Assess database performance.
- Assign duties or work schedules to employees.
- Collaborate with others to determine design specifications or details.
- Collaborate with others to resolve information technology issues.
- Communicate project information to others.
- Coordinate software or hardware installation.
- Design software applications.
- Develop performance metrics or standards related to information technology.
- Develop testing routines or procedures.
- Document technical specifications or requirements.
- Identify information technology project resource requirements.
- Manage information technology projects or system activities.
- Monitor computer system performance to ensure proper operation.
- Prepare data for analysis.
- Provide recommendations to others about computer hardware.
- Provide technical support for software maintenance or use.
- Teach others to use computer equipment or hardware.
Credentials
Wages & Employment Trends
Median wage data for Software Developers and Software Quality Assurance Analysts and Testers.
Employment data for Software Developers and Software Quality Assurance Analysts and Testers.
Industry data for Software Developers and Software Quality Assurance Analysts and Testers.
Median wages (2020) | $52.95 hourly, $110,140 annual |
State wages | |
Local wages | |
Employment (2019) | 1,469,200 employees |
Projected growth (2019-2029) | Much faster than average (8% or higher) |
Projected job openings (2019-2029) | 131,400 |
State trends | |
Top industries (2019) |
Source: Bureau of Labor Statistics 2020 wage data and 2019-2029 employment projections.'Projected growth' represents the estimated change in total employment over the projections period (2019-2029). 'Projected job openings' represent openings due to growth and replacement.
Job Openings on the Web
Sources of Additional Information
Disclaimer:Sources are listed to provide additional information on related jobs, specialties, and/or industries.Links to non-DOL Internet sites are provided for your convenience and do not constitute an endorsement.