Alternate Job Titles
Software Engineer, Software Developer, Application Developer, Application Engineer, Programmer Analyst, Software Development Engineer
Functional Group
Software and Systems
Job Family
Applications Solutions Development
Job Description
- Write code according to specifications.
- Support senior developers across the software development lifecycle (SDLC).
- Encourage frequent upgrades and suggests enhancements for already-existing applications.
- Provide technical support for software applications to ensure smooth operation and user satisfaction.
- Participate in version control and code reviews.
- Monitor and enforce adherence to development and coding standards to ensure code quality, consistency, and maintainability.
Critical Work Function
User Requirement Analysis
- Examine how the resources are being used.
- Take part in conversations with stakeholders to comprehend what the needs of users are.
- Support needs analysis based on demands from users.
- Help with the creation of interface definitions, requirements documentation, and functional and non-functional requirements.
- Help with the creation of communication materials and proposals for idea pitching.
Software Design Support
- Support the installation and operation of tools for the specified design strategy and methodology of a project.
- Take part in architectural design activities involving the application of models, patterns, diagramming methodologies, and standard notations.
- Use a chosen software design pattern for creating software modules or components.
- Take part in reviews of software design.
- Support the creation and application of prototypes and simulations to assess the calibre of software design.
Software Development Support
- Compile and report key metrics for code quality.
- Create code modules according to technical specifications and design models.
- Develop and execute unit tests to ensure code meets the specified test objectives.
- Utilise established version control system to manage all code changes and maintain clear, up to-date code documentation.
- Design and develop software development tools and scripts that support the software development life cycle. Software development tools are computer programs that aid developers in creating, managing, and maintaining other software. Broadly categorized into several areas, including code editors, IDEs, version control systems, project management tools, testing frameworks, and build automation tool.
Example: Generic tools like Git, GitHub, Jenkins, Asana, Trello, Jira, and some developed by the team internally. - Create and manage an appropriate version control system and code documentation.
Software Testing Execution
- Provide support in the creation of the scripts, cases, and test plans.
- Execute software testing strategies.
- Execute the unit, integration, and system test cases as well as the test environment.
- Document the results of test execution and review the outcome against test plan and expected results.
Software Security Compliance
- Adhere to secure coding guidelines and recommended code standards.
- Comply with project guidelines while gathering metrics related to security assessments.
- Conduct code reviews to find security flaws.
Software Configuration Management (SCM) Setting
- Assist in assessing how policies, contracts, and the software development life cycle affect supply chain management.
- Offer measurement information for SCM metrics.
- Aid in the identification of SCIs, or software configuration objects.
- Create, organise, and oversee issue reports.
Entry Requirements
#1
Junior Programmer
BDQF Level 6 in Information Systems, Computer Science, Software Engineering, or any related field, with related industry certification OR
BDQF Level 5 in Information Systems, Computer Science, Software Engineering, or any related field, with related industry certification or possesses relevant portfolio/experience.