I treat today’s post as a public commitment to pass the CPSA Certificate. For some time, I have had the feeling that my career is stuck in one place. It’s getting more difficult to take the next steps forward. A few days ago, I looked at job offers on the German market and noticed that many offers require certificates confirming knowledge of software architecture. I read more about the mentioned certification and decided to upgrade my career more formally, not only by learning but also by getting accredited confirmation about gained knowledge. My goal it primarly becoming a good software architect. Getting certificate is a secondary goal.
What is CPSA
The iSAQB® Certified Professional for Software Architecture program is aimed at all those who work on solution structures in IT projects, primarily in the areas of software architecture, development, and quality assurance, but also at system analysis professionals who want to communicate better with their developers.
There are two levels of certification. The first one is the foundation level. It confirms the basic knowledge needed to work as architect. The second level is advanced, which confirms not only theoretical understanding but also tests the skills in practice. There is one more level Expert, but this won’t be discussed here.
CPSA-F
The CPSA-F certification focuses on providing a foundational understanding of software architecture. It includes its role in the software development lifecycle, the responsibilities of software architects, and techniques for developing. Documenting, and communicating architectures is also important aspect. It emphasizes quality assurance and is designed for software developers, designers, system analysts, and IT professionals. The certification exam is a 75-minute multiple-choice test with around 40 questions, requiring a 60% passing score.
CPSA-A
The Certified Professional for Software Architecture – Advanced Level (CPSA-A) certification is designed for professionals aiming to deepen their expertise in software architecture. It focuses on three key areas:
- Methodological Competence: Developing a systematic approach to architectural tasks, independent of specific technologies.
- Technological Competence: Gaining knowledge and implementation skills for technology solutions used in design tasks.
- Communicative Competence: Enhancing communication, presentation, argumentation, and moderation skills, as well as the ability to collaborate effectively with various stakeholders.
To achieve CPSA-A certification, candidates must:
- Prerequisites: Hold a CPSA-F certification and have at least three years of full-time professional experience in the IT industry, including involvement in the design and development of at least two different IT systems.
- Training: Accumulate a minimum of 70 credit points through participation in accredited training modules, ensuring at least 10 credit points in each of the three competence areas.
- Examination: Complete a written assignment (term paper) demonstrating the ability to design medium to large IT systems independently and methodically. An oral defense of the assignment follows this before two recognized iSAQB examiners.
The CPSA-A certification validates a professional’s capability to assume technical and content-related responsibility within IT systems of medium to high criticality, plan and document measures to meet non-functional requirements and manage architecture-related communication processes within development teams.
Learning path
I started my preparation by buying one of the recommended books Software Architecture Foundation: Cpsa Foundation Exam Preparation. Based on the content of the book I identified following topics to learn that I’m also going to describe in this blog.
Basic concepts of software architecture
This part covers definition of software architecture, goals and benefits of having well-structured architecture, lifecycles and so on. I think that on that moment I will be able to clearly tell what are the software lifecycles, what are goals and the responsibilities of an architect. That chapter should also explain the types of IT systems.
Design and development of software architectures
Here I expect to learn approaches to architecture development and other important aspects that every software architect have to take into account. This chapter will be the opportunity to refresh my knowledge about design pattern, principles, quality requirements and the principles of software deployment.
Specification and communication of software architectures
In can’t wait for this chapter. Finally, I will learn some new things for me, namely the way how to prepare architecture following common standards. I feel like I know many aspects. I am only not really sure if my way of presentation the ideas is correct. Here I am going to master this skill. I want to be able to provide high-quality software architecture consistent with a commonly known patterns.
Software architecture and quality
This topic won’t be new for me, but I am happy to have the opportunity to structure my knowledge. It’s about providing quality of the software and taking care of the quality aspects.
Examples of software architectures followed by CPSA rules
Even if this topics is not relevant for the CPSA Foundation level, it will cover some example of software architecture prepared based on knowledge that i will gather in aforementioned chapters. I think i will find any simple architecture task and prepare what is necessary to show how I am able to use the knowledge about software architecture.
Additional topics necessary to be a good architect
Additional topics will be everything that I will learn additionally. I am going to cast my eyes over everything which is necessary to be even better software architect than CPSA definition says.
Summary
This is short description of my learning path that I am going to follow. I treat it like signs to follow in the right direction, but probably I will learn and describe a lot more topics in the meantime. I know really well many of the aspects that I mention above. Nevertheless, it’s good opportunity to refresh and structure my knowledge.
I hope It will take maximum 2 months for me to prepare myself to the exam.
Thanks for reading and I encourage you to visit my blog from time to time so see the progress and learn something from my experience.
See ya!