Scrum Software Developer Essentials
This immersive hands-on software developer training course presents key developer practices from Scrum and Extreme Programming (XP) that will enable you to build higher-quality software more rapidly and with fewer defects, and make you a more valuable contributor on any development team.
You’ll learn essential practices and expert techniques that support the creation of more maintainable, extensible software. You’ll see how test-first development informs design decisions, and gain the tools for exploring the best design trade-offs for the tasks at hand. You’ll discover the secrets to finding patterns in problems, find easy ways to identify abstractions, and master several techniques for emerging designs.
The course includes six hands-on programming labs in which you’ll get to demonstrate the techniques you’ve learned by building a system and seeing your design unfold. Examples apply to any programming language and the exercises can be done using Java or C Sharp. By the end of class, you will have a thorough understanding of how to use Scrum to improve your software development, along with the knowledge and skills to make it happen.
Completing this Extreme Programming training course will give you a deeper understanding of how to build higher-quality software on a Scrum development team and enable you to:
- Employ expert techniques for analysis and design
- Read and write the most useful UML diagrams
- Estimate development tasks more accurately
- Deliver valuable software in sprints
- Create flexible designs that can be easily changed
- Apply simple strategies for refactoring legacy code
- Identify code qualities that improve maintainability
- Recognize pathologies in code and how to fix them
- Experience emerging designs using test-first development
Who Should Take This Course
This course is for all team members, and has the greatest impact when the entire team attends. This course will benefit Architects, DBAs, Designers, Developers, Development Managers, Directors, Product Managers, Programmers, QA Engineers, Software Engineers, Technical Analysts, Technical Leads, Technical Writers, and Testers. Familiarity with basic Object-Oriented (OO) concepts and terminology is recommended. Those who participate in the programming exercises and fulfill the additional training requirements are eligible to become Certified Scrum Developers and require the ability to write simple programs in Java or C Sharp.
SESSION 1 & 2: ANALYSIS
- Introduction: Scrum versus Waterfall development
- Development Essentials: Scrum and XP practices
- Test-Driven Development: TDD driving design
- Lab 1: “Iteration Zero—Intro and set up of case study
- Lab 2: “Coding Test First—Experiencing TDD
SESSION 3 & 4: DESIGN
- Design Review: Group discussion of previous day’s labs
- CREATE Code Qualities: Critical code qualities; recognizing and getting more out of them
- Development Practices: Simple techniques of rapidly building quality software
- Lab 3: “Adding Optional Behaviors—Using requirements to find patterns in problems
- Lab 4: “Encapsulating Complex Business Rules—Using compound patterns
SESSION 5 & 6: DEVELOPMENT
- Design Review: Group discussion of the patterns in the previous day’s labs
- Testing Techniques: Advanced techniques for writing more-testable software
- Refactoring and Emerging Systems: Techniques for refactoring legacy code
- Lab 5: “Refactoring Legacy Code—How to clean up code by identifying code smells
- Lab 6: “Mocks and Shunts—Techniques for writing mocks and injecting dependencies
- Review of Key Concepts; Concluding Remarks
Your Instructor, David Bernstein
My continuing passion for software design and construction has led me to train more than 8,000 developers in the last twenty-six years for clients that have included Fortune 500 firms such as Microsoft, IBM, Yahoo!, Boeing, AT&T, Sprint, Medtronic, SunGard, State Farm, MetLife and Weyerhaeuser. As a longtime IBM consultant, I trained software engineers around the globe, giving them the skills to write the next generation of applications and operating system software while earning one of the highest satisfaction ratings in the history of IBM education. Since 2006, I’ve devoted my consulting practice to providing organizations with training and coaching for software developers and teams transitioning to Agile and Scrum.
“This was a great class! First, David distills a vast amount of Agile related information into successful practices with direct application in our work. Second, the hands-on labs get us over the learning hurdles of TDD implementation as quickly as humanly possible. Lastly, David is clearly passionate in his concern with the overall condition of code quality in the software industry. He will go to no end with his class, we voted to do two fourteen hour days to get the lab knowledge and David supported us and stayed with us the whole time. Thank you!
—Mike Jassmann, IT Manager
“Not knowing what the latest tools to use or books to read, this class allowed us to understand the latest practices and tools and how to apply them in our current working environment.”
—Doug Parris, Senior Software Engineer
“This is a great class that will start you on the path to becoming a great programmer and an invaluable asset to your company.”
—Vincent Quiles, Programmer Analyst
This course is part of our Certified Scrum Developer Essentials training, and satisfies the three-day technical training required to become a Certified Scrum Developer through the Scrum Alliance. This course counts for 24 Professional Development Units (PDUs). See Training FAQ for more details about this new certification.
View a pdf version of this course description.