Scrum Developer Formation

2021 09 03 head

You are working as a developer in a Scrum team.

Congratulations, working as a professional Scrum developer is a fulfilling and exciting job.

You should attend professional training.

Formal training is often the difference between being a professional instead of just pretending to be one.

Scrum Developer Role

Here the official definition of the developer team member role taken from the Scrum Guide.

Developers are the people in the Scrum Team that are committed to creating any aspect of a usable Increment each Sprint.

The specific skills needed by the Developers are often broad and will vary with the domain of work. However, the Developers are always accountable for:

  • Creating a plan for the Sprint, the Sprint Backlog,

  • Instilling quality by adhering to a Definition of Done,

  • Adapting their plan each day toward the Sprint Goal,

  • Holding each other accountable as professionals.

Certifications

The two big Scrum organizations Scrum Alliance and Scrum.org provide a certification path for Scrum developers. The certification path has three levels:

Certified Scrum Developer

Introduction course for those who are closest to the realization of the project.
It is usually a two days training. The Scrum.org allows taking the certification examination without attending a course.

Certified Advanced Scrum Developer

Advanced course for Scrum developers who already have one year of experience on a Scrum team.
It is at least two days training. You should read the recommended books to have a greater probability to pass the examination on the first try.

Certified Scrum Professional Scrum Developer

Pinnacle course for experts wishing to master the Scrum developer track.
The third level requires more training, experience, and reading books. You often must participate to workshops before being allowed to graduate. Each certification organization has her own rules and conditions.
The goals are:

  1. Enabling a Culture of Technical Excellence

  2. Catalyzing High-Performing Technology Organizations

  3. Facilitating Environments for a Shared Understanding

  4. Evolving Teams to Develop and Grow

  5. Developing Self as an Agile Leader

Beware if you select the Scrum Alliance, you must renew your certification every two years. The conditions are similar to the renewal of a PMI certification. You must provide proof of training and pay a fee. The Scrum.org certifications never expire.

The Scrum Developer learning objectives for the first level are:

  1. Lean, Agile & Scrum

    1. practice utilizing a sprint backlog.

    2. describe the responsibility of the Scrum team for turning PBIs in the sprint backlog into increments of value.

    3. organize and demonstrate the daily Scrum.

    4. list at least three attributes of PBIs.

    5. give at least three examples of how a Scrum team will inspect and adapt PBIs during product backlog refinement.

    6. discuss at least five elements of a definition of done that ensure the increment provides information that enhances transparency and focus against which progress can be measured.

  2. Collaboration & Team Dynamics

    1. explain at least three differences between a working group and a team.

    2. discuss at least three attributes of effective teams.

    3. demonstrate working together as one team.

    4. describe at least three benefits of developers interacting directly with customers and users.

    5. restate at least three ways a Scrum team may collaborate with stakeholders, customers, and/or users during the sprint.

  3. Architecture & Design

    1. outline at least three benefits of technical excellence.

    2. explain at least one design practice on an agile team.

    3. list at least three principles of architecture in an agile environment.

  4. Refactoring

    1. define refactoring.

    2. describe at least three benefits of refactoring to an agile software development effort.

  5. Test Driven Development (TDD)

    1. explain test-first as a design and development approach and list three benefits.

    2. list at least three differences between traditional and agile testing.

    3. explain the importance of refactoring in the TDD cycle.

    4. describe at least three qualities of a good agile testing approach.

  6. Integrating Continuously

    1. define continuous integration and list at least three benefits.

    2. describe using three examples of how Scrum supports CI.

    3. describe at least one advantage of an automated build, test, measure pipeline.

The Scrum Developer learning objective examples for the first level are:

  1. Lean, Agile, and Scrum

    1. This should include creating a sprint goal, selecting product backlog items (PBIs) with a value orientation in mind and decomposing PBIs into smaller work items.

    2. This emphasizes the collaboration between the members of the Scrum team, especially product owner and developers, for understanding the items and turning them into a valuable stepping stone toward the product goal.

    3. Methods to organize the daily Scrum could be: original three questions, walk the wall, collaborative daily Scrum.

    4. Description, order, size, domain-specific attributes.

    5. This could include asking for clarification, adding acceptance criteria, sizing or estimating items, breaking them down into smaller items.

    6. For software, a definition of done could state that each increment fulfills the acceptance criteria, contains no blocking defects, is integrated into the system, is properly tracked in a version control system, and is documented according to the necessary documentation guidelines. There could be other elements, too. The point of this LO is to raise the awareness of done, especially done for whom?.

  2. Collaboration & Team Dynamics

    1. This could include stable membership, reaching a shared goal by working together, self-management.

    2. Example definition of team: small number of people with complementary skills, committed to a common purpose, performance goal and approach, for which they are mutually accountable.Example: T-shaped skill profile.

    3. Pair programming, pair designing, pair working in general. Creating something – code or non-technical – in a Scrum simulation.

    4. Shorter feedback loops, less work-in-progress, less mis-interpretation of needs, direct feedback of the working solution, actually trying the built product

    5. During sprint review while obtaining feedback regarding the latest increment, during sprint review while identifying what kind of changes to the product backlog are a helpful response to changing circumstances, during product backlog refinement, during a story mapping workshop, observing users using the product, interview users how they currently solve their problem, friendly users actively using the new product and giving feedback, invite the sprint review

  3. Architecture and Design

    1. Foster understanding of the work, improve shared ownership and responsibility, improve estimability and reliability, reduce defects, avoid accumulation of technical debt

    2. This could include test first, quick design sessions, using spikes to understand a new technology, constant refactoring, metaphor, conversational modelling, CRC cards, pair programming.

    3. Reversibility, KISS; DRY; YAGNI; decide at the last responsible moment; responsive, resilient, elastic, message-driven (Reactive Manifesto), SOLID.

  4. Refactoring

    1. Refactoring is the practice of improving a system without changing its observable behavior.

    2. Refactoring fosters automated testing, improves readability and maintainability; it can support improving system performance, counter technical debt, and improve extensibility.

  5. Test Driven Development (TDD)

    1. Test first focuses on the behavior of the system. The system design emerges dynamically through the adjustment to additional tests. Benefits include simplicity, avoidance of bloating, defect reduction, built-in regression checks with automated tests.

    2. Differences include frequency, inclusion in the development process, being tied to specification versus being tied to code, amount of automation, responsibility, timing.

    3. Point out that it is important to have the simplest possible solution that passes the test in the first place to ensure the test is working, and refactor it to a sensible design that can be verified immediately, refer to the Broken Window metaphor, foster collective stewardship.

    4. Testers are Scrum team members, aka developers, include testing in the sizing discussion, collaborate on PBI refinement and acceptance criteria definition, pair up doing TDD to embed good tests from the beginning, include considerations of load, exploratory, and other testing approaches, contribute to definition of done.

  6. Integrating Continuously

    1. CI is the practice of reducing the feedback time between code creation and integration. It can be supported using technical means. CI changes habits and behaviors, creates awareness about shared responsibility. It is the base for frequent deliveries, reduces defects, reduces risk from late discovery of integration issues.

      1. Example 1: The increment is necessarily integrated. Using CI is highly recommendable for getting to at least one increment per sprint or more.

      2. Example 2: The daily Scrum can provide better transparency about progress if there is a better measure for progress. CI helps to get this transparency about what is working and what isn’t. Without CI, the Scrum team might probably not know the actual status of the system for days.

      3. Example 3: In the sprint review, only done PBIs are inspected. CI improves the probability of having done PBIs at the end of the sprint.

    2. Automation tools reduce manual repetition, single repository acts as document of record, configuration as code for repeatable error-free process and support continuous delivery

You can self-study the Scrum developer objectives [1] and [3]. Examples for the objectives are provided in [2] and [4].

I published a list of seminal works for interested Scrum developers under Books.

Agile Software Development Trainings

An interesting development is the addition of tailored trainings emphasizing agile approaches. The biggest organization PMI has a whole agile based on Disciplined Agile Design DAD.

I expect the emphasis on agile approaches to significantly increase in the next years.

University Formal Trainings

Technical universities in Switzerland provide formal training in project leadership, project management and related fields. The formation provides a certificate of advanced study CAS in the field. Current available certificates of advanced study offering are for example: