Emily Bache, founder of the Samman Technical Coaching Society and author on agile coaching, shares insights on coding katas and the vital role of practice in developer growth. She likens coding to martial arts, stressing the need for continuous refinement and a supportive environment. The conversation highlights how structured katas facilitate skill application in real-world coding, with an emphasis on legacy code challenges. Effective communication and collaboration among developers are also discussed as crucial elements for team success and sustained learning.
Read more
AI Summary
AI Chapters
Episode notes
auto_awesome
Podcast summary created with Snipd AI
Quick takeaways
Katas serve as effective coding exercises, enabling developers to practice skills like refactoring and test-driven development in a safe environment.
Allocating time for deliberate practice, such as katas, can significantly enhance developers' performance and overall organizational efficiency.
The Samman Coaching Society promotes collaborative coaching, fostering continuous learning and communication to improve coding practices within software development teams.
Deep dives
Understanding Katas in Software Development
Katas are small coding exercises that help software developers practice their skills, particularly in refactoring and test-driven development (TDD). They can be done independently, allowing developers to choose from different programming languages and tailor their practice to their specific needs. By focusing on simpler coding tasks outside of production code, developers can gain fluency and confidence that translates to their everyday work. This practice encourages a culture of continuous learning and improvement within the field of software engineering.
The Importance of Dedicated Practice Time
Having dedicated practice time within a work environment can greatly benefit developers and the organization as a whole. While some argue that learning should solely occur during work hours, allocating even a small amount of time for katas fosters skill development that enhances job performance. Practicing coding skills leads to greater efficiency when addressing real production challenges, as developers become quicker and more adept at applying their abilities. Management should recognize the long-term advantages of investing time in developer training for overall organizational improvement.
Fluency Through Repetition and Reflection
Fluency in coding develops through repetitive practice and reflection on one's methods. Much like martial arts, where practitioners refine their techniques through consistent katas, software developers can benefit from repeated coding exercises to solidify their skills. Observing others and receiving feedback can illuminate areas for improvement, allowing developers to discover more efficient coding practices and tools. The iterative nature of katas promotes exploration and adaptability, fostering a mindset geared toward continuous growth and excellence.
Refactoring and Test-Driven Development Skills
Katas provide an excellent platform for practicing essential skills like refactoring and test-driven development (TDD). Refactoring katas typically start with poorly designed code, allowing developers to practice restructuring and improving it effectively. TDD sessions facilitate learning how to write tests and implement code in small increments, reinforcing the habits necessary for robust software development. By engaging in katas focused on these techniques, developers can enhance their ability to write clean, maintainable code while incorporating best practices.
Building a Community of Technical Coaches
The establishment of the Samman Coaching Society showcases the need for a collaborative approach to technical coaching in software development. This collective aims to share knowledge and resources among coaches, creating a supportive environment for developing effective coaching methods. By focusing on improving coding practices across the industry, the society emphasizes the importance of nurturing both individual skill and team dynamics. Ultimately, fostering communication and continuous learning among developers leads to enhanced software quality and organizational success.
Emily Bache, founder of the Samman Technical Coaching Society and author of several books about technical agile coaching, talks with SE Radio host Sam Taggart about katas and the importance of practice. They discuss how practicing in a safe environment helps developers to learn new skills and build new habits. They also talk about how Samman coaching combines this sort of deliberate practice with applying the lessons learned in practice to the production code base. They also touch briefly on the advantages of working in an ensemble fashion.