Systematic Skills Enablement: How To Track Growth in Software Teams

Systematic Skills Enablement: How To Track Growth in Software Teams

This post was originally published on the VMware Tanzu Blog on 5 July, 2023. I'm republishing an edited version here for preservation now that VMware has been acquired by Broadcom. I should disclose that at the time of writing, I was in a sales role in Tanzu Labs (formerly Pivotal Labs) and the article went through an editing process managed by Tanzu marketing, although I continue to hold the opinions and support the points laid out in the article.


In software development, continuous learning and skill enhancements are key to staying ahead. When working at VMware Tanzu Labs (formerly Pivotal Labs), I was part of teams that would not only develop exceptional software, but also prioritize enabling customers to do the same. This approach is sometimes referred to as a "software factory" approach, and a great example is the work that Pivotal undertook with the US air force. With a focus on measurable progress and collaborative learning, our systematic approach to skills enablement ensured that individuals and teams were equipped with the knowledge and expertise to excel in software delivery. In this article, I'll delve into the importance of this approach, explore the challenges faced, and highlight the tools and strategies I've employed to track and measure progress.

Enablement through Delivery

A core principle of mine is that better software results from enabling diverse teams with the necessary knowledge, shared context, psychological safety, and decision-making authority to drive accelerated progress towards desired outcomes. Those desired outcomes may vary by team and organization, but I would set out something like the following:

  1. Your software delivers real or measurable value to its users
  2. Your software is performant and always works as expected by all of its users
  3. Your software can be modified easily and new changes pushed to production quickly and safely
  4. Your software team can reliably do this forever

Fundamentally, I believe that this enablement happens through the delivery of the software. Having learners work on their own products alongside those more experienced with working towards such outcomes—their context, but effectively in a new environment—allows them to experience the intricacies of high-performance software delivery, including collaborating effectively among diverse teams, managing stakeholder expectations, adapting to evolving requirements, and measuring and demonstrating impact. When gradually adopting new practices and behaviors and seeing the results first-hand, I've seen team members experience eureka moments that reinforce their learnings and motivate them to sustain those practices. For example, I worked with a team whose product backlog consisted of around 35% bugs; this was really demotivating for the engineers and also made it very difficult for the team to be able to provide reliable delivery estimates on the new features—after all, how long does it take to fix a bug? Within weeks of working with my team and maintaining strict discipline when it came to automated testing, the engineers saw the percentage of bugs fall to zero, and the lead time for new features became much more predictable. From then on, it was always tests before code.

A great way for one person to enable another is to directly work alongside each other, with one person driving and the other navigating – providing feedback, asking questions, and making decisions together. This practice is most commonly associated with pair programming, but can be applied to any discipline, or even cross-discipline.

An example of a Software Engineer pairing with a Product Manager
An example of a Software Engineer pairing with a Product Manager

At Pivotal Labs, we would pair our practitioners 1-1 with new learners. During the early phase of a typical customer engagement, our consultants would usually drive most of the work, the conversations, facilitation of discussions, and decision-making activities. We called this the I do phase, as we wanted to give our client team members the opportunity to participate and learn key principles and practices. Gradually, over the course of the engagement, we transitioned to the We do phase and then, finally, the You do phase so that our client team members also got the opportunity to lead the practices themselves, gaining confidence through repeated experimentation and fast feedback. We also worked with team sponsors to identify significant milestones and to begin introducing new team members during the You do phase so that the client practitioners could get the opportunity to safely experiment with enabling others and begin scaling the delivery model, while the Labs consultants provided support to ensure delivery momentum was not lost.

Example of how a Labs engagement might plan to enable teams
Example of how a Labs engagement might plan to enable teams

Building a Foundation for Enablement Success

The skills enablement journey begins by setting clear learning goals that provide direction for individuals and create a framework for growth. Aligning individuals and their mentors on these goals is essential for identifying and offering suitable learning opportunities.

But great software is usually built by teams, not just individuals. Therefore, we need to have a holistic view of a team’s learning progress and proficiency. By tracking data on individuals’ progress toward those goals, stakeholders can make more informed decisions around the support the team might need, when and how a team might be reconfigured, or its readiness to impact adjacent teams. As Pivotal Labs consultants, having this data enabled us to advise our clients more effectively.

However, we should acknowledge that each individual and each discipline on a software team will have different goals and learning styles. Overcoming these challenges requires finding a balance between standardization and flexibility. We must also acknowledge that learning is not a linear process and that occasional setbacks are inevitable. Sometimes, taking a step back before moving forward is necessary for more sustainable growth. Finally, learning opportunities may be infrequent, depending on the product context, or they might vary across roles. Recognizing these challenges and adapting our approach accordingly allows us to create an inclusive and effective skills enablement system.

Tracking and Measuring Progress

To track enablement progress, I've employed a range of tools and techniques that provide comprehensive insights into individuals' growth. This would be some form of customized skills matrix, which outlines the core skills to be acquired and defines different levels of competency. This matrix serves as a reference for evaluation purposes. To conduct individual evaluations, I would engage in regular one-on-one mentorship conversations with other product managers based around the skills matrix. These discussions cover various aspects, such as aligning on goals and priorities, exchanging feedback, and documenting evidence of progress, and serve as a safe space where practitioners can reflect and self-evaluate.

One form of this tool that I've often deployed is a discipline-specific enablement Trello board. These boards list cards related to principles and practices I hoped for new learners to adopt while we're working on a product together. By prioritizing and moving cards across different columns—learning, doing, and teaching—we can visualize progress over time and provide clients with artifacts they can share with their managers or mentors

An example of a Pivotal Labs enablement Trello board for Product Managers
An example of a Pivotal Labs enablement Trello board for product managers. I've used similar boards for product designers and software engineers.

In addition to these tracking tools, I might provide learning resources such as books, videos, articles, online tutorials, playbooks, and guides for product management, design, and software engineering leads. These resources enable new practitioners to continue their learning journey even after our time working together ends.

In Conclusion

By fostering a collaborative learning environment and emphasizing the practical application of new skills, I've consistently witnessed the transformational impact on new practitioners as they develop the skills to excel as part of high-performing software delivery teams in a relatively short time. This approach is just a part of an ongoing journey, where continuous improvement is essential. Further, a systematic skills enablement approach ensures that participants receive a structured and well-rounded learning experience as a foundation for that journey.

要查看或添加评论,请登录

社区洞察

其他会员也浏览了