Professional Scrum Developer Subject Areas

Modern Tooling and Practices for Scrum Development Teams

Process Domain

The Scrum Framework

Scrum theory includes time-boxing, and specific roles, rules, and artifacts. All elements of Scrum complement each other to form a consistent whole. All work is performed in Sprints. All base rules, events, and roles are described in the Scrum Guide, the acknowledged Scrum body of knowledge. Each part of Scrum ties back to the principles and theory.

This is foundational knowledge for every Scrum Team member and anyone involved with Scrum. A Professional Scrum Developer works effectively on a Development Team within the Scrum framework to deliver value in the form of working software at the end of every Sprint.

Suggested Reading
 The Scrum Guide

Scrum Theory and Principles

Scrum is founded on empirical process theory to deal with the complexity typical to software development. All principles and values of Scrum are based on the fundamental view of software development as creative and complex work.

Scrum Developers recognize and acknowledge this complexity. They can explain and promote the use of concurrency, self-organization and modern, agile software development techniques as an answer to this problem of complexity.

Suggested Reading
Agile Project Management With Scrum book The Art of Agile Development book The Pragmatic Programmer From Journeyman to Master book

Cross-functional, Self-organizing Development

Development Teams in Scrum are self-organizing. Self-organization requires not only the availability of the right development skills, but also collaboration, team commitment, joint problem ownership, shared goals and creativity. A Development team autonomously makes all decisions on how to do the work that it has forecast it could complete in a Sprint.

Suggested Reading
Scrum and XP from the trenches book Practices of an Agile Developer book Peopleware Productive Projects and Teams (Second-Edition) book

Productivity Domain

Analysis

Creating great software includes understanding the needs of users, stakeholders and the market place. In today’s highly complex markets with many unpredictable changes, details are added to requirements last minute, and even while programming. A Development Team and the Product Owner collaborate on the software expectations in creating, clarifying, and estimating items in the Product Backlog.

Suggested Reading
Agile Estimating And Planning book

Emergent Architecture

Scrum has an iterative-incremental approach to software development and the focus is on shippable software at the end of every Sprint. In the domains of software design and architecture this leads to a major shift, i.e. from prescriptive and upfront to emergence. Designs and architectures grow and change as applications and products grow and change.

Suggested Reading
Design Patterns book Beyond Software Architecture Growing Object Oriented Software, Guided by Tests book

Programming

As part of incremental development, Scrum puts quality before scope. Writing high quality code is an art in itself. It requires skills, dedication, mastery, agreed practices, and agreed standards.

Suggested Reading
The Clean Coder A Code of Conduct for Professional Programmers book Agile Software Development Principles Patterns and Practices book

Test First Development

It is considered a good agile development practice to think through requirements before writing functional code. It helps to consider work in terms of how it will be tested, but it also creates and improves traceability and eliminates other wasteful activities that are traditionally part of upfront requirements specification processes.

Suggested Reading
Test Driven Development By Example book The Art Of Unit Testing book

Quality Domain

Standards

Scrum Development Teams work against company, development and organizational standards. Such standards provide guidance. The Scrum Development Teams decide on the actual implementation, thereby respecting the standards.

Suggested Reading

Testing

The ability to deliver shippable software by the end of every Sprint requires different testing strategies, where testing activities are to be done as part of development.

Suggested Reading
Agile Testing book Continuous Integration Improving Software Quality and Reducing Risk book Working Effectively with Legacy Code by Michael Feather book

ALM - Application Lifecycle Management

What a Scrum Development Team must know about ALM (‘Application Lifecycle Management’). Mind the .NET specific background of some of these!

Suggested Reading
Professional Scrum Development with Microsoft Visual Studio 2012 book Visual Studio Team Foundation Server 2012 Adopting Agile Software Practices From Backlog to Continuous Feedback 3rd Edition Microsoft Windows Development Series book Continuous Delivery Reliable Software Releases through Build, Test, and Deployment Automation book
Feedback