SOFTWARE DEVELOPER Level 4
The primary role of a software developer is to build and test simple, high-quality code across front end, logic and database layers. A developer will typically be working as part of a larger team, in which they will have responsibility for some of the straightforward elements of the overall project. The developer will need to be able to interpret design documentation and specifications. The customer requirements will typically be defined and agreed by more experienced or specialist members of the team, such as a business analyst or technical architect.
Typical Job Roles: Web Developer, Application Developer, Mobile App Developer, Games Developer, Software Developer.
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 apprenticeship is typically 24 months.
Individual employers will set the selection criteria, but this is likely to include A levels; a level 3 apprenticeship or other relevant qualification; relevant experience and/or an aptitude test with a focus on functional maths.
• Logic: writes good quality code (logic) with sound syntax in at least one language
• User interface: can develop effective user interfaces for at least one channel
• Data: can effectively link code to the database/data sets
• Test: can test code and analyse results to correct errors found using either V-model manual testing and/or using unit testing
• Problem solving: can apply structured techniques to problem solving, can debug code and can understand the structure of programmes in order to identify and resolve issues
• Design: can create simple data models and software designs to effectively communicate understanding of the program, following best practices and standards
• Analysis: can understand and create basic analysis artefacts, such as user cases and/or user stories
• Deployment : can understand and utilise skills to build, manage and deploy code into enterprise environments
• Development lifecycle: can operate at all stages of the software development lifecycle, with increasing breadth and depth over time with initial focus on build and test.
• Can apply good practice approaches according to the relevant paradigm (for example object oriented, event driven or procedural)
• Can interpret and follow:
-software designs and functional/technical specifications
-company defined ‘coding standards’ or industry good practice for coding
-testing frameworks and methodologies
-company, team or client approaches to continuous integration, version and source control
• Can respond to the business environment and business issues related to software development
• Can operate effectively in their own business’s, their customers’ and the industry’s environments
• Can apply the maths required to be a software developer (e.g. algorithms, logic and data structures)
Technical Knowledge and Understanding
• Understands and operates at all stages of the software development lifecycle
• Understands the similarities and differences (taking into account positives and negatives of both approaches) between agile and waterfall software development methodologies
• Understands how teams work effectively to produce software and contributes appropriately
• Understands and applies software design approaches and patterns and can interpret and implement a given design, compliant with security and maintainability requirements
• Understands and responds to the business environment and business issues related to software development
• Understands and applies the maths required to be a software developer (eg algorithms, logic and data structures)
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