Software testing as a function has evolved from being a merged function to an atomic state now. In the past, organizations used to have testing as part of development teams that resulted in challenges such as late involvement in projects, crunched testing time and so on. As a group, testers battled with lack of purpose and role clarity, diminished recognition and lack of voice.
To overcome these challenges, organizations embarked on journey towards setting up dedicated testing functions that later emerged as Testing Centers of Excellence (TCoE). TCoE was more organic in nature and were set-up with a focus to bring specific results with significant benefits. On a deeper level, they were set-up to achieve clear objectives – Repeatability, Predictability, Innovation, Scalability and Continuous Improvement. TCoE as a concept was fairly successful with mid to large sized organization especially where the projects were executed using traditional methodologies. They brought in benefits such as enhanced application quality in production, improved testing velocity, reduced cost of ownership, better resource utilization and so on.
Year 2001 saw the launch of Agile Manifesto. This brought in a complete thought shift as far as software development was concerned. More and more organizations started moving towards this model and started seeing mixed results. The gap between development, testing, operations and support teams began to diminish and most times resulted in clear overlap of activities between teams. Projects became very atomic in nature demanding small focused groups with multi-skilled resources who could take quick decisions to achieve set goals within a time-box. This development started to disintegrate TCoE structure as the resources were increasingly aligned to projects for longer durations. TCoE as an entity slowly started to lose ground making it less viable an option to live with.
One of the practices preached by agile is to retrospect and identify behaviors and practices that need correction and at the same time, share good practices across other agile teams so that the organization in total benefits. This mechanism of collective thinking and sharing ideas gave rise to formation of informal groups of people with similar interests and thoughts called Communities of Practice (CoP).
CoP constitutes members of all levels of expertise whose main aim is to work together to solve a challenge or problem. A CoP does not seek funding from the organization; however, they do require constant encouragement from leadership to realize benefits of having set up the group. Similar to TCoE, CoP too is highly organic in nature and they work dedicatedly identifying and spreading improvements in their area of expertise. Life of a CoP can be time boxed to address a particular purpose. A core group of 2-4 members may form the CoP and nurture it in its early stages till the other members come on board. In the peak of its operation, CoP members address challenges, build skills and impart knowledge to their community and improve their practice. Once the problems are addressed and the purpose is met, the CoP’s importance may reduce and hence the members may take a call to wind up its operations till they all see the need again to re-establish it for another stated purpose.
For any CoP to succeed, constant support from Leadership is very essential in terms of providing needed infrastructure for regular team huddle, communication means and logistical arrangements. This in-turn helps to sustain motivation levels in the organization and helps build innovation spirit in their human capital.