Software Development

Summary

The Software Development job family consists of positions that are responsible for the development, implementation, testing, and maintenance of software applications. Job holders are involved in the full software development life cycle, from planning and designing to coding and testing. They work closely with business analysts and other stakeholders to understand business requirements and translate them into software solutions. They may also be responsible for providing user support and training.

Typical activities

  • Designs, develops, tests, deploys, and maintains software applications.
  • Serves as technical expert on development projects.
  • Supports, maintains and documents software functionality.
  • Participates in software design meetings and performs code reviews.

Synonyms or related job titles

Software Developer, Software Engineer, Programmer, Fullstack Developer, Coder

Summary

The Requirements Engineering job family is responsible for developing, managing, and communicating requirements for software, hardware, and system products and services. This includes eliciting, analyzing, and documenting requirements; developing plans and prototypes; and conducting feasibility and trade-off studies. 

Job holders work closely with customers, Product Managers, Product Owners and other stakeholders to ensure that products and services meets their needs. 

Typical activities

  • Actively participates in requirements elicitation sessions with stakeholders to ensure that all requirements are captured.
  • Analyzes requirements to ensure that they are clear, concise, and free of contradictions.
  • Documents requirements in a clear and concise manner.
  • Communicates requirements to all relevant stakeholders.
  • Manages changes to requirements throughout the software development lifecycle.
  • Validates the final product against the requirements.

Synonyms or related job titles

Requirements Engineer, Business Analyst, Business Analysis

Summary

The ERP Configuration / Customisation job family is responsible for the planning, analysis, design, implementation, and maintenance of enterprise resource planning (ERP) systems to meet the specific needs of an organisation.  This includes working with ERP software vendors to understand the software's capabilities and limitations, and developing customisations and modifications to the software to meet the organisation's specific requirements.

Job holders customize ERP applications to support new business processes and integrate with other enterprise applications.

Typical activities

  • Analyzes business requirements and translates them into ERP configuration / customization specifications.
  • Designs, develops and tests ERP configuration / customization solutions.
  • Supports the implementation of ERP configuration / customization solutions.
  • Provides post-implementation support to ensure that the ERP configuration / customization solutions are functioning as expected.
  • Monitors and maintains ERP configuration / customization solutions on an ongoing basis.
  • Creates and presents end-user training programs.
  • Maintains user accounts and permissions.
  • Reviews and ensures the compatibility of software updates.

Synonyms or related job titles

ERP Developer, SAP Developer, SAP HANA Developer, SAP ABAP Developer, ERP Functional Consultant

Summary

The Database Development job family is responsible for the design, implementation, and maintenance of databases. This includes the development of stored procedures, functions, and triggers to support application development. 

Job holders work closely with the application development team to ensure that data is stored efficiently and accurately. They also work to ensure that databases are properly backed up and secured. 

Core Duties

  • Analyses and resolves any database development issues.
  • Develops database solutions or infrastructure.
  • Develops new databases, maintains and improves existing ones.
  • Writes efficient and reliable SQL code to support the applications that use the databases.
  • Performs database tuning and optimization to improve performance and scalability.
  • Designs database architectures that are scalable and optimised for performance.
  • Writes and maintains documentation for databases and related processes.
  • Monitors database activity and trends, recommends and implements changes to improve efficiency and performance.
  • Handles the database administration tasks, such as setting up user accounts, backing up data, and ensuring performance levels are met.

Synonyms or related job titles

SQL Developer, Database Developer

Summary

The Software Testing job family is responsible for ensuring the quality of software products through the application of industry-standard testing methodologies. 

Job holders are responsible for designing, developing, and executing software test plans; analyzing and reporting test results; and providing feedback to software developers on software defects. They work closely with software developers and other stakeholders to understand the functionality of new software applications, and then design and execute test plans that will identify any defects. 

Once software applications are released, job holders also work to ensure that they remain defect-free, by conducting regression testing and other forms of testing as new software updates are released. In addition, they may also be responsible for monitoring customer feedback and investigating any reported defects.

Typical activities

  • Analyzes software requirements to determine testability and develops test plans and strategies.
  • Designs, develops, and executes automated and manual tests to ensure software quality.
  • Analyzes test results and identify software defects.
  • Reports software defects to software developers and track defect resolution.
  • Participates in software design and code reviews to ensure quality.
  • Assists in the development and maintenance of software testing infrastructure.
  • Stays up-to-date on new software testing tools and methodologies.

Synonyms or related job titles

Software Test, Software Tester, Software Quality Assurance

Please match in this collective family all specialized Software Development jobs that cannot be assigned to one of the above-mentioned families. Competencies from the parent family will be shown. A selection of parent family-specific Benchmark Job Matches is available and can be selected manually. The availability of benchmark job matches depends on the survey vendor chosen.

Summary

The Software Architecture job family is responsible for the design and development of software systems.

Job holders work with other engineering teams and software development teams to create high-level designs and architectures for new software systems and applications. They also develop detailed specifications and documentation for these systems. In addition, they are responsible for researching, evaluating and recommending new software technologies and tools.

Typical activities

  • Establishes and maintains the software architecture of a system.
  • Defines the overall structure of the software and how it will be divided into modules.
  • Designs and develops complex software systems to ensure the technical feasibility of proposed architecture.
  • Creates high-level designs that define the architecture of the software.
  • Determines how the different modules will interact with each other.
  • Identifies the technologies that will be used in the system.
  • Coordinates with other team members to ensure that the software architecture is implemented correctly.
  • Reviews code to ensure it meets architectural standards and is fit for purpose.

Synonyms or related job titles

Software Architect, BI Architect, Cloud Architect

Summary

The DevOps job family is responsible for the seamless integration and continuous improvement of development (Dev) and operations (Ops) processes in an organization.

Their work involves bridging the gap between the software developers and IT staff to ensure the efficient design, development, deployment, and operation of software applications. This can involve creating automated pipelines for software delivery, setting up and managing cloud infrastructure, ensuring system security, and managing version control systems.

DevOps roles facilitate an environment where developers can release applications rapidly, reliably, and securely. They also often work on tasks related to system troubleshooting, performance optimization, and incident management.

Typical Activities

  • Manages and optimizes Continuous Integration/Continuous Delivery (CI/CD)  to ensure rapid and reliable software releases.
  • Collaborates with software developers to understand and meet technical requirements.
  • Maintains and optimizes cloud-based infrastructure, including necessary security protocols.
  • Troubleshoots and resolves system outages, errors, or other issues affecting application performance.
  • Participates in system and network security assessments and implements necessary improvements.
  • Ensures scalability and reliability of systems through proactive performance tuning and infrastructure management.

Synonyms or related job titles

DevOps Engineer, Site Reliability Engineer (SRE), DevOps Architect, Release Manager, System Engineer, Infrastructure Engineer, Platform Engineer.