Audience: agile teams. Provides hands-on experience with actually doing agile software development.
- Class size: 12 to 24
- Prerequisites: none for non-progammers; Programmers: six months or more development experience.
Pricing / Details
This four-day course is a hands-on experience with agile software development. Attendees learn about various agile practices, including techniques from extreme programming (XP) and Scrum. Techniques are taught through a series of group and programming exercises that demonstrate how each core practice actually works. Students will learn how to mesh these practices into a complete and coherent process.
Only programmers attend the first two days of this course, learning the fundamental technical practices that help teams sustain agile, and their systems, over time. Developers will learn a solid foundation for TDD and refactoring. They'll learn how to continuously pay attention to design in an agile process.
The remainder of the agile team joins with the programmers for the second half of the course. At that point, the entire team learns all about the planning game and other core agile principles through a series of exercises. Finally, the entire team plans and executes one or more iterations.
Attendees should be prepared to work as part of a team. All developer exercises are executed with two people actively pair-developing at single workstations.
Course outline: Days 1-2: programmers Overview Pair programming TDD fundamentals TDD dependencies: mocks/test doubles Simple design Test smells Refactoring Coding standards Continuous integration Automating acceptance tests in FitNesse Days 3-4: All Planning Stories INVEST Estimation Relative sizing Planning Poker Release planning / product backlog Sprint / Iteration planning Design and task breakdown Sprint / Iteration retrospectives Acceptance tests Design in agile Teamwork practices Open workspace Pairing (revisited) Daily standup Sustainable pace The Customer team Mini-iteration: Overview Team assignments Customer/stakeholder role Planning Execution Review/Retrospective Miscellaneous topics Coach/Scrum Master; other roles Metrics/tracking Open Q&A Wrap-up: Making Agile Work for You
Combining Scrum with proven agile programming techniques makes for an ideal development methodology. This winning agile combination is used in all kinds of software development shops, including Fortune 500 companies, dot-coms, product development companies, and government. When applied properly, agile software development results in dramatic improvements in software quality and ability to meet customer demand. Agile software development also gives developers a much greater opportunity to learn to work in a high-functioning, high-morale team. However, as with any way of doing development, agile can be executed poorly.
Applied Agile teaches you and your development team how to make agile work for your shop. We know what works and what does not, based on several years experience applying agile in many different environments. We will teach you not only the basics of agile, but the pitfalls to watch out for. We take a very pragmatic approach, and will teach you when and how to tailor agile practices for your shop.
Jeff Langr at LinkedIn
News: Beta Publication of Modern C++ Programming with TDD
New blog post, "A Story Isn't a Feature"
New blog post, "C++11: Using Lambdas to Support a Times-Repeat Loop"
New blog post, "C++11 Via TFL (Test-Focused Learning): The Range-Based For Loop"