Essential Practices for Agile Teams
About This Course
- Describe 2 agile software development methodologies
- Apply user story technique to capture user requirements
- Develop a software product using pair programming technique
- Develop a software product using Test Driven Development approach
- Apply a set of emergent design principles to produce evolving architecture
- Apply four refactoring techniques after identifying code smells to improve code quality
- Build a Continuous Integration system to integrate the test-driven development application
What You'll Learn
This course covers the most important engineering approaches for the sustained success of teams practicing agile methodology such as Scrum. The practices covered include test driven development, pair programming, refactoring, agile architecture, continuous integration and user stories. These practices will help participant to learn how to develop application based on design specifications, including coding, testing, debugging and reviewing and refining across the agile application development lifecycle.
Participants are taught both the ideas and practical matters via lectures and hands-on sessions. The lecture sessions will be interlaced with actual design and code samples, while the hand-on sessions and exercises are designed to help the participant assimilate the knowledge in a clear and practical way.
The hands-on sessions will include the following:
• Writing user stories
• Test-driven development with pair programming
• Refactoring codes with code smells
• Setting up a Continuous Integration environment
At the end of the course, the participants will be immersed in an actual coding session to apply all the concepts in a mini project setting together. This will include applying techniques planning poker (agile estimation) and end-to-end sprint process (sprint planning, sprint, sprint review and sprint retrospective).
Entry Requirements
Participants should have experience in at least one cycle of the software development and familiar with at least one programming language (preferably Java).
It is also preferred that participants have at least one year prior experience in software development in technical role. Since Java is used as the language in the coding session, participants need to be comfortable in writing Java code together with a partner who may be versed in the programming language.