Providing Technology Training and Mentoring For Modern Technology Adoption
The goal of this course is to take a team (Developers, DBAs, Build Engineers, Analysts, Testers, Developers, Architects) through Agile Technical Practices gleaned from methods such as eXtreme Programming (XP), Feature Driven Development (FDD), and best software design approaches that have been practiced for the past fifty years.
What software practices do you need to adopt to make hyper-adaptable, “Agile” software systems? One of the XP practices stands above all the rest, the practice built to include adaptation into your software systems. That central practice is refactoring. Almost every other practice exists to support refactoring. Pairing ,TDD, and Simple Design are the minute-by-minute behaviors that support refactoring. Small Releases, Continuous Integration (and modern Devops) includes the build process into your refactoring behavior. Code standards and System Metaphor are bigger picture items to support refactoring, while Collective Code Ownership, Sustainable Pace, Whole Team, and the Planning Game support the team to do refactoring. We cover them all. We will also include items that are missed in XP, such as best testing practices. What testing practices besides unit testing need to be included in a software process built around maintainable code? More than 99% of the testing needs to be automated, but what forms of automated testing do we need to work with? Functional end-to-end testing is required, but it's only the beginning. Service testing is different from Web testing, and the difference should be discussed. Performance and Load testing can be automated as well. Behavior Driven Development is another important developments in Agile that we will cover in this class. We will also include visual testing, including Perceptual Diffs. Teams will walk away with new Team Engineering Norms that they will apply to their projects.
CHAPTER 9. Quality Intro