Certified Scrum Developer Workshop
business and technical product analysts, project managers, software engineers/programmers, development and project managers, product managers and analysts, QA engineers
Please contact us for information about prerequisites.
After teams have been exposed to the principles of Scrum, they are left wondering about the more technical aspects of software development and delivery and how these areas fit into an iterative approach. This course extends important Scrum principles to their logical applications in several technical, foundational areas of software development.
Borrowing from a variety of Agile disciplines, the course will introduce and explain a wide range of available tools and techniques that can offer team flexibility in their Agile approach. Each subject area is accompanied by real-world examples of how they have been used in the past and the success criteria for each instance.
Based on the understanding that theory and principles solidify into practices and habits through experience, the course is comprised of numerous hands-on exercises that demonstrate the use and benefit of each practice area and technique. You will not only understand the mechanics of each technique, but you will also participate in the discovery and discussion of how to ensure the creation of value in your organization.
The goal of this workshop is to put to use what you learned through books and lectures to determine how to utilize that knowledge, including how to ensure that your team is improving over time. With this proven approach, you will leave the class with practical knowledge and a clear roadmap for your team’s success.
This course is approved for the Certified Scrum Developer (CSD) certification from the Scrum Alliance.
1. Agile Principles and Practices
2. Feedback and Planning
- Triple Constraints
- Five Levels of Planning
- User Stories
- Relative Sizing
- Sprint Execution
- Sprint Demo
- Team Retrospective
- Customer Collaboration
- Team Collaboration
- Pair Programming and Pairing
4. Architecture, Design, and Shared Understanding
- Architecture as a Concern
- Design Principles
- Coding Standards
- Collective Code Ownership
- Simple Design
- System Metaphor
- Testability as a Driving Concern
5. Test Driven Development (TDD)
- Test First vs. Test Last
- TDD Rhythm: Red, Green, Refactor
- TDD influence on Design
- Unit Testing Principles
- Safety Net of Tests
- Refactoring Patterns
- Refactoring for Maintainability
7. Continuous Integration
- Attitude of Continuous Integration
- How and Why You Must Develop a Single Command Line Build
- Automating the Build
- The 10-Minute Build
- Benefits and Practices of Continuous Integration
8. Testing Practices
- Testing Quadrants
- Unit Tests
- Integration Tests
- Acceptance Tests
- Functional Tests
9. Acceptance Testing
- Acceptance Criteria
- Writing Acceptance Tests
- Acceptance Test Driven Development
- Automating Acceptance Tests
10. Adopting Scrum Developer Practices
- Recap Essential Scrum Developer Practices
- Team Ground Rules to Start off on the Right Foot
- Develop a Roadmap Leveraging Scrum Developer Practices
Exercise 1: Defining Our Challenge
Course participants will openly discuss challenges facing their current development teams. We will discuss common myths and misperceptions of both the Agile discipline and the Agile developer.
Exercise 2: Feedback and Continuous Improvement
Course participants will work through a set of exercises aimed at reinforcing the importance of feedback throughout the lifecycle of an Agile project from requirements to execution.
Exercise 3: Self-Organizing Teams
Through a series of interactive exercises, course participants will experience the chaos created by individuals without common goals. Ultimately the team will be allowed to self-organize with minimal direction and experience the harmony and balance of a self-organized team.
Exercise 4: Pairing
Using the techniques introduced by pair programming, course participants will solve a problem in pairs. This exercise will demonstrate the value and effectiveness of pairing to develop better solutions and to increase shared knowledge of the team.
Exercise 5: Coding Standards
Course participants will discuss thoughts and current practices regarding coding standards. Instructor will provide a working software example for the team to evaluate in the absence of coding standards. The class will discuss the potential waste effort that can exist in the absence of coding standards. Course participants will then work in teams to develop a simple set of coding standards. After applying the agreed upon coding standards they will look at the inherent benefits.
Exercise 6: Test Driven Development
Using Test Driven Development (TDD), course participants will develop a Test List and follow the TDD Red, Green, Refactor cycle to develop software and meet the instructor’s requirements. Course participants will experience the cadence and rhythm of the TDD process.
Exercise 7: Refactoring
Instructor will provide working software and a test suite of unit tests. Using refactoring methods and patterns, course participants will incrementally refactor the software to achieve a simpler design and increase quality and maintainability.
Exercise 8: Continuous Integration
Participants will define and execute a Continuous Integration process using a popular open-source Continuous Integration product. This exercise will reinforce the key tenants and practices of Continuous Integration and serve as a discussion opportunity on how to effectively utilize and leverage Continuous Integration to support the developer and the team.
Exercise 9: Acceptance Testing
Course participants will develop a set of Acceptance Tests (Story Tests) from a sample set of User Stories containing Acceptance Criteria. Using Acceptance Test Driven Development (ATDD), course participants will use these Acceptance Tests to drive development of the sample User Stories.
Exercise 10: Create a Roadmap and Action Plan
Course participants will prioritize the Agile engineering practices that they might want to introduce to their current projects, teams, and organizations. Using the three highest priority concepts, course participants will create a plan to bring these practices into action. The class will compare and discuss action plans.