Choose your language:

France
Germany
Hong Kong
India
Ireland
Japan
Malaysia
Netherlands
New Zealand
Singapore
Sweden
United Kingdom
United States

Building Test-Driven Development Capability for a Large Development Team

FINANCIAL SERVICES | AGILE TRANSFORMATION ServiceS

Download PDF

TEKsystems developed and delivered a multifaceted learning program for a large financial services company around test-driven development, including content development, team and leadership training, coaching, informal educational activities, and a coach development program.

Client Profile

Our client is a Fortune 500 diversified financial services company that has been serving its customers for over 150 years. TEKsystems became a preferred training partner of the client’s in 2007. We began delivering Agile training in 2009 and became a preferred Agile vendor in 2014.

Industry Landscape

With the proliferation of applications, shorter development life cycles and growing security concerns, the importance of software quality has never been greater. To adapt to these new demands, developers are “shifting left”—they are becoming more involved in testing and including it as part of their development process.

Test-driven development (TDD) is an incremental software development approach that is common in Agile environments. TDD closely aligns coding, testing and design. In a TDD scenario, a developer first writes a test that fails, and then writes “just enough” code to make it work. Once the solution has sufficient code in place to make the test pass, additional effort goes into refactoring and improving the solution code. In short, TDD inspires simple, testable designs and provides visibility via feedback loops leading to fewer surprises during testing.

More organizations are seeking support to help their teams adopt Agile concepts and practices, including TDD, because the Agile mindset is a fundamental shift from traditional methodologies, e.g., Waterfall. However, to truly ensure new practices are understood and adopted, organizations need to invest in a comprehensive learning program that includes education (learning through structure), experience (learning through collaboration) and exposure (learning through practice), as well as coach development to build internal capacity.

Situation

Our client, a large financial services company, has invested heavily in transforming the culture of their software engineering teams toward an era of enhanced code quality, code coverage and testing through adoption of Agile practices. TEKsystems has supported the company’s Agile adoption efforts since 2009, and we became a preferred Agile training and coaching vendor in 2014.

One of the client’s software engineering teams was facing pressure to deliver higher quality software more quickly. The team is responsible for the company’s online and mobile retail platforms (e.g., digital banking, sales and marketing, fraud protection). The large team consisted of developers with diverse skill sets, such as iOS, .NET, Java, Android, JavaScript and database. The size and scope of the team’s work sometimes led to inconsistent meeting of timelines, quality and deliverables. They recognized a need to pursue higher quality but did not know how to get there.

Enterprise-wide, the company was focused on speed to market, and TDD was a critical component of that initiative. The team believed adoption of TDD would allow them to achieve their speed-to-market, consistency and quality goals.

Without TDD subject matter expertise internally, the team looked to external support. They were aware of TEKsystems Agile Transformation Services because of our position as a preferred Agile vendor with the company, as well as our success in helping several other teams adopt Agile practices. The team initially approached TEKsystems to deliver instructor-led TDD training for leaders and some of their developers.

Solution

We first met with the client’s team to get a better understanding of their needs to develop a TDD training program that would help them achieve their goals. Over multiple discussions it became apparent that instructor-led training would only help with the education aspect of TDD. To fully achieve their adoption goals, team members would need a comprehensive program that included classroom training, coaching and practice. They would also need to build internal capacity to ensure sustained success, i.e., building internal coaches.

TEKsystems proposed building and executing a multifaceted learning program to help their team adopt TDD and achieve a culture of sustainable TDD success. The program would involve team member and management training and hands-on practice, as well as building internal training and coaching capabilities for self-sufficiency and sustainable adoption, as the client did not want to be reliant on an external vendor long term.

The multifaceted program would entail:

  • Classroom training: TEKsystems would create and deliver client-specific content for instructor-led training, including a three-day workshop for developers and a half-day TDD overview course for managers.
  • Coaching: A TEKsystems coach would engage directly with teams and individuals, helping them to apply TDD to their projects.
  • Informal learning and collaboration: Group learning exercises and self-paced activities would provide additional opportunities to practice TDD outside a classroom setting. These exercises and activities would build on the concepts taught during training. Hands-on experience would help skills become more ingrained.
    • Dojo: This is a learning space to practice TDD coding, where one or two candidate coaches (i.e., developers training to be internal coaches on the client’s team) would help a group of about 10 students. The group would use a projector to create a shared coding experience. Each member of the group would take a turn pair-programming with the coach. They would each have a chance to write 10 to 15 test cases to further refine skills and gain experience. The pairing sessions would be kept short and allow everyone to rotate through the pairing multiple times. All attendees would be kept engaged and have the opportunity to both code and observe.
    • Katas: Katas, or self-paced exercises, would provide further opportunities to practice TDD. Since there were more than 250 developers, and only one TEKsystems coach, Katas would help scale knowledge and provide more practice opportunities. Katas, which were expected to take about 30 minutes, would be distributed post-training and students would have a few days to work on the Kata. Once the Katas were completed, the students would send the solution back to the TEKsystems coach and candidate coaches for feedback.
  • Coach-the-coach: TEKsystems would develop the client’s internal TDD capabilities by developing TDD coaches within their team. The program would involve mentoring and coach-the-coach sessions. The focus would be on enhancing TDD, coaching and facilitation skills.
  • Measurement: TEKsystems would establish opportunities for measurement and informal recognition (e.g., coffee gift cards for completion of Katas, emails to leadership when team members stand out for positive work and progress).

Results

The client chose TEKsystems to develop and execute the multifaceted TDD learning program. TEKsystems trained over 250 developers and approximately 50 managers on TDD. Our blended team included a coach with training experience and TDD subject matter expertise, an instructional designer and applications experts out of our Montreal Innovation Centre. The experts provided guidance and support for the different technology stacks that the client used (Java, .NET, JavaScript, iOS, Android and Database).

Our program helped increase excitement and sustain momentum with TDD adoption across their team. The client has seen continued growth with adoption of TDD practices amongst developers who are leveraging TDD to drive better designs that are simpler, higher quality, and have improved maintainability and extensibility. The team has increased visibility and transparency into their work, and improved planning and predictability via automated test execution. Moreover, we helped improve quality by reworking and enhancing quality assurance (QA) during development. With the development team sharing some of that burden, they will ultimately be able to go faster.

More than 45 developers have gone through the coach-the-coach program. The candidate coaches were identified by client management as people they wanted supporting the rest of the development team. The client’s internal coaches are now leading TDD training and coaching sessions on their own.

Because of the content and structure we built, the client has the internal capability to sustain TDD education for future employees. TEKsystems is now working to help the team with their overall Agile transformation.

Key Success Factors

Cross-practice Collaboration

TEKsystems Global Services provided a comprehensive solution that truly addressed the customer’s needs by leveraging subject matter experts from multiple disciplines. Our team consisted of an instructional designer from TEKsystems Learning Solutions, Agile TDD coaches from TEKsystems Agile Transformation Services, and subject matter experts from our Montreal Innovation Centre who provided Java, JavaScript, .NET, mobile (iOS and Android) and database expertise to help develop content and serve as advisors.

Cost-effective Solution

Initially the client wanted to hire one IT professional to handle their TDD training and adoption. They submitted a requisition via their staffing vendor management system for someone with experience with training content development, training delivery, as well as experience in multiple platforms (e.g., .NET, Java). TEKsystems recommended a more cost-effective and efficient solution—a team of subject matter experts providing just-in-time fractional support. Because of the depth and breadth of TEKsystems’ services, we could provide a level of flexibility in bringing in the right skill sets when required without the expense of a full-time resource.

Past Success at the Client

TEKsystems has a history of success as a proven training and Agile vendor for this client. Our position as a preferred Agile partner gave the team confidence that we could deliver a comprehensive learning program that addressed the needs of professionals with different skill sets.

Send Us a Message
Choose one