Software Developer
The legal status of the qualification: SAQA ID: 118707, Credits 220, NQF Level 5
Purpose:
The purpose of this qualification is to prepare a learner to function as a Software Developer.
A Software Developer analyses a set of requirements, translates these into a working software solution using a programming language. They test, implement and maintain software applications to meet client specifications as well as functional and technical requirements.
A qualified learner will be able to:
- Interrogate the specification and problem and interpret it into code and articulate in writing.
- Build a logical flow using the framework and methodologies at their disposal to propose possible solutions to business challenges.
- Programme effectively using a suitable programming language to develop and test new solutions and update existing solutions.
Rational
Realising the importance and future impact of the 4IR on the economy of South Africa and its competitiveness, the Minister of Communications gazetted the Presidential Commission on the Fourth Industrial Revolution (PC4IR) (Government Gazette No. 42388).
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. The software developer is the important cog in designing advanced computerised technologies. South Africa has a scarcity of software developers and there is a clear need for a qualification focusing specifically on the training and education of software developers.
There is an abundance of international research that points to the phenomenal growth in the need for qualified software developers. For example, according to the US Bureau of Labour Statistics (BLS), demand for software developers is projected to grow by 22% by 2029. To put that figure in perspective, the average annual projected growth rate across all occupations is about 4%. In South Africa, according to the 2020 list of occupations in high demand: Technical Report (Department of Higher Education and Training) published in 2021 it is clear that the role of the Software Developer and its synonyms have been identified as pivotal by several Sector Education and Training Bodies (SETAs) as well as being in critical need by industry and academia alike. With so much job growth on the horizon, prospective software developers stand to see a bright future ahead of them. Those with proper training and education not only have great job security and a range of options but a high-paying, rewarding career path. Responding to the rapid skills demand by supplying software developers will thus have a positive impact on the economy.
This qualification covers the full value chain of a software developer from interrogating and understanding problem statements (from end users) to building logic flows to solve identified problems, execute the necessary programming in an appropriate programming language and finally soft skills issues to function effectively, efficiently and ethically in the workplace. It is an important qualification in the “suite” of qualifications in the ICT sector. No professional registration or licencing is expected for Software Developers to seek employment in the sector.
Software developers can find employment as applications developers, ICT programmers, front-end developers, back-end developers or full-stack developers.
Minimum Entry Requirement
Any NQF Level 4 qualification with mathematics and English or Grade 12 / Senior Certificate with Mathematics and English.
Recognition of Prior Learning
CGTS allows students to access to the qualification through recognition of prior learning (RPL), who do not meet the minimum entry requirements
Duration
2 years full-time and 3 years part-time including Workplace Learning Experience
Curriculum
This qualification is made up of compulsory Knowledge, Practical Skills and Work Experience Modules:
COMPONENTS | ID | MODULE TITLE | NQF LEVEL | CREDITS |
---|---|---|---|---|
Knowledge | 251201-005-00-KM-01 | Computers and Computing Systems | 4 | 12 |
Knowledge | 251201-005-00-KM-02 | Desktop and Professional Software to Communicate and Visualise Information | 4 | 8 |
Knowledge | 251201-005-00-KM-03 | Automated Webscraping as a Data Source | 5 | 8 |
Knowledge | 251201-005-00-KM-04 | Logical Thinking and Basic Calculations | 4 | 2 |
Knowledge | 251201-005-00-KM-05 | Computing Theory | 4 | 2 |
Knowledge | 251201-005-00-KM-06 | Software Development with HTML5, Opensource Frameworks and Libraries | 5 | 16 |
Knowledge | 251201-005-00-KM-07 | UML as Standard Modelling Language for Software and Systems Development | 5 | 4 |
Knowledge | 251201-005-00-KM-08 | Obtaining, Querying, Manipulating and Presenting Data with and without MVC | 5 | 6 |
Knowledge | 251201-005-00-KM-09 | Software Development Life Cycle, Programming Languages, Algorithms and Security | 5 | 3 |
Knowledge | 251201-005-00-KM-10 | Introduction to Governance, Legislation and Ethics | 4 | 2 |
Knowledge | 251201-005-00-KM-11 | 4IR and Future Skills | 4 | 2 |
Knowledge | 251201-005-00-KM-12 | Design Thinking Principles for Innovation | 4 | 1 |
Practical Skills | 251201-005-00-PM-01 | Use Software to Communicate and Visualise Information | 4 | 3 |
Practical Skills | 251201-005-00-PM-02 | Use and Manage Spreadsheets and Workbooks | 4 | 3 |
Practical Skills | 251201-005-00-PM-03 | Use Desktop Applications to Analyse, Visualise and Report on Data | 5 | 3 |
Practical Skills | 251201-005-00-PM-04 | Use a Visual Analytics Platform and Visualisation Tools to Analyse, Visualise and report on Data | 5 | 3 |
Practical Skills | 251201-005-00-PM-05 | Query and Massage Data | 5 | 3 |
Practical Skills | 251201-005-00-PM-06 | Apply Logical Thinking and Maths | 4 | 3 |
Practical Skills | 251201-005-00-PM-07 | Apply Code to use a Software Toolkit/Platform in the Field of Study or Employment | 5 | 3 |
Practical Skills | 251201-005-00-PM-08 | Develop Software using HTML5, Opensource Frameworks and Libraries | 5 | 16 |
Practical Skills | 251201-005-00-PM-09 | Design and Build Web Applications, Desktop Graphical User Interfaces or Mobile Apps | 5 | 8 |
Practical Skills | 251201-005-00-PM-10 | Use a Cloud Automation Platform to Create Solutions | 4 | 8 |
Practical Skills | 251201-005-00-PM-11 | Develop Software using Python | 5 | 12 |
Practical Skills | 251201-005-00-PM-12 | Apply the Development Cycle when Developing Software | 5 | 16 |
Practical Skills | 251201-005-00-PM-13 | Participate in a Design Thinking for Innovation Workshop | 4 | 4 |
Practical Skills | 251201-005-00-PM-14 | Function Ethically and Effectively in a Team | 4 | 4 |
Work Experience | 251201-005-00-WE-01 | Technical Requirement Analysis and Refinement | 5 | 15 |
Work Experience | 251201-005-00-WE-02 | Modelling Processes | 5 | 15 |
Work Experience | 251201-005-00-WE-03 | Programming for Software Solution Development | 5 | 25 |
Work Experience | 251201-005-00-WE-04 | Capstone project | 5 | 10 |
INTERNATIONAL COMPARABILITY
The Occupational Certificate: Software Developer was compared with the training provided in the United States of America and Australia since they appear to be leaders in this aspect.
United States of America
The software Engineering programmes presented in USA are similar in nature and with mentor’s support through blended mode. The duration is specified as 800-1000 hours of learning which may be achieved as a full-time, a part-time or self-paced option. Flatiron applies a blended approach which includes labs, lectures, and close collaboration, showcasing progress through Portfolio Projects and being linked to an online community. The course focuses on the Ruby and JavaScript ecosystems and provide content to develop expertise in back-end and front-end programming. Soft skills are acquired through the course, even though it is not highlighted as a module. Course outcomes are:
- Develop a foundation in programming fundamentals
- Conquer the concepts of Object-Oriented Programming
- Work with APIs (Application Programming Interfaces)
- Become proficient in database modelling and ORM (Object Relational Mapping)
- Understand MVC (Model-View-Controller), a pattern used by frameworks like rails to build large-scale applications
- Execute application deployment
Modules include:
- Programming Fundamentals
- Web Frameworks
- JavaScript
- Front-end Frameworks
- Projects to build productive, scalable front-ends and back-ends
Similarities:
Both qualifications include knowledge and practical (utilising software platforms) components and the duration is a full year. The content of both qualifications is similar and similar learning outcomes are achieved. Both qualifications skill learners in front-end and back-end technologies and include a Capstone project as well as soft skills related to professionalism.
Differences:
The modules on soft skills of the Occupational Certificate: Software Developer are more comprehensive than those of the Software Engineering course and include aspects such as ethics, teamwork and collaboration. The Occupational Certificate: Software Developer includes refresher and introductory modules, mathematics and programming. The Occupational Certificate: Software Developer does not require previous programming skills in contrast to the Software Engineering course which requires previous programming skills. The Occupational Certificate: Software Developer carries no vendor specific certification and is vendor agnostic, while the Software Engineering course focusses on Ruby and JavaScript.
Australia:
The nationally recognised Diploma of Information Technology (ICT50120) is presented by the Upskilled Training Institution which specialises in Information Technology training. The duration is 24 months and it is presented as an online course. Entry requirements are stipulated as completion of year 12, a qualification at Certificate IV level or higher, or 4 years of relevant experience in the IT industry. The qualification entails 6 core units and 14 elective units. Core units are:
- BSBCRT501 Originate and develop concepts
- ICTICT532 Apply IP, ethics and privacy policies in ICT environments
- ICTICT517 Match ICT needs with the strategic direction of the organisation
- ICTSAS527 Manage client problems
- BSBXCS402 Promote workplace cyber security awareness and best practices
- BSBXTW401 Lead and facilitate a team
Elective units are:
- ICTPRG533 Debug and monitor applications
- ICTPRG534 Deploy applications to production environments
- ICTPRG536 Design application architecture
- ICTPRG537 Implement security for applications
- ICTPRG509 Build using rapid application development
- ICTPRG530 Manage projects using software management tools
- ICTPRG531 Prepare for application development using current methods
- ICTPRG538 Create mashups
- ICTPRG540 Maintain custom software
- ICTPRG541 Monitor and support data conversion to new ICT system
- ICTPRG542 Review developed software
- ICTPRG543 Develop integration blueprint for ICT systems
- ICTPRG544 Install, test and evaluate pilot version of ICT systems
- ICTPRG545 Monitor system pilots
- ICTPRG548 Develop high-level object-oriented class specifications
- ICTPRG550 Perform ICT data conversions
- ICTPRG555 Implement object relational mapping framework for data persistence
- ICTPRG603 Develop advanced mobile multi-touch applications
Similarities:
Both qualifications, Diploma of Information Technology and the OC: Software Developer, are at the same level, namely Level 5. Both qualifications are nationally recognised. Both qualifications entail a theoretical as well as a practical skills component. Entry requirements are similar. Similar units/modules include:
- BSBCRT501 Originate and develop concepts
- ICTICT532 Apply IP, ethics and privacy policies in ICT environments
- BSBXCS402 Promote workplace cyber security awareness and best practices
Elective units are:
- ICTPRG533 Debug and monitor applications
- ICTPRG534 Deploy applications to production environments
- ICTPRG536 Design application architecture
- ICTPRG537 Implement security for applications
- ICTPRG509 Build using rapid application development
- ICTPRG531 Prepare for application development using current methods
- ICTPRG540 Maintain custom software
- ICTPRG541 Monitor and support data conversion to new ICT system
- ICTPRG542 Review developed software
- ICTPRG543 Develop integration blueprint for ICT systems
- ICTPRG544 Install, test and evaluate pilot version of ICT systems
- ICTPRG548 Develop high-level object-oriented class specifications
- ICTPRG550 Perform ICT data conversions
- ICTPRG555 Implement object relational mapping framework for data persistence
- ICTPRG603 Develop advanced mobile multi-touch applications
Differences:
The duration of the qualifications differs. Upskilled offers a simulated working environment, while the OC: Software Developer requires real-time work experience. The OC: Software Developer does not include the following aspects:
- ICTPRG545 Monitor system pilots
- ICTPRG538 Create mashups
- ICTPRG530 Manage projects using software management tools
- ICTICT517 Match ICT needs with the strategic direction of the organisation
- BSBXTW401 Lead and facilitate a team
- ICTSAS527 Manage client problems
Conclusion
This South African qualification compares favourably with the competencies covered in international programmes
Note: All the above information is taken from the Qualification Document registered on National Qualifications Framework (NQF) by the South African Qualifications Authority (SAQA). The qualification document can be accessed from this link www.saqa.org.za