The SWEBOK and Its Applications for Software Developers

Musings on Career Development in Software

I have spent a fair amount of time over the last 5-10 years thinking about how our industry views and supports professional development. My own journey has given me an opportunity to see and experience what it takes to go from no education (other than a FORTRAN class in the mid-1980s) to being the author of a book on software engineering and leading a software development company.

In this post, I will share some of my observations related to how the Software Engineering Body of Knowledge (SWEBOK) can be leveraged to help individuals take control of their own professional development and the path toward becoming software engineers and not simply software developers.

What is Software Engineering?

Before digging into the SWEBOK, I think it is important to have a shared understanding of the definition of software engineering. Rather than creating my own definition, I prefer to use the definition provided by IEEE and the ISO standards organizations…

“Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.”

Source: ISO/IEC/IEEE Systems and Software Engineering Vocabulary and SWEBOK

The bottom line is, being a software engineer is not just about being a more highly skilled programmer. The field of software engineering and the skills and competencies required to be a software engineer go well beyond simply coding. Given this expansion of our understanding of the field, where do we discover what we need to know and understand to successfully “apply engineering to software”? This is where the SWEBOK becomes a critical component of our professional development.

What is SWEBOK?

SWEBOK is a guide to the core areas of software engineering. The IEEE Computer Society and other experts made it and update it regularly to keep up with the field. It currently has 15 knowledge areas (KAs) that cover the whole software life cycle, from requirements to maintenance. Each KA has a description, topics, and references to standards, books, articles, and other sources. SWEBOK is a descriptive and informative document, not a prescriptive or normative one. It does not tell software engineers how to do their work but what they should know and do.

Why is SWEBOK useful for software developers?

Software developers can use SWEBOK to assess their skills and gaps in various software engineering topics and find resources to learn more about software engineering principles and knowledge. SWEBOK can also help software developers manage their competency development by offering a common structure and language for software engineering ideas and methods that span the entire field of software engineering.

For example, here at Don’t Panic Labs, we have leveraged the SWEBOK to identify a broad set of competencies most relevant to the type of work we do. We use this competency list to assess our individual skill levels. We have developed a wide range of tools and resources that our developers can use to help develop their knowledge and skills within their competency gaps.

How Can Software Developers Use SWEBOK?

SWEBOK can help software developers in four ways.

  1. Check their own knowledge and experience in each KA and topic.
  2. Learn more from the references and links for each KA and topic, and from the related and emerging topics.
  3. Use SWEBOK as a guide to understand and use software engineering terms, concepts, best practices, and standards.
  4. Use SWEBOK to plan their career development, by setting competency goals based on the KAs and topics.

Next Steps

While SWEBOK is a critical resource for professional development in our industry, it was not designed to solve the problem of managing our individual competency development. We need more tools to help support us in this effort. Specifically, we need tools for both assessing our current competency and skill levels and tracking improvements as we work to increase our competency. We also need more tools to help us focus on the areas of growth most relevant to our current role and our desired career paths. At Don’t Panic Labs, we have recognized these needs with the development of the talent within our own organization, and we intend to address these challenges going forward. Stay tuned.