|
|
|
You Will Learn How To
- Deliver adaptable software more quickly using Agile methodologies such as XP and Scrum
- Capture user stories, estimate work and plan iterations, sprints and releases
- Minimize bugs and maximize productivity with test-driven development
- Refactor existing code for easier maintenance and improved design
- Craft quality designs by adopting established coding principles and design patterns
- Facilitate team communication with stand-up meetings, iteration reviews and retrospectives
Course Benefits Saving time and money on software development is crucial to being competitive. Agile methodologies, including Scrum and XP, reduce cost, increase quality and speed time to market. In this course, you gain a solid foundation in Agile programming principles. Through an immersive case study, you acquire practical knowledge and skills to plan, code and implement an Agile software project using methodologies like XP and Scrum.
Who Should Attend This course is valuable for anyone working on a software development team including analysts, designers, programmers, testers and technical managers. An understanding of basic software engineering practices and development experience are assumed.

Throughout this course, experiential and PC-based activities immerse you in an authentic Agile programming project simulation. You perform critical tasks, including:
- Meeting with customers to generate user stories
- Estimating and prioritizing user stories
- Attending a spike session to learn new technology
- Writing tests and code to bring user stories to life
- Refactoring to remove code smells for elegant design
- Implementing an adaptable architecture through design patterns
- Delivering software in frequent iterations using XP or Scrum
- Conducting sprint reviews and retrospectives to facilitate learning
Course 931 Content Introduction and Overview
- Adopting the best practices of the Agile Manifesto
- Comparing plan-driven and Agile software methodologies
- Identifying Agile best practices and process steps
Planning an Agile Release
Establishing the Agile project
- Recognizing the structure of an Agile team
- Programmers
- Managers
- Customers
- Building cross-functional teams
Developing a foundation with user stories
- Eliciting application requirements
- Capturing user stories
- Recognizing good user stories
Estimating
- Defining an estimation unit
- Estimating relative work
- Calculating team velocity
- Refining the budget based on velocity
Planning releases, iterations and sprints
- The planning game
- Establishing an iteration budget
- Prioritizing user stories
- Creating product and sprint backlogs
- Managing scope creep
Comparing Scrum and XP
- Scrum Master
- Product Owner
- Scrum Team
Crafting Adaptive Software through Test-Driven Development
Driving the design process with automated testing
- Programming automated tests
- Validating user stories with user acceptance tests
- Writing code based on the tests
Integrating unit testing
- Developing effective test suites
- Drafting unit tests that are simple, isolated and fast
- Isolating classes for effective testing
- Creating mock objects for testing
Refactoring for Elegant Design
Recognizing code smells
- Conditional logic
- Code duplication
- Code that needs comments
Cleaning code with refactoring
- Renaming fields and methods
- Extracting methods and base classes
- Designing for simplicity and reuse
Integrating Object-Oriented Programming Principles
Adopting the best practices principles
- Single Responsibility Principle (SRP)
- Open/Closed Principle (OCP)
- Dependency Inversion Principle (DIP)
- Liskov Substitution Principle (LSP)
- Interface Segregation Principle (ISP)
Evolving design from the bottom up
- Delegating class responsibilities
- Achieving polymorphic behaviour
- Preferring composition over inheritance
Simplifying Complex Architectural Problems Using Design Patterns
Defining design patterns
- Creational, Structural and Behavioural patterns
- Guaranteeing the correctness of an adaptable design
Integrating design patterns into the Agile process
- Template Method
- Adapter
- Strategy
- Singleton
- Factory Method
Finishing an Iteration
Reviewing an iteration or sprint
- Delivering the software
- Estimating subsequent iterations
- Adjusting budgets based on actual velocity
Conducting a sprint retrospective
- Brainstorming on what was learned
- Building an action plan to maximize productivity
- Incorporating Agile best practices and tools
|
<< Back to Software Engineering Course List
Related Courses
RealityPlus is a trademark of Learning Tree International.
|
|

Course Dates | Oct 20 - 22 | Ottawa enrol | | Nov 3 - 5 | Toronto enrol | US Dates | | Oct 13 - 15 | New York enrol | | Nov 10 - 12 | Rockville, MD enrol | | Jan 19 - 21 | Reston, VA enrol |
Attend highlighted events
in person or
online with Learning Tree AnyWareTM.
More Dates and Locations.
On-Site &
Custom Training
Bring this or any Learning Tree course to your location or have it customized for your organization.
|
|
|
|
"The hands-on aspect of a Learning Tree Course helps me understand how a technology works. If I make mistakes, I can take advantage of the fact that the instructor is there to help and answer questions. It's a good approach to see how things work and what I can do."
– S. Regimbal Veterans Affairs Canada
|
 |
 |
|
|