
COURSE 5455 | 3-day SESSION
Hands-On Extreme Programming Workshop
Turn the cluttered practice of software development into a cohesive, simple process using Extreme Programming (XP)
Extreme Programming is the most prominent of the Agile Software development methodologies. This course will provide you with a working knowledge of the various facets, practices and principals of the Extreme Programming approach. Upon completion, you will have the knowledge and confidence to determine how XP can be utilized in your development environment, as well as the experience to begin programming using XP.
This course is a combination of lecture and hands-on workshops that will prepare you for an XP environment. You will learn:
- The relationship between cost, time, quality, and scope for software development projects
- How a well organized team can deliver high quality products on time, regularly
- The value of feedback mechanisms and how to use them to improve the way development teams operate
- Tools to increase and improve communication and knowledge sharing among participants in a software development team
- Why breaking big things down into smaller things helps manage risk
- The difference between predictive and adaptive processes, and why embracing change is a good thing
- Strategies for planning based on past performance
- Techniques for estimating software development tasks
- Software testing approaches that focus on communicating expectations at high and low levels
- The principles and practices of Extreme Programming
Three days of intense, real-world experience
This course is an intensive three-day experience for developers, QA personnel, Business Analysts, and Project Managers. The teams participate in the specification, estimating, planning, development, and testing of a real software project. The course is punctuated by lecture, demonstration, and discussion; but the final day is spent completing a project under the guidance of the instructors.
Create a well-defined picture, encompassing requirements, use cases, and acceptable tests
In the end students gain a breadth of understanding sufficient to see the bigger picture, and are ready to begin to gain depth of experience and tutelage. Managers understand the dynamics of coaching an Agile team. Programmers and testers gain practical experience in using Agile practices such as continuous integration and test, test driven development, paired programming, and re-factoring. Customers and business analysts learn how to create well-defined requirements, use cases, and acceptance tests.
Complete a Hands-On Extreme Programming Project, live in class
The final day of class will be spent completing a real coding project. You will be using Java to build an event-scheduling application. The hands-on labs will include, but not be limited to:
- Story-driven development
- Estimation
- Understanding Scope
- Estimation
- Interdependencies
- Release Planning
- Stand-up Meetings
- Paired Programming
- Automated Testing
- Acceptance Testing
- Unit Testing
- Refactoring
*Since these labs include live coding, some experience with Java or a similar object-oriented language is required to complete the project.
20 Immediate Benefits of Participating in this Workshop
- Attendees will understand how to organize the responsibilities of a software development project according to the customer, developer, and manager roles
- What kind of authority needs to be allocated among the team roles
- Awareness of the story-driven workflow
- Knowledge of good story characteristics
- How to organize a teams development schedule into iterations
- The rules of "The Planning Game" in XP
- The goals of release and iteration planning
- How to estimate level of effort at the story and task level
- How to break feature requests (stories) down into development tasks
- A technique for measuring a team's development "velocity"
- How to do load-balancing to prevent overcommitment
- A format for daily communication ("stand-up" meetings)
- The principles of test-driven development
- When to write and run automated tests
- Awareness of what to test and how
- Experience with both roles in a pair programming team
- Techniques for improving code quality by removing duplication and promoting simple designs
- The value of continuous integration
- How demonstrating new features can improve customer confidence as well as find unexpected behaviors
- How to adapt, evolve, and improve a development process to best fit the needs of a software team












