Crafting Code Podcast


$ cd episodes/004-effective-teams

~/podcast/episodes/004-effective-teams $ ls -1a
. .. episode-summary.txt
~/podcast/episodes $ cat episode-summary.txt

What does it mean for a software team to be effective? What sorts of things can you do to increase your effectiveness as a team? In this episode, we discuss the principles and practices which we have seen in common among effective teams.


[00:00:00] Host introductions. What does it mean for a team to be effective?

[00:05:15] What kinds of things do effective teams do? Have a clear vision of how to deliver business value.

[00:10:55] Iterate

[00:16:00] Collaboration. Everyone on the team knows something valuable that you don't know. Avoid pitfalls.

[00:24:07] Leaders need a clear understanding of what is effective in our industry.

[00:27:28] Teams need to have a stable of validated practices so they can evaluate which ones work for their current situation.

[00:29:26] Automation of tests, continuous integration, and deployments.

[00:34:17] Test driven development for fast feedback and designing code. Attempting to test legacy code becomes a critique of the design.

[00:41:39] Lean methodologies: observing WIP limits and finishing tasks rather than starting new ones.

[00:48:24] Deliver in increments and keep learning. Introspection.

[00:52:07] What conditions are required for these things to be effective? Knowing your team context and which practices might not apply.

[00:59:54] Wardley Maps concept of pioneers, settlers, and town planners. The understanding of the space can affect which practices are effective.

[01:05:46] There are principles that are generally applicable, such as reflection, testing, and automation.

[01:07:10] System architectures can have a huge impact on the effectiveness of a team.

[01:11:08] Outro

Articles referenced: ~/podcast $ cat copyright.txt

Copyright © 2022 - Crafting Code Podcast