The clock shows a minute past noon. The stragglers of a steady stream of 5AMers finish sneaking in the conference room door and quickly take their seats. Someone dims the lights while another finishes pulling the shades. A hush comes over the room. “Everybody ready?” Nods answer. A mouse cursor clicks the play button. The frozen bespectacled figure on the projector screen comes to life. In a stern voice, he declares, “Integrated tests are a scam – a self-replicating virus that invades your projects! It threatens to destroy your codebase, to destroy your sanity, to destroy your life.” Another 5AM Tech Talk begins…
What is the 5AM Tech Talk series?
Approximately every month, the developers at 5AM gather to watch and discuss videos on software craftsmanship. These videos come from a wide variety of sources such as the Clean Code series by Robert “Uncle Bob” Martin, the recent “Is TDD Dead” debates, and the Destroy All Software screencasts. The topic varies month to month but we are always pursuing the same goal: we want to educate ourselves on the benefits of good software design and tease apart the practices that lead to high quality software.
It might seem odd that the goal of the 5AM Tech Talks does not mention anything about technology. This seeming misnomer is because in our case the “Tech” stands “Technique.” The Tech Talks are meant to be technology agnostic and instead focus on ideas that transcend any particular language or tool. We are not trying to discuss the hottest new databases or the best way to use Rails controllers, but rather we are trying to answer questions like “how do you convert bad design into good design?” and “what is the link between good software and good testing practices?”
How does this impact/reflect our culture?
5AM Tech Talks both teach us new techniques and practices, as well as reinforce existing ones that work well. In our Tech Talks, we examine how other leaders in the software development industry approach problems. This allows us to incorporate the best ideas into our own set of efficient processes and remain up to date and relevant in an industry that moves extremely quickly.
We also learn from each other in the discussions that follow each viewing. Many topics we bring in to the talks have multiple, conflicting opinions about “best” solutions or practices. Sometimes experiences of one or more 5AMers run counter to what the videos recommend. Sometimes our experiences have shown that a real world application may have more complexity than presented in the video. We include time to discuss these experiences so that we get a broader picture and also to acknowledge our own internal talent and wisdom. Oftentimes the situation ultimately dictates the best solution, and 5AM Tech Talks helps ensure we have the right tools in our toolset for all situations.
Ultimately, 5AM Tech Talks demonstrate our dedication to continual improvement as individuals, as teams, and as a company. Collectively we have invested hundreds of hours in 5AM Tech Talks and similar activities. At 5AM, we commit to working smart, working as a team, and producing software that inspires us and provides excellent value for our customers.
How does this impact our clients?
Focusing on the customer is an intrinsic part of 5AM’s mentality; therefore, with everything we do, we must ask ourselves “how does this benefit the client?” The 5AM Tech Talks are no exception.
One answer to this question is that the 5AM Tech Talks enable us to be more conscientious about our work, and more conscientious engineers lead to better designed software that saves clients money. It saves clients money in the short run because well-designed software is flexible, allowing for faster iterations and faster feature delivery, with the added benefit of more frequent customer feedback. It saves clients money in the long run because well-designed software is maintainable and long lasting.
But there is another more elegant answer to this question. To have great software, you need engineers as invested in the quality of the product as the client, and the 5AM Tech Talks are one way we demonstrate that investment. The Tech Talks allow our clients to have confidence that we are not just continually improving our software but continually improving ourselves as well.
- by Chris Lasher & Zach Palchick