#1 - TDD, Pair Programming, and Katas in iOS/Swift

There's a real benefit to using TDD and Pair Programming, but finding exercises and step-by-step coding examples to practice might be difficult. Plenty of resources teach TDD, but more is needed; just like we use LeetCode for algorithms, there should be a guide to practicing Pair Programming using TDD and Katas in iOS.

So Peter and I (Dan) decided to practice TDD by pairing one hour weekly and exercising our skills using Katas, recording each session and sharing our insights, challenges, and solutions of each session.

Image - Pair programming with Peter and I (Dan) using Katas

Pair programming is a challenge.

We noticed that when pairing and practicing TDD using Katas, we encountered yet another problem: communication and timing. We both have limited time, so controlling time and making the most out of it was essential. At first, we noticed that we spent too much time in each session; communication could have been more outstanding, and the refactor phase in TDD (red, green, refactor) needed to be more accurate. So, we created a system that allowed us to continue progressing from each session, giving us great results.

We started simple. First, we schedule a fixed time each week (one hour).

Starting a project can easily be corrupted and hijacked for any external reason. We decided that to get the most out of this initiative, we needed to argue the "why" or the "reason" to keep us motivated in times of adversity. Mission, Values, and Rules expressed this reason we agreed upon, which has helped us continue our journey. We kept it in notes so that we always refer to them in times of need, and we would update it if needed.

We shared these notes using the "Notes" app to keep them at hand. We keep it as simple and agile as possible to avoid losing ourselves using complicated tools we don't need.

Session by session, we created notes and shared folders to keep all our information up-to-date and organized. This information included Previous session notes, Current Notes of each session, To-Do notes for the week, personal objectives by each of us, the team's mission and values, rules, and a folder with a knowledge base about TDD, Katas, and Pair programming.

For now, we will keep this article short. We will share weekly updates on enhancing communication, pair programming, and TDD skills using Katas.

Stay tuned in the link below. In the meantime, stay safe!

Previous
Previous

#2 - TDD, Pair Programming, and Katas: Sessions Process to improve Pair programming Practice

Next
Next

10 SwiftUI Performance Tips: My experience using SwiftUI