Adopting any new practice or skill takes much more than just a few hours in a classroom. It takes practice, patience, and perseverance. And sometimes it helps to have an expert by your side who understands the results you want and can help guide you in achieving your goals.
Immersive Coaching
We work with teams and individuals to help them accelerate learning and adoption of effective practices. Our coaches are both expert-level hands-on-the-keyboard practitioners and also trained facilitators and teachers. As a result, they're in a unique position to help your team improve.
We follow an immersive coaching model. We sit with the team, typically pairing with individuals on their hands-on work. We attend team meetings such as the daily standup, sprint planning meetings, etc. Where appropriate, we facilitate group discussions. As we work with the team, we offer observations and suggestions.
Long Term Partnership
Even after the initial engagement is over, we remain available to the team remotely (via email and phone) to answer questions and offer advice. If we feel it's appropriate, we can also conduct virtual coaching sessions via teleconference.
Here are some of the things we can help your teams do...
Improve Quality within an Agile Context
Many organizations transitioning to an Agile process find that the promised quality improvements elude them. This is particularly common among organizations that embrace the project management related Agile practices but not the disciplined engineering practices associated with Agile such as Test Driven Development, Continuous Integration, and Paired Programming. However, a lack of TDD, CI, or Pairing isn't always the problem. Sometimes the problems have less to do with the engineering practices and more to do with stakeholder engagement and alignment, with how the team defines "Done," or with a high level of technical debt from existing legacy code.
We work with the team and key business stakeholders to characterize the issues affecting quality, identify areas of concern, and improve results one step at a time.
Integrating the Testing Effort
Agile transitions are particularly challenging for traditionally structured organizations where QA and Development are two separate departments. In such organizations, QA typically is most active toward the end of a release cycle as the testing effort ramps up. Frequently such QA groups optimized the way they work to support the frantic pace of test-last development. However, the same practices that enabled these QA groups to survive and even thrive in a phased development methodology are an impediment to progress in Agile.
We work with the whole organization including testers, programmers, and business stakeholders to integrate testing-related activities throughout the development cycle starting from the very beginning. We examine existing practices including metrics to identify systemic incentives that are interfering with integrating the testing effort with the rest of the development effort. Along the way, we help identify opportunities to increase the rate of feedback and we help instill the whole team with a healthy obsession with testing.
Test Automation
Automated tests should be powerful, reliable, and maintainable. Unfortunately, too many automated tests are weak, error-prone, and fragile. We help organizations improve their test automation. We can assist in laying out an overall test automation strategy, with choosing tools, and with creating robust tests.
Adopt Acceptance Test Driven Development (ATDD)
At the simplest level Acceptance Test Driven Development just means beginning with the end in mind. It's a powerful approach to drive out ambiguity early and increase alignment among stakeholders. When we include the technical practices associated with automating the acceptance tests, ATDD also results in a fully automated suite of regression tests that act as executable specifications.
However, adopting the practice requires the collaboration and commitment of the whole team. For most organizations, adopting ATDD involves far-reaching changes in every stage of software development from eliciting requirements through delivery for acceptance. As simple as ATDD sounds in theory, organizations often discover that the changes necessary to fully embrace the practice touch every aspect of their process.
Adopt Exploratory Testing
Teams that are accustomed to scripted manual testing can understand the theory of Exploratory Testing and still have a difficult time applying it in their context. We work with the whole team to find ways to identify charters and to start exploring sooner, and we work with individual testers to improve their analysis and observation skills so that they become more adept at exploring.
