HAWKademy – Test-Driven Development, small, rapid steps towards success
World-class organizations are built by world-class teams, which is why Hawk AI focuses on attracting top talent from around the globe. But how do you make talent even better? Through sharing knowledge with your colleagues and learning from the other talented team members!
That is why we have HAWKademy. In regular sessions, we learn from one another interactively and collaboratively. Like this, we ensure that the whole company benefits from the individual talents within our teams.
“This session was extremely fun. During pair-programming, we had the awesome opportunity to team up with different people than usual. It was great to learn more about their work style and to get a fresh perspective on things.” - Thinh, DevOps Engineer
HAWKademy takes place every few weeks and offers our cross-functional teams the space and structure to learn about and contribute to key topics. After diving into Continuous Delivery in our last series, we now continue with another approach that gives Hawk AI the technological edge to create leading products.
Today’s topic: Test-Driven Development
We split this session into three parts to explore what Test-Driven Development (TDD) means in actual practice. First, we discussed how the approach works, what distinguishes it, and which benefits it has for our company. After a short introduction, Josef Etz, Head of Technology at Hawk AI, kicked off the practical portion with a live demonstration of TDD and we all split up in pairs to actively practice using the approach in a quick pair-programming project on an open-source platform. Ultimately, we came together to share our experiences and discuss learnings and possible pitfalls.
TDD is an agile style of programming that focuses mainly on three interwoven activities that are constantly repeated in a cycle: Testing, Coding, and Designing (Refactoring). In principle, you start with writing a simple test for a specific requirement of the program. Then, try to find the simplest way to successfully make your code pass this test. After achieving that, redesign the code to make it as clean and generic as possible, moving back and forth between test and code. Aim for small steps and a cycle time below 5 minutes to be most effective in doing TDD.
Why do we use TDD?
As an agile approach, TDD helps us create the highest-quality, most robust code. At the same time, it makes the code easier to maintain and leads to a more modular design, enabling our developers to deliver strong code faster. It also leads to better unit tests as a great side effect.
Especially in combination with Continuous Delivery, TDD furthers the automation of processes in our work and reduces handovers. This makes our workflows more efficient and our daily work easier. And in the end, TDD makes a great programmer even greater.
Want to be part of our next HAWKademy session? We are hiring! Check out our current openings here.