Certified Scrum Developers have demonstrated, through a combination of formal training and a technical skills assessment, that they have a working understanding of Scrum principles and have learned specialized Agile engineering skills.

The Certified Scrum Developer® course is aimed at software developers (programmers) who are building software in a Scrum environment.

The goal is to expose students to the most important tools and techniques that need to be applied in order to build good software in the iterative and incremental fashion that Scrum requires. These ideas are central to the entire field of Agile software development.

Objectives:

By the completion of the CSD course, the learner will be able to perform test-driven development, acceptance test-driven development, refactoring, and continuous integration in a course-provided sandbox situation. The learner will be familiar with the terms and practices involved, and with why these practices are important. They will have taken the first steps toward becoming expert in Scrum-style iterative and incremental development.
By the completion of the CSD course, the learner will be able to:

Test-Driven Development – A study of test-first development, including but not limited to, the following concepts:

Describe Test-Driven Development (TDD) as a design approach.

Review the steps of the red-green-refactor cycle.

Explain, using examples, at least three unit testing principles and practices.

Outline five qualities of a good test.

Describe how to measure test effectiveness.

Architecture and Design – Study of architecture and design, focusing primarily on the principles that better enable testability and ease of refactoring, including but not limited to, the following key concepts:

Outline at least three principles of architecture in an Agile environment.

Design at least one practice on an Agile team.

Outline at least two principles that enable testability and ease of refactoring.

Explain, using examples, “responding to change over following a plan.”

Scrum – Study of Scrum principles and practices, including but not limited to, the following key concepts:

Define Scrum roles, activities, and artifacts.

Outline the process of working with a product backlog and a sprint backlog.

Define a sprint.

Describe the process of defining “Done.”

Collaboration – An in-depth look at the way Agile teams work together. This might include, but is not limited to, the following concepts:

Describe “working together as one team.”

Describe how to “include the customer” in the process.

Define pair programming.

Refactoring – An introduction to the practice of refactoring, including but not limited to, the following concepts:

Describe when to refactor.

Outline refactoring for maintainability.

Define refactoring to patterns.

Continuous Integration – An introduction to the key practices of continuous integration, including but not limited to, the following key concepts:

Define a single command build.

Summarize how to create a build that is automated, self-testing,and fast.

Describe the importance of a single-source repository.

Define increasing visibility and automating deployment.

Destinatários

The course is appropriate for individual software developers and testers, as well as development team members who want to experience Agile development for the first time, or to sharpen their skills in Agile.

Software Development Managers

Software Development Architects

Software Developers

Software Coders

Software Testers

Team Leaders.

Pré-Requisitos

The candidates for this course should generally be programmers in a conventional programming language such as Java, C#, Swift, C++, Ruby, and so on. The course involves actual programming in a team environment. Some courses offer student slots to testers, who should have some experience with test automation. Some also accommodate Product Owners, who will help direct the iterations that the programmers and testers experience during the course. This notwithstanding, the course is a programming course, not a survey, overview, or discussion. Actual code will be written, tested, and reviewed by the instructors.

Be a Certified Scrum Master (CSM), which students can do it before or after the CSD

Metodologia

The first day begins with a demonstration of pair-programming and test-driven development and an overview of Fitnesse. After this, we move on to the laboratory project that will be the basis for the rest of the course.

After an introduction to the problem and its associated backlog, each team will conduct a Sprint Planning meeting and begin work. At the conclusion of each ninety minute Sprint, each team will review their completed features with the rest of the class and then conduct a Sprint Retrospective.

During each Sprint Review, the instructor will review each team’s application and test code. He will focus on two areas, the relationship between a module and its tests, and the design and structure of the code. It has been understood for over forty years that high quality software is composed of loosely coupled modules of highly cohesive code. These attributes are, to the skilled observer, obvious in the source code and will be the basis of most of the discussion during the code review.

The course proceeds with planning, sprint execution, review, and retrospective (and a short lecture here and there) until the afternoon of the last day. The course concludes with a course review, retrospective, and plenty of time for questions and answers.