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