Scrum Software Developer Essentials
This immersive hands-on training 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 tradeoffs 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 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 training is for all technical team members, and has the greatest impact when the entire technical team can attend. This course will benefit architects; designers; developers; development managers; product managers; software engineers/programmers; testers; technical analysts; technical leads; and QA engineers. 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 for becoming 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 0” – 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 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
David Bernstein’s continuing passion for software design and construction has led him to train more than 7,500 developers in the last 23 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, David 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. In the past five years, he has specialized in providing organizations with training in Agile software-development skills.
Praise for this Training
“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 14 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.
Become a more proficient developer—Register for our next session of the Certified Scrum Developer Essentials training or contact me to arrange a private, on-site session for your team.
View a pdf version of this course description.