Programming/software development PROG
Developing software components to deliver value to stakeholders.
Updates for SFIA 9
- There is an updated version of this skill for SFIA 9.
- Theme(s) influencing the updates for this skill: Making SFIA easier to consume (enhance readability/guidance/descriptions), Support for cyber security working practices (both specialised and general).
- Readability improvements have been made to level 2.
- You can move to SFIA 9 when you are ready - SFIA 8 skill descriptions will still be available to use.
- Previous SFIA assessments or skills mapping are not impacted by this change.
Guidance notes
Activities may include — but are not limited to:
- identifying, creating and applying software development and security standards and processes
- planning and designing software components
- estimating time and effort required for software development
- constructing, amending and verifying software components
- applying test-driven development and ensuring appropriate test coverage
- using peer review techniques — such as pair programming
- documenting software components
- understanding and obtaining agreement to the value of the software components to be developed
- selecting appropriate development methods and life cycles
- applying recovery techniques to ensure the software being developed is not lost
- implementing appropriate change control to software development practices
- resolving operational problems with software and fixing bugs
Depending on requirements and the characteristics of the project or assigned work — software development methods and life cycles can be predictive (plan-driven) approaches or adaptive (iterative/agile) approaches.
Levels of responsibility for this skill
2 | 3 | 4 | 5 | 6 |
Programming/software development: Level 1
This skill is not typically observed or practiced at this level of responsibility and accountability.
Programming/software development: Level 2
Designs, codes, verifies, tests, documents, amends and refactors simple programs/scripts.
Applies agreed standards and tools to achieve a well-engineered result.
Reviews own work.
Programming/software development: Level 3
Designs, codes, verifies, tests, documents, amends and refactors moderately complex programs/scripts.
Applies agreed standards and tools to achieve a well-engineered result.
Monitors and reports on progress. Identifies issues related to software development activities. Proposes practical solutions to resolve issues.
Collaborates in reviews of work with others as appropriate.
Programming/software development: Level 4
Designs, codes, verifies, tests, documents, amends and refactors complex programs/scripts and integration software services.
Contributes to the selection of the software development methods, tools and techniques.
Applies agreed standards and tools to achieve well-engineered outcomes.
Participates in reviews of own work and leads reviews of colleagues' work.
Programming/software development: Level 5
Takes technical responsibility across all stages and iterations of software development.
Plans and drives software construction activities. Adopts and adapts appropriate software development methods, tools and techniques.
Measures and monitors applications of project/team standards for software construction, including software security.
Contributes to the development of organisational policies, standards, and guidelines for software development.
Programming/software development: Level 6
Develops organisational policies, standards, and guidelines for software construction and refactoring.
Plans and leads software construction activities for strategic, large and complex development projects.
Adapts or develops new methods and organisational capabilities and drives adoption of, and adherence to policies and standards.
Programming/software development: Level 7
This skill is not typically observed or practiced at this level of responsibility and accountability.