Course Overview

The Professional Scrum Developer course is a unique and intensive three-day experience intended for anyone involved in software development. The course guides teams on how to turn product requirements into business value in the form of potentially-releasable increments of software. This is done using the Scrum framework, Visual Studio, and modern Agile development practices.

This course is a mix of lecture, demonstration, group discussion, and hands-on software development. The true value of the course is realized as each student collaborates with other team members, on a case study product, using a shared instance of Team Foundation Server or Visual Studio Online, over several mini-Sprints.

Key Learning Areas

The Sprints

Timeboxing is a critical concept in Scrum as well as in this course. This is especially evident during the Sprints. Each event within a Sprint has a timebox duration and each team is expected to obey it.

  • Sprint Planning - The Product Owner presents an ordered Product Backlog and the Development Team forecasts and plans its Sprint Backlog
  • Development - The Development Team self-organizes to complete their plan, develop the PBIs, and deliver a done increment of functionality
  • Refining - The Scrum Team inspects and adapts the Product Backlog
  • Sprint Overview - Each team presents their done increment for feedback
  • Sprint Retrospective - A group retrospective meeting is held to inspect and adapt the current Sprint in hopes of making the next Sprint more effective

Course Outline

Fundamentals of the Scrum framework

  • Scrum roles, artifacts, and events
  • Complementary development practices

Application Lifecycle Management

  • Visual Studio ALM Tools
  • Visual Studio Scrum process template
  • Team Web Access Agile planning tools
  • TFVC or Git version control
  • Branching and merging for Scrum Teams
  • Support for various release models

Refining the Product Backlog

  • Defining and assuring quality
  • Definition of done
  • Reporting bugs
  • In-Sprint vs. out-of-sprint bugs
  • INVEST and 3C techniques
  • Agile estimation
  • Wall estimation and Planning Poker techniques

Agile Testing

  • Testing in parallel with coding
  • Development, acceptance, and exploratory testing
  • Unit testing in Visual Studio
  • Test-Driven Development
  • Analyzing code coverage
  • Acceptance testing in Visual Studio
  • Microsoft Test Manager
  • Acceptance Test-Driven Development

Emergent Architecture

  • Fitness (fit) for purpose
  • Avoiding upfront requirements and design
  • Developing in slices, not layers
  • Minimizing documentation

Quality Code

  • Quality code == quality software
  • SOLID principles
  • Clean code == quality code
  • Code and test smells
  • Code quality support in Visual Studio
  • Code Analysis, Code Metrics, Code Clone Analysis
  • Continuous Integration (CI)
  • Automating builds with Team Foundation Build
  • CI support in Team Foundation Build
  • Continuous feedback and related tools
  • Refactoring and refactoring tools
  • Technical debt and how to pay it back

Scrum Challenges

  • Getting done and avoiding undone work
  • Running experiments (spikes)
  • Cross-functional team collaboration
  • Not changing Scrum
  • Overcoming common dysfunctions & case studies
  • Working with challenging team members
  • Improving productivity
  • Becoming a high-performance Scrum Team

Contact us for older versions or customizations.

Who Benefits

This course is suitable for any member of a Scrum Development Team, such as those who develop tests, architecture, design, schema, or code. Entire teams are encouraged to attend this course and experience the positive effects of collaborating inside of a timebox according to their definition of done. Each team must be cross-functional, ensuring it has the necessary skills. Product Owners, Scrum Masters, stakeholders, and those evaluating Scrum’s effectiveness are welcome to attend, but keep in mind that every attendee will be expected to participate and collaborate equally, working towards the achievement of their team’s goals.

Prerequisites

This course assumes that each student has read the Scrum Guide, has a basic understanding of Scrum, and is using Visual Studio 2017 Enterprise edition. Failure to meet any of these prerequisites may result in a diminished learning experience.