This program introduces Agile Values & Principles, Scrum Framework, Acceptance Test Driven Development, Behavior Driven Development, Test Driven Development, Refactoring, Emergent Design, Agile Architecture, Collaboration, and refactoring techniques to the audience and follows a life cycle approach where participants get to learn how to practice these in real life projects. Participants learn to implement TDD on a project developing in either java, .net, ruby, python or C++ framework. Workshop also covers how to effectively work on legacy code and break dependencies. Expected business outcome is readable, maintainable code going forward as well reduction is defects.
Key Learning Outcomes
• Introduction to Scrum Framework, Elements of Scrum
• Test Driven Development – why, what and how
• TDD Cycle – Red, Green and Refactor
• Drive the development (design and implementation) of a User Story
• Learn concept of Emergent Design and why emergent design
• How TDD helps you design software
• Why testing first is better than testing after
• Overview of Refactoring, Clean Code principle and Refactoring to Patterns
• Software design – going deeper in SOLID design Principles
• How to use mocking frameworks
• Behavior Driven Development using SpecFlow/Cucumber
• Specification by Examples using Gherkin language
• Writing Scenarios and Scenario Outlines
• Preparing Steps using xUnit framework
• Difference between TDD and BDD
• How to setup BDD practices within Scrum team