Program Overview: TWO Days of Training and Coaching Workshop
This 2 days training is to give engineering teams an overview of the most popular engineering practices under the agile umbrella. We can extend this to a 3 day training if specific practices need more focus.
Day 1
Delivery lifecycle in an Agile project
Introducing XP
- Fine-scale feedback
- Pair programming
- Planning game
- Test-driven development
- Whole team
- Continuous process
- Continuous integration
- Refactoring or design improvement
- Small releases
- Shared understanding
- Coding standards
- Collective code ownership
- Simple design
- System metaphor
- Programmer welfare
- Sustainable pace
Test Automation
- Test pyramid
- SOLID principles
- Unit testing through Junit
- Junit idioms and patterns
- What is Agile testing?
- Functional test automation through Selenium
Day 2
Test Driven Development
- Introduction to TDD
- Test First Vs Test Last
- TDD Rhythm: Red, Green, Refactor
- Crucial Design Principles
- TDD and Design
- Avatars of TDD
Executable Specification (ATDD/BDD)
- Crafting acceptance criteria for user stories
- Writing executable examples for each criterion
- Demo of BDD frameworks (Cucumber, FitNesse, SpecFlow, Jasmine)
Continuous Integration and Continuous Inspection
- Automated static code review with Maven plugins and Jenkins
- SonarQube based continuous inspection
Continuous Delivery vs Continuous Deployment
Distributed Version Control Systems (git) and branching
- Trunk based development
- Feature toggle
- Feature branch based development
- Trunk based development vs feature branch
Non functional testing in Agile project
- Performance testing
- Security testing
Terms and Conditions:
Number of participant/trainees in a batch should not exceed 20 people.
Method of Instruction
- Interactive Dialogues, Programming Exercises, Demos, and Instructional Games
Target Audience
- Primary: Sr. Object-Oriented Programmers, Architects, and Designers
- Secondary: Technical Managers, Testers
Course Level
- Intermediate to Advanced
Course Prerequisites
- Required: some understanding of OO concepts and an OO language
- Highly Recommended: basic understanding of the life-cycle of software projects
General Requirements
To ensure a successful class, we require the following facilities:
- VGA projector (1024×768 minimum) & Projector screen
- 1 White board & Dry erase markers
- Cluster seating with 5-6 people on each table
- 1 Flip chart with the stand and marker pens for each table
- Notepad and Pen for each participant
- Ample room for students in terms of room size and set up
- For Dev trainings: at least one powerful workstation between two programmers
Development Tools
- Latest Java JDK
- Latest Standard EclipseOR IntelliJ Idea
- JUnit, Mockito, JBehave, FitNesseor Cucumber JVM