Researches, designs, and develops computer and network software or specialized utility programs. Analyzes user needs and develops software solutions, applying principles and techniques of computer science, engineering, and mathematical analysis. Updates software or enhances 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.
This career is part of the Information Technology cluster Programming and Software Development pathway.
A person in this career:
- Analyzes information to determine, recommend, and plan installation of a new system or modification of an existing system.
- Analyzes user needs and software requirements to determine feasibility of design within time and cost constraints.
- Confers with data processing or project managers to obtain information on limitations or capabilities for data processing projects.
- Confers with systems analysts, engineers, programmers and others to design systems and to obtain information on project limitations and capabilities, performance requirements and interfaces.
- Consults with customers or other departments on project status, proposals, or technical issues, such as software system design or maintenance.
- Coordinates installation of software system.
- Designs, develops and modifies software systems, using scientific analysis and mathematical models to predict and measure outcomes and consequences of design.
- Determines system performance standards.
- Develops or directs software system testing or validation procedures, programming, or documentation.
- Modifies existing software to correct errors, adapt it to new hardware, or upgrade interfaces and improve performance.