K1: all stages of the software development lifecycle (what each stage contains, including the inputs and outputs)
K2: roles and responsibilities within the software development lifecycle (who is responsible for what)
K3: the roles and responsibilities of the project lifecycle within your organisation, and your role
K4: how best to communicate using different communication methods and how to adapt appropriately to different audiences
K5: the similarities and differences between different software development methodologies, such as agile and waterfall
K6: how teams work effectively to produce software and how to contribute appropriately
K7: software design approaches and patterns, to identify reusable off-the-shelf solutions to commonly occurring problems
K8: organisational policies and procedures relating to the tasks being undertaken, and when to follow them (e.g., the storage and treatment of GDPR sensitive data)
K9: principles of algorithms, logic and data structures relevant to software development (e.g., Arrays, Stacks, Queues, Linked Lists, Trees, Graphs, Hash Tables, Sorting Algorithms, Searching Algorithms, Critical sections and race conditions)
K10: principles and uses of relational and non-relational databases
K11: software designs and functional/technical specifications
K12: software testing frameworks and methodologies
Skills
S1: create logical and maintainable code
S2: develop effective user interfaces
S3: link code to data sets
S4: test code and analyse results to correct errors found using unit testing
S5: conduct a range of test types, such as Integration, System, User Acceptance, Non-Functional, Performance and Security testing
S6: identify and create test scenarios
S7: apply structured techniques to problem solving, can debug code and can understand the structure of programmes to identify and resolve issues
S8: create simple software designs to effectively communicate understanding of the program
S9: create analysis artefacts, such as use cases and/or user stories
S10: build, manage and deploy code into the relevant environment
S11: apply an appropriate software development approach according to the relevant paradigm (e.g., object-oriented, event-driven or procedural)
S12: follow software designs and functional/technical specifications
S13: follow testing frameworks and methodologies
S14: follow company, team or client approaches to continuous integration, version and source control
S15: communicate software solutions and ideas to technical and non-technical stakeholders
S16: apply algorithms, logic and data structures
S17: interpret and implement a given design whist remaining compliant with security and maintainability requirements
Behaviours
B1: Works independently and takes responsibility (e.g., has a disciplined and responsible approach to risk, and stays motivated and committed when facing challenges)
B2: Applies logical thinking (e.g., uses clear and valid reasoning when making decisions related to undertaking work instructions)
B3: Maintains a productive, professional, and secure working environment
B4: Works collaboratively with a wide range of people in different roles, internally and externally to the team, with a positive attitude to inclusion & diversity
B5: Acts with integrity with respect to ethical, legal and regulatory ensuring the protection of personal data, safety and security
B6: Shows initiative and takes responsibility for solving problems within their own remit, being resourceful when faced with a problem to solve
B7: Communicates effectively in a variety of situations to both a technical and non-technical audience
B8: Shows curiosity to the business context in which the solution will be used, displaying an inquisitive approach to solving the problem (includes the curiosity to explore new opportunities and techniques; the tenacity to improve methods and maximise performance of the solution; and creativity in their approach to solutions)
B9: Committed to continued professional development