The Technical Basics course is three days that provide the full Scrum/Agile experience, including planning, guidance, development, and testing. With very little lecture, the course takes development teams through several full iterations of a realistic sample product development. Participants will gain experience with all the central aspects of Agile software development, including iteration and release planning, test-driven development, pair programming, refactoring , simple design, and automated customer (acceptance) testing.
The course is appropriate for individual software developers and testers, as well as development teams who want to experience Agile development for the first time, or to sharpen their skills in Agile.
The class will be formed into teams of four to six developers plus one to two testers (if available). Each team will have the option of working in either JAVA/Eclipse or C#/Visual Studio. We will use Fitnesse for automated acceptance testing.
Upon completion, participants will have completed the Technical Basics requirement for the Scrum Alliance’s Certified Scrum Developer® designation.
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.