Knowledge in SFIA - Worked Example for a Software Developer
Illustration for a Software Developer.
To illustrate the principles, we will use the example of Alex, a software developer. The same principles can, of course, be applied to other professional disciplines and other professional roles.
In her professional work; Alex uses a number of sources to develop her knowledge.
She uses industry bodies of knowledge, e.g. the SWEBOK, and the EITBOK to find generally recognised good practice in core software engineering Knowledge Areas (KAs) such as software requirements, design, construction, configuration management.
Other software development environments examples are mobile apps, embedded systems, web sites, data engineering, Industry domain examples are aerospace, media, manufacturing, government, healthcare, transport & logistics.
She applies her knowledge of software engineering KAs to the software development environment she works in and her industry domain. Currently, Alex develops enterprise applications in the financial services industry.
She uses knowledge of Agile working to guide her working practices and her interactions with the other people and roles in the team. In this case, her employer has adapted generic Agile practices but tailored to the working environment and culture of their organisation.
Alex also needs technical knowledge of the DevOps tools used in their development environment to implement automation e.g. continuous development, testing and deployment.
The methods and tools her department use are always improving so Alex needs to contribute to developing and sharing new knowledge e.g. for DevOps and Agile.
To be fully effective Alex needs a good understanding of her employer's business e.g. the customer groups, the main business functions, products, competition and the industry ecosystem. She needs a good network across key stakeholders in her company and with any partner organisations. This gives her knowledge about who to contact and how to get things done. Organisational knowledge like this is very specific to her current employer and is initially gained through onboarding/induction programmes and then is grown and developed throughout her employment, primarily informally through on-the-job activities.
With working experience; Alex’s knowledge grows across the dimensions described above. This contributes to an increase in her capability to do good work. But to be competent she must be able to apply that knowledge effectively in the workplace to deliver useful business outcomes for her employer.
Alex develops and demonstrated her skills and competency levels through work experience. The opportunity to improve skills through incrementally more challenging and stretching work is provided by supportive managers and teams. Formal training may also be needed in some topics, and these are enhanced by working with her manager and team to find ways to put her newly gained knowledge into practice at work.
Her skills and competency levels are described in plain language using SFIA.
- Alex finds that SFIA is a simple way to set development targets, identify development needs and track her progress.
- She refers to both the professional skill descriptions e.g. Programming/Software Development, Software Design, as well as the generic attributes for autonomy, influence, complexity, business skills, and knowledge.
- The HR team and the IT team have collaborated on developing a set of SFIA skills profiles alongside standard position descriptions. These are used to help performance conversations between Alex and her manager. They are also used by the management team to support recruitment, resource deployment and salary bench-marking.
Values and guiding principles vary considerably between organisations, industries and countries so the SFIA framework does not try to describe those.
Some organisations do not have their own behavioural frameworks and in this case, individuals and organisations can use SFIA's generic attributes to guide their behavioural development in areas such as leadership, influencing, analytical thinking, delegation, oral and written communication, and presentation skills.
Alex’s employer has a set of organisational values which describe the desired culture and ways of working. Alex, her manager and team work together to understand and develop their behaviours in line with these statements.
The behavioural attributes described in SFIA’s Level of Responsibilities are very useful also because they are generic across all roles, not just Software Developers.
- This provides consistency across the different professional disciplines and roles in Alex's team and the wider organisation. This cannot be achieved if each role is using a siloed skills and competency framework related to their professional specialisms.
- It helps Alex with career planning and considering both vertical career steps (e.g. into a Software Development management role) or horizontally into other disciplines such as Architecture, Product Management or Business Analysis.
- SFIA also helps distinguish between the skills needed for Technical leadership roles versus People / Team Management roles.
Qualifications and certifications
Alex’s university degree was based on a curriculum and body of knowledge. The course included a 12-month industry placement which provided opportunities to apply academic/theoretical knowledge in the workplace. Her university assessed her progress on the placement by using SFIA as the benchmark and Alex was successful in working towards SFIA level 3 by the end of her industry placement.
With her employer, she has received certificates for attending training in specific technologies/ working practices.
But she has also picked up knowledge from a variety of sources e.g. her colleagues, through networking events and conferences, podcasts, skills mentoring. Much of this learning is not certificated, but, by applying her growing knowledge successfully, Alex adds to her lifetime portfolio of skills and competency levels. These can be assessed and benchmarked against SFIA - via their employer, their university, or professional bodies. She uses SFIA to help update her CV/resume with good descriptions of her work experience.
Digital badging / micro-credentials provide another form of recognition for Alex. This may be knowledge-based (e.g. by attending training and passing a test) or competency-based (SFIA skills & levels). She shares these via professional networks such as LinkedIn, her e-portfolio, company intranets and social media.
Example position description and skills profiles
This is to illustrate how the different components of SFIA's capability model can be combined to create a holistic position description. It is for general awareness only; not specific guidance.
To contribute to the creation and maintenance of high-quality software applications.
- Executes a range of tasks across the full lifecycle in line with agreed software development methodology:
- Write well designed, testable, efficient code in a timely manner to meet delivery timescales/milestones
- Produce specifications and determine operational feasibility
- Integrate software components into a fully functional software system
- Document and maintain software functionality
- Prepare time and resource estimates for development activities
- Tailor and deploy software tools, processes and metrics
- Perform unit and component testing
- Support functional and non-functional unit testing
- Own issues; drive and address open questions and follow-ups until all clarified and resolved
- Support code deployment to enable efficient and accurate implementations
- Develop specialist knowledge in relevant programming languages, tools, techniques and apply expertise and knowledge to deliver effective solutions.
- Share expertise and provide technical advice and guidance to others.
- Implement standard processes, tools, metrics, measurement, and reporting.
- Identify opportunities for improvement in software development processes.
- Pro-actively demonstrate required behaviours in line with expectations of the role.
Professional Skills - from SFIA
- Programming/software development level 3
- Software design level 3
- Testing level 2
- System integration and build 2
- Broad knowledge of a range of software development and delivery lifecycles, agile, iterative, waterfall with detailed knowledge of one or more.
- Knowledge of relevant applications, languages, environments, systems software, packages, platforms *add the specific requirements for the team here
- Knowledge of different vendors’ DevOps products, pros & cons of industry DevOps tools *add specific requirements for the team here
- Good knowledge of secure coding
- Agile software product development techniques *add any specific requirements for the team here
- Business and industry knowledge *add any specific requirements for the team here
- Successful delivery of working software in a complex working environment
- Collaborative development and working in virtual teams requiring good communication with business customers and technology teams
- Highly flexible, accountable and taking ownership
- Typically educated to degree level, or equivalent work experience or qualifications.
- *add any specific technical qualifications/certifications here