Professional Scrum Developer Java

PSD+ course information

Return to the PSD Programs page.

PSD Java courses vary slightly from trainer to trainer, but they all teach the same core concepts, skills, and techniques. For more information about a particular PSD Java course, please contact the trainer in question.

 

PSD+ Course PSD Course Comparison

 

Course Objectives

Course attendees will learn about:

Scrum

• Scrum Overview
• Scrum Roles
• Scrum Artifacts (Product Backlog, Sprint Backlog, Release Burndown, Sprint Burndown)
• Sprint Planning Meeting
• Sprint Execution
• Daily Scrum
• Review
• Retrospective

Agile Best Practices

• User Stories
• Estimating with Story Points and Planning Poker
• Done Criteria
• Test Driven Development
• Code Smells and Refactoring
• Continuous Integration
• Pair Programming
• Verify that bugs are identified and eliminated

Theory and Foundation

• Self-Organization
• Pull versus Push principle
• Improving with Inspect and Adapt
• Acceptance Criteria

Audience

PSD Java is a beginner level course. Well-functioning Scrum Teams looking for assistance with advanced topics like scaling Scrum or implementing a rigorous ROI framework will not receive as much benefit from this course. If you are looking to explore more advanced topics, you should consider the Professional Scrum Master course or Product Owner course.

This course is suitable for any member of a software development team:

  • Entire project teams already working together and wanting to explore Scrum
  • Teams of Developers with Scrum knowledge and experience
  • Individual Developers with Scrum knowledge and experience
  • Programmers, Architects, Database Developers, Testers etc.
  • Product Owners and Product Managers may participate in the course by pairing with a developer and experience Scrum from the developer’s perspective

Course at a Glance

This 5-day course is a mix of lecture, demonstration, group discussion, simulation, and hands-on software development. The bulk of the course will be spent working as a team on an application delivering increments of new functionality in four mini-sprints. Here is the week at a glance:

 

 Monday Tuesday Wednesday Thursday Friday
Morning Introduction, Introduction to Scrum, Familiarizing with Existing "Brownfield" Application, Sprint Planning Meeting Daily Scrum, User Stories, Review & Retrospective Review Retrospective Daily Scrum, Test Driven Development, Dependency Injection, Review Retrospective Daily Scrum, Continuous Integration, Pair Programming, Review Retrospective Daily Scrum, Review Retrospective, Prepare Presentation
Afternoon

SPRINT 1

Sprint Planning, Daily Scrum, Self-Organizing Teams (Push vs Pull)

SPRINT 2

Sprint Planning, User Stories, Definition of Done, Planning Poker

SPRINT 3

Sprint Planning, Code Smells, Refactoring, Design for Testability

SPRINT 4

Sprint Planning, Pair Programming, Refactoring and Tooling Revisited

Presentation 1, Presentation 2, Presentation 3, Q&A, Wrap-up

 

Timeboxes

Timeboxing is a critical concept in Scrum as well as in the course. We expect each team and student to understand and obey all of the timeboxes. The timebox duration will always be clearly displayed during each activity. Expect the instructor to enforce it.

 

Component Description Minutes
Instruction Presentation and demonstration of new and relevant theory or practices 30 or 60 depending on topic
Sprint planning meeting 1 Product owner presents backlog; each team commits to delivering functionality 15
Sprint planning meeting 2 Each team determines how to build the functionality 15
The Sprint The team self-organizes and self-manages to complete their tasks 360 (two virtual days) less the time used for lecture modules
Sprint review meeting Each team will present their increment of functionality to the other teams <= 30
Sprint retrospective Each team will held a retrospective to inspect and adapt 15


Each team is expected to self-organize and manage their own work during the sprint. Pairing is highly encouraged. The instructor/product owner will be available if there are questions or impediments, but will be hands-off by default. You should be prepared to communicate and work with your team members in order to achieve your sprint goal. If you have development-related questions or get stuck, your partner or team should be first level support.

Syllabus

The Modules 5-13 are embedded into the mini Sprints. Usually at the beginning of a virtual day after the Daily Scrum, the students will be taught some theory before they get back to their Sprints. It is intended, that this knowledge can be applied immediately or in one of the subsequent sprints.

Module 1: Introduction

This module provides a chance for attendees to get to know the instructors as well as each others. The Professional Scrum Developer program, as well as the day by day agenda, will be explained. Finally, the Scrum Teams will be selected and assembled so that the forming, storming, norming, and performing can begin.

  • Trainer and student introductions
  • Professional Scrum Developer program
  • Agenda
  • Logistics
  • Team formation

Module 2: Introduction to Scrum

This module provides a level-setting understanding of the Scrum framework including the roles, timeboxes, and artefacts. The team will then experience Scrum firsthand by simulating a mini release with mini sprints of product development, including planning, review and retrospectivse meetings.

  • Scrum overview
  • Scrum roles
  • Scrum timeboxes (ceremonies)
  • Scrum artifacts
  • Motivation for Scrum
  • Retrospective

It is required that you read the Scrum Guide in preparation of this module.

Module 3: Familiarizing with the ‘brownfield’ application

This module is intended to get the students hands dirty with the existing ‘browfield’ application. They have to fix a couple of broken tests. Thereby, they have a chance to familiarize with the source code, the existing testing framework and the IDE.

  • Project environment
  • Source code structure
  • Test framework
  • Eclipse IDE

Module 4: Sprint Planning Meeting

This module explains what happens during the Sprint Planning Meeting. How the team is enabled to provide a realistic commitment for a set of Product Backlog items, the ‘What’ in the Sprint Planning 1 and how it translates the ‘What’ into ‘How’ during the Sprint Planning 2.

  • Agile planning
  • Velocity
  • Capacity
  • Sprint goal
  • Sprint planning 1
  • Sprint planning 2
  • Acceptance criteria

Module 5: Daily Scrum

This module describes in depth the idea behind the Daily Scrum, how it is facilitated and what to watch out for.

  • Participants
  • The three questions
  • Examples and outcome
  • Impediments

Module 6: Self-Organization (Pull vs. Push)

This module highlights the reason why self-organization is so important and how it can be facilitated. It looks in detail into the dynamics of a team and what environmental risks have to be mitigated in order to develop a strong self-organizing team.

  • Reasons for self-organizing
  • Team versus group
  • Forming – Storming – Norming – Performing
  • Environment
  • Risks

Module 7: Pair Programming

This module looks into the history of pair programming, why it works and how to implement it right. Also, it shows reasons why it does make sense to work in pairs.

  • Driving forces behind pair programming
  • Typical setup for pair programming
  • Good pairing behaviour
  • Pairing combinations
  • Privacy concerns
  • Reasons why it is beneficial to do pair programming

Module 8: Review and Retrospective

This module describes how to conduct a successful Review. It shows what is important and what the common pitfalls are. The Retrospective part addresses the importance of inspect and adapt on the team level. How the outcome and action items of a retrospective are important for the self-organization of the team.

  • Planning a review
  • What to do and what is to be avoided
  • How to handle feed back
  • Inspect and adapt
  • Plan – Do – Check – Act from the past into the future
  • Techniques for effective retrospectives

Module 9: User Stories, Definition of Done, Planning Poker

This module explains why User Stories are a good for requirements elicitation, why they are no specification and how they can be validated during the sprint. How the Definition of Done relies on the Acceptance Criteria and why a company appropriate Definition of Done is so important. Finally, the art of Planning Poker is explained.

  • Customer value, priority, effort
  • Card – Conversation – Confirmation
  • INVEST principle
  • Acceptance criteria
  • SMART principle
  • Definition of done
  • Planning Poker and why it works
  • How to play poker

Module 10: Test Driven Development, Dependency Injection

This module looks into the history of Pair Programming, why it works and why it makes sense to do it. Testing is easy when a system is testable. Dependency Injection is one great technique to achieve this.

  • The cycle of test, code and refactor
  • The three laws of TDD
  • 3A Pattern (Arrange, Act, Assert)
  • Reasons why it is beneficial to do TDD
  • Agile testing quadrants
  • Dependency injection
  • Mocking

Module 11: Code Smells, Refactoring, Design for Testability

This module describes the various kinds of code smells, how they can be eliminated by refactoring; this module includes a life example given by the instructor. Furthermore this module looks into code attributes which make testing easy.

  • Types of code smells
  • Law of Demeter
  • Live refactoring example
  • Design for testability

Module 12: Continuous Integration

This module looks into the history of continuous integration, why it is important to integrate often. Also, this module explains how continuous integration can be used for more then building and testing, but to enforce company standards and source metrics.

  • Continuous integration setup
  • Big visual display / eXtreme feedback devices
  • Types of build processes
  • How it can be rolled-out
  • Build artifacts
  • Team behavior

Module 13: Pair Programming, Test Driven Development and Tooling Revisited

This module describes in depth and detailed the mechanics of Pair Programming, Test Driven Development and tooling. Various tools are addressed and in which context they should be used.

  • Agile tools
  • Instructor-led examples

Module 14: Scrum Immersion

After the completion of the last sprint the remainder of the day is set for the immersion of Scrum. In a self-organizing way, small teams are forming and prepare presentations of the learned topics. After preparation, each team summarizes and presents to the whole group. The instructor moderates the lessons learned sessions and provides more information as required.

  • Publicly speak about Scrum and describe how it works
  • Specific and general Q&A

Expectations

This is a unique course in that it is technically-focused, team based, and employs timeboxes. It demands that the members of the team self-organize and self-manage their own work to collaboratively develop increments of software.

All students must commit to:

  • Pay attention to all lectures and demonstrations
  • Participate in team and group discussions
  • Work collaboratively with other team members
  • Obey the timebox for each activity
  • Commit to work and do your best to deliver

All students should have:

  • An understanding of Scrum
  • Familiarity with Eclipse IDE for Java
  • Java experience
  • Understanding of relational databases is beneficial
  • Software testing experience

People who should not take this course include:

  • Students requiring command and control style instruction (there are no prescriptive/step-by-step labs in this course)
  • Students who are unwilling to work within a timebox
  • Students who are unwilling to collaboratively on a team
  • Students who don’t have any skill in any of the software development disciplines
  • Students who are unable to commit fully to their team (not only will this diminish the student’s learning experience, but it will also impact their team’s learning experience)