Software Development Technician

Overview

Software Development Technician Overview

Software Development Technician apprentices are taught how to design, install, maintain and support communication networks within an organisation or between multiple organisations. They'll understand network configuration and administration, the cloud and monitoring tools; and be able to give technical advice and guidance.

To achieve their Software Development Technician apprenticeship, apprentices must:

  • Demonstrate competence against two knowledge modules: Software Development Context and Methodologies and Programming. These are assessed by examinations set by the British Computer Society and regulated by Ofqual. Apprentices must pass both modules.
  • Submit a portfolio of evidence showing how they have applied the knowledge from these modules to projects and activities in their workplace.
  • Complete their formal End Point Assessment, which comprises: a synoptic project to showcase knowledge and skills from across the apprenticeship; a review of their portfolio of evidence; and a final interview with an independent EPA assessor.

Successful Software Development Technician apprentices go on into roles such as Network Technician, Network Engineer, Systems Engineer, Network Administrator.

Technical Competencies

Upon completion of their Software Development Technician apprenticeship, individuals will be able to:

  • write simple code for discrete software components following an appropriate logical approach to agreed standards (whether for web, mobile or desktop applications)
  • apply appropriate secure development principles to specific software components all stages of development
  • apply industry standard approaches for configuration management and version control to manage code during build and release
  • make simple connections between code and defined data sources as specified Test: functionally tests that the deliverables for that component have been met or not
  • follow basic analysis models such as use cases and process maps
  • support Software Developers at the build and test stages of the software development lifecycle
  • follow organisational and industry good coding practices (including those for naming, commenting etc.)
  • solve logical problems, seeking assistance when required (including appropriate mathematical application)
  • respond to the business environment and business issues related to software development
  • clearly articulate the role and function of software components to a variety of stakeholders (including end users, supervisors etc.)
  • operate appropriately in their own business', their customers' and the industry's environments
  • develop user interfaces as appropriate to the organisations development standards and the type of component being developed

Technical Knowledge and Understanding

Upon completion of their Software Development Technician apprenticeship, individuals will understand:

  • the business context and market environment for software development
  • the structure of software applications
  • all stages of the software development lifecycle
  • the role of configuration management and version control systems and how to apply them
  • how to test their code (e.g. unit testing)
  • that there are different methodologies that can be used for software development
  • the particular context for the development platform (whether web, mobile, or desktop applications)
  • their role within the software development team
  • how to implement code following a logical approach
  • how their code integrates into the wider project
  • how to follow a set of functional and non-functional requirements
  • the end user context for the software development activity
  • how to connect their code to specified data sources
  • database normalisation
  • why there is a need to follow good coding practices
  • the principles of good interface design
  • the importance of building in security to software at the development stage

Underpinning Skills, Attitudes and Behaviours

  • logical and creative thinking skills
  • analytical and problem solving skills
  • ability to work independently and to take responsibility
  • can use own initiative
  • a thorough and organised approach
  • ability to work with a range of internal and external people
  • ability to communicate effectively in a variety of situations
  • maintain productive, professional and secure working environment

Qualifications

Apprentices will achieve two BCS qualifications.

Funding

£15,000

Level

This is a level 3 apprenticeship.

Professional Recognition

This apprenticeship is recognised for entry onto the register of IT technicians confirming SFIA level 3 professional competence and those completing the apprenticeship are eligible to apply for registration.

Duration

The duration of this Firebrand apprenticeship is 16 months. Because this period involves both training and the final End Point Assessment (some of which must be carried out in the workplace), employers need to ensure the apprentice’s contract covers the full programme duration.

Registration to the Register of IT Technicians (RITTech)

Once apprentices have completed their apprenticeship they are officially recognised by the British Computer Society (BCS) for entry onto the Register of IT Technicians, confirming SFIA level 3 professional competence.

Curriculum

Software Development Technician curriculum

Firebrand’s apprenticeship programme covers all mandatory knowledge and skills outlined in the apprenticeship standard. Every Firebrand apprentice attends a suite of market-leading training programmes, to cover knowledge required from the apprenticeship standard. This training is then fleshed out through a package of selected online learning, which also allows apprentices to explore any topics of particular interest/importance to them in greater depth.

How are apprentices taught?

Apprentices receive a range of market-leading training as part of their qualification – typically between three and five courses per apprenticeship - giving them fundamental skills at speed.

We'll deliver all the knowledge apprentices need to learn for each knowledge module in the Standard through our Lecture | Lab | Review delivery. Apprentices then attend a Syllabus Review Session to cover the knowledge content covered in the apprenticeship standard.


Knowledge Module 1: Software Development Context and Methodologies

Upon completion of this Knowledge Module, Software Development Technician apprentices will:

  • Understand the business context and market environment for software development
  • Understand the structure of software applications
  • Understands all stages of the software development lifecycle
  • Understand the role of configuration management and version control systems and how to apply them
  • Understand how to test their code (e.g. unit testing)
  • Recognise that there are different methodologies that can be used for software development
  • Understand the particular context for the development platform (whether web, mobile, or desktop applications)
  • Understands their role within their software development team

Read through the full curriculum for Firebrand's classroom-based training and supporting online learning modules below.

Topic 1: Understand the software development lifecycle

Learners will understand that software development does not occur in isolation. Learners will gain an understanding of the stages in the lifecycle of software development and how these stages are likely to be performed by professionals in related disciplines. In particular learners will understand that core function of a software developer is to implement code to a given specification which will fulfil a set of functional requirements.

1.1 The role and scope of software development and its relationship to other associated disciplines

  • Describe the stages of developing software products through a development lifecycle:
  • Requirements gathering and analysis (separating functional and non-functional requirements)
  • Software design and prototyping including design trade-offs and diagramming
  • Choice of development languages and tools
  • Appropriate testing methodologies including validation and verification of meeting the requirements gathered
  • Deployment into production and ongoing maintenance
  • Describe the relationship of software development with other disciplines such as project management, programming, testing, service management, change and configuration management

Learners will understand why it is important for software to be implemented using a structured software development methodology and the benefits of following the chosen method. Learners will be able to discuss why these benefits are important to other professionals such as project managers, and to the sponsors of the software development project, and for those who will support the software once it is has been deployed.

1.2 Explain the importance of the following in a procedural (Linear) /staged (Iterative) software development lifecycle, e.g.:

  • Standardisation
  • Methodical approach
  • Analysis of each step
  • Collation of information
  • Ensuring correct design
  • Cost control
  • Robust evaluation to aid future development

Topic 2: Understand the similarities and differences between two software developments methodologies in common use in industry

In this topic, learners will learn to describe the advantages and disadvantages of at least two software development methodologies in common use in industry. In comparing these methods, learners will be able to explain when a particular method would be preferable for a specific software implementation projects, and what the consequences of choosing the wrong method might be. The learner will also be able to describe the different team roles and responsibilities of at least two methods.

2.1 Summarise software development methodologies, application, advantages and disadvantages.

  • Principles and rationale
  • Structure and stages
  • Advantages
  • Disadvantages
  • Selection criteria
  • Team roles and responsibilities

Learners will learn the specific differences between at least two common industry software development methodologies. Learners will learn that different methods related to wider business issues beyond the scope of software implementation such as the focus on working product (Agile) over completeness of process (Waterfall).

2.2 Compare and contrast software development methodologies

  • Differences e.g. :
  • Structure
  • Phases with completion of each phase prior to moving onto the next phase of the cycle
  • Agile: Ability to work with uncertainty and volatility and focus on working products
  • Comparison e.g.:
  • Individuals and interactions over processes and tools
  • Working products over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan
  • Agile recognises that while there is value in processes and tools, there is often more value in individuals and interactions

Topic 3: Understand how to respond appropriately to the business environment and business issues related to software development

Learners will understand that software development typically takes place in a wider business which places constraints upon the software development process. The learner will be able to explain the types of constraints that may typically arise, and how they can be mitigated.

3.1 Describe the business environment related to software development

  • Business environment pressures:
  • Are there any specific project requirements such as contractual constraints – time, cost, quality, compliance, regulatory, innovation criteria?
  • Are there configuration management and change control constraints?
  • Are there opportunities to promote alternative practices – Agile over waterfall, rapid prototyping, modularity over performance

Learners will learn how to describe the business issues related to software development and how to mitigate them. In particular, learners will understand the importance of engaging with project management as business owners of the software development project.

3.2 Understand how to respond to the business environment and business issues related to software development

  • Engagement with project management:
  • Understand how to identify potential risks and flag them
  • Understand how to identify where additional technical resource will be required
  • Support effective cost estimation
  • Accurately Forecast effort (time) required

Topic 4: Understand why teams must work effectively to produce software

Learners will learn to explain a range of common roles found within an industry software development function. One person may hold multiple roles within an organisation. Core functions of business analysis, software design, software implementation, testing and architecture will be discussed.

4.1 Describe the roles and responsibilities within the software development and implementation lifecycle

Business analysts

  • Requirements analysis and capture
  • Resource estimation and planning
  • Requirements validation (including scope, documenting assumptions and exclusions)
  • Requirements engineering
  • Requirements tracking
  • Separation of functional and non-functional requirements
  • Specification development

Designers - Design a software model that fulfil the specifications:

  • Refinements of specifications
  • Use of diagramming tools
  • Use of formal and mathematical specification approaches
  • Choice of system architectures
  • Different design approaches and trade-offs such as, but not limited to: modularity v. performance
  • Choice of structured design
  • Documentation of design

Developers

  • Implementation choices – development language and tools
  • Debugging methods
  • Performance measurement
  • Validation and verification – ensuring the code meets the design specification

Testers

  • Quality assurance
  • Black-box and white-box testing
  • Formal proof models
  • Static and dynamic analysis tools

Technical architects

  • Deployment choices and architectures
  • Configuration management and change control

Learners will learn that software development in industry is seldom an individual effort and that to be an effective software development professional, it is important to work as a member of a development team. This will require the learner to understand the wider business context and how they can engage with it through their peers and managers.

4.2 The importance of working as a member of an effective development team

Describe how key roles and responsibilities can be used to form teams. Key Roles e.g.

  • Project manager
  • Business analysts
  • Designers
  • Developers
  • Testers
  • Technical architects

Describe factors that influence effective team working and their importance including internal and external factors e.g.:

  • Communication
  • Composition
  • Interpersonal relationships
  • Maturity of the team
  • Skill set
  • Leadership style
  • Resources
  • Climate and environment of the organisation
  • Sponsor
  • What is Programming (2h 50minutes)*
  • Software Process Management (3h 43minutes)*
  • Secure Software Development (3h 15minutes)*
  • Test-driven development: The Big Picture (1h 50 minutes)*

Total time: 11 hours 38 minutes


Knowledge Module 2: Programming

Upon completion of this Knowledge Module, Software Development Technician apprentices will:

  • Understand how to implement code following a logical approach
  • Understand how their code integrates into the wider project
  • Understand how to follow a set of functional and non-functional requirements
  • Understand the end user context for the software development activity
  • Understand how to connect their code to specified data sources
  • Demonstrate knowledge of database normalisation
  • Understand why there is a need to follow good coding practices
  • Understand the principles of good interface design
  • Understand the importance of building in security to software at the development stage

Read through the full curriculum for Firebrand's classroom-based training and supporting online learning modules below.

Implementing software code following a logical approach

Understand how to implement code, following a logical approach.

  • Explain the fundamental concepts of programming
  • Demonstrate the core constructs used when writing code
  • Explain and demonstrate how algorithms are used
  • Explain and demonstrate how data structures are used and how data is represented in software code
  • Describe how to write software code in order to solve problems
  • Understand the fundamental concept of Test Driven Development (TDD)

How code integrates into the wider project

Understand how code integrates into the wider project.

  • Describe the activities undertaken in the following stages of software development
  • Outline the activities undertaken in the following stages of software development
  • Understand software development activities for the following roles
  • Describe the key business concepts and artefacts that must be considered during a software development project
  • Describe how software development is conducted within governance structures and the role of the project manager
  • Understand how effective team-working contributes to the effective delivery of software projects

Developing software against a set of functional and non-functional requirements

Understand how to follow a set of functional and non-functional requirements.

  • Understand the difference between functional and non-functional requirements and how these are used to drive software development activities
  • Identify the different types of non-functional requirements, and the reasons they are important to the end-product of software development
  • Recognise common ways in which software requirements can be expressed
  • Describe the qualities of good requirements and the impact of poor requirements
  • Explain how to determine the correct level of test coverage based on each requirement / type of requirement

The end user context for software development

Understand the end-user context for the software development activity.

  • Understand and recognise the relationship between the user and the environment in which the software will be used
  • Understand the individual business and external constraints and dependencies that need to be taken into account when developing software
  • Describe the methods used to identify end-user needs

Connecting code to data sources

Appreciate the importance of seamlessly connecting applications to databases and understand types of data storage and their applications.

  • Explain the purpose of data storage for storing new information (orders or customer information)
  • Explain the purpose of data storage for extracting and displaying data
  • Explain the concept and key features of databases and data stores

Database normalisation

Demonstrate knowledge of database normalisation.

  • Explain the purpose and importance of effective data modelling and normalisation
  • Demonstrate the principle of normalisation, that information or data should be stored only once

Following good coding practices

>Understand why there is a need to follow good coding practices.

  • Explain the importance of good coding practice
  • Explain the purpose of good software coding principles and practices
  • Understand that there are a range of open and organisational coding standards and where to source them

Principles of good interface design 

Understand the principles of good interface design.

  • Explain human computer interaction and understand the issues associated with interactive systems
  • Describe the key concepts and processes of good user interface design
  • Explain the importance of usability when developing interactive systems
  • Describe the fundamental considerations for developing an accessible system and the purpose of the Web Accessibility Initiative (WAI)

Building in security software

Understand the importance of building security in to software at the development stage.

  • Describe the following types of security issues and the scale and nature of threats that can impact software development
  • Explain what is meant by 'building security in', in terms of secure software development and creating a secure end-product, and why it is important
  • Describe proactive security approaches during software design and development
  • Explain approaches to make software more secure
  • C# Beginners Tutorial*
  • C# from Scratch (3h 11minutes)*
  • HTML5 Fundamentals (2h 13minutes)*
  • Algorithms and Data Structures (3h 13minutes)*
  • Test Driven Development: The Big Picture (1h 50minutes)*
  • Software Process Management (3h 43minutes)*
  • MTA Database Fundamentals (4h 35minutes)*
  • Secure Software Development (3h 15minutes)*
  • Clean Architecture: Patterns, Practices and Principles (2h 21minutes)*
  • Software Process Management (3h 43minutes)*

Total time: 28 hours 04 minutes


Additional Courses

Additional courses are delivered when apprentices have submitted evidence to the End Point Assessment gateway.

There are some course combinations for this programme which mean you can select more than one course - we'll discuss this with employers on a case-by-case basis.

These additional courses support apprentices in achieving a Distinction grade at End Point Assessment.

Either choose from one of Firebrand's accelerated courses listed below to add to this apprenticeship programme:


Or choose two of Firebrand's courses listed below to add to this apprenticeship programme:

Prerequisites

Who can enroll on a Software Development Technician apprenticeship?

End Point Assessment

How are Software Development Technician apprentices assessed?

Progression Plan

How do Digital Marketer apprentices progress?

Exams

Exams

While apprentices benefit from new digital skills they can use in their job, almost all digital apprenticeships that Firebrand offer provide the chance to gain industry recognised qualifications.

Apprentices gain qualifications through either BCS or Vendor specific exams where applicable. These qualifications add to a professional career and can be used to help move seamlessly between roles in the IT industry.

All relevant exams that will be achieved during this apprenticeship are listed below:

  1. BCS Level 3 Certificate in Software Development Context and Methodologies
  2. BCS Level 3 Certificate in Programming

Latest Reviews from our students