Becoming a Professional Scrum Developer (PSD)
Professional Scrum Developer (PSD) is a certification reserved for developers who use Scrum as their framework to produce complex software. What in fact distinguishes this particular breed of developer from others?
Defining the Professional Scrum Developer (PSD)
The word “Professional”.
My interpretation is:
- Someone who is skilled in their job
- A responsible person who can say “yes” but also say “no”. Being professional means being aware of deadlines, costs and scope without ignoring the quality clients expect of them
What is “Scrum”?
It is the methodology or the application framework that applies agile principles in order to manage the complex tasks of a software development project. A Professional Scrum Developer is well acquainted with its roles, events and artefacts:
- Scrum Master
- Product owner
- Developer (this is us – PSD)
- Sprint planning
- Daily scrums
- Sprint revues
- Sprint retrospectives
- Product backlog
- Sprint backlog
- Product increment
- Definition of done (artefact transparency)
So, now we can all say that we understand: a PSD to be someone who is very familiar with their job and is equally aware of, not necessarily a master of, SCRUM methodology.
The word “Developer”.
Who are the developers in the professional and agile world? In this context, the developer must have a deep knowledge of certain key concepts and disciplines to ensure the successful completion of the project or tasks assigned to them. Above all, they must communicate effectively with the other developers on the team as with the product owner. Here’s an outline of three agile development practices.
3 agile methods used by a professional scrum developer (PSD)
Among the practices we hear a lot of talk about when referring to Agile methodology, Test-driven development or TDD stands out.
First, you write a test, next, the code to satisfy a functional specification. As developers, we go from red to green until all the specifications are coded.
To clearly appreciate test-driven development, you must follow the following three rules:
- First rule: Always write the test before writing the code that satisfies the test case.
- Second rule: In the test, define the behaviours and outcomes expected of the test case.
- Third rule: Write just enough code for the test case to cause the test to pass.
Testing is another very important practice for the developer working in agile mode. I specifically want to address acceptance tests, which in my opinion, should be a collaboration between stakeholders and developers. This is why communication is very important for a developer. It’s worth mentioning that these tests are also linked to a story’s acceptance criteria.
Acceptance tests can be automated, which is what I recommend despite the fact that every so often, clients are unprepared or, in certain cases, are very particular. Tests can be done manually as well.
Have you heard about the Given-When-Then style of representing tests? It is also referred to as specification tests. It is an approach developed by Dan North and Chris Matts as part of Behavior-Driven Development (BDD). You can find several testing frameworks for this style of testing such as, for example, Cucumber (SpecFlow for .NET).
It is important to note that acceptance tests are not unit tests. A developer writes unit tests while stakeholders, QA members and developers should write the acceptance tests.
When we talk about automating tests, I instinctively think of continuous integration.
The concept is simple. This process is triggered by a source code management system (TFS, CVS, SVN, Git) and every time a developer executes Validate (archive) i.e. commits changes to version control, it triggers a version of the application and executes all the tests. If all the tests prove successful, the code is archived; if not, the code is not archived and the developer must correct the code.
Referring to the definitions I’ve provided, we can conclude that a Professional Scrum Developer is a developer who is very skilled in their field. They possess a knowledge of programming languages (object-oriented for example), various design models, Scrum methodology and of a number of development practices, notably, test-driven development, acceptance testing and continuous integration, which lend themselves to working in an agile environment.
To obtain PSD certification, I recommend studying the Scrum guide, completing the exams available on the Website www.scrum.org and acquainting yourself with the concepts and practices I mentioned in this article.
– Reinaldo Bertolini
Reference: The Clean Code (Robert C. Martin)