Defining the Professional Scrum Developer (PSD)

First, I want to talk about 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.

Secondly, 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:

Roles :

  • Scrum Master
  • Product owner
  • Developer (this is us – PSD)

Events

  • Sprint planning
  • Sprints
  • Daily scrums
  • Sprint revues
  • Sprint retrospectives

Artefacts

  • Product backlog
  • Sprint backlog
  • Product increment
  • Definition of done (artefact transparency)

 

Scrum framework – source : thescrummaster.co.uk

 


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.


 

Lastly, let’s look at 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)

Test-driven development

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.

Acceptance testing

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.

Continuous Integration

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.

Intégration continue – Continuous integration – source : igm.univ-mlv.fr

 

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.

Good luck!

 

Reference: The Clean Code (Robert C. Martin)