At a Glance
This session provides ideas and approaches on how to promote a culture of continuous improvement and perpetual learning among teams of software developers in a corporate setting. It provides specific examples of approaches that have been successful at large companies such as Travelers Insurance and Google, focusing not only on how to spread knowledge, but also on how to evaluate progress and measure success. It also presents some lessons learned, and looks to the audience to share their thoughts and experience on where to go from here.
Intended Audience
- Team leads interested in learning techniques for mentoring developers on their team
- Managers interested in creating a culture of learning and self improvement among their development staff
- Developers who aspire to become Software Craftsmen, and seek ideas on how to develop their skills
Benefits of Participating
- Learn how to evaluate current developer skill/knowledge level
- Learn strategies/approaches to improve developer skill/knowledge
- Learn how to create a culture of continuous improvement and perpetual learning in your development organization
- Learn strategies to encourage developer participation in continuous-improvement initiatives
- Learn how to measure developer participation and performance
- Learn how to measure the success of your continuous-improvement initiatives
Background
What makes a software developer a “professional”? For many years, all manner of people with all levels of skills and beliefs have called themselves software professionals. It is only recently that we as an industry are recognizing that our knowledge of software development has evolved to the point where there are a collection of clearly-defined “professional practices”. Through the work of our industry leaders, we are recognizing that if we are to call ourselves software professionals, then we must learn and adhere to these professional practices. Pete McBreen and Bob Martin, among others, liken software development to a craft, and recognize that the process by which we as software professionals develop our skills is a journey in which we evolve from apprentice, to journeyman, to master craftsman.
The problem with this is that the skills and knowledge that allow a developer to work toward becoming a software craftsman are not currently taught in school. These skills must be learned independently through a willingness to take responsibility, and a committment to perpetual learning. To improve the skills of our development teams, we clearly need to fill the gap between what they learn in school and the mastery of professional practices exhibited by software craftsmen. This course focuses on how we can fill that gap, and help developers grow into software craftsmen.
5 min - Introduction
20 min - Evaluate the current skills/knowledge of your team(s)
- Communication strategies, surveys
- Metrics: Key metrics relevant to professional practices, How to automate gathering/reporting through your continuous-integration process
- The role of upper management (and how to get their support)
30 min - Educate your team(s)
- Pair Programming
- Centralized Resources: Educational material, Knowledge base, Moderated technical forums, Tools/code snippets, Book reports
- Sessions: Teasers, Lightning talks, Tech talks, Coder’s dojo, Workshops
- Craftsmanship Day
- 10% Time
- On-Team Mentoring
15 min - Measure Success
- Continuous evaluation
- Performance goals that motivate and educate
- Performance reviews by the people that matter most
20 min - Summary, Q&A, open discussion