I started mentoring software teams in 1994. As an Object Mentor, my first goal when joining a new team was to understand each member and hear directly from them what they wanted to learn. To make this possible, I needed a way for them to evaluate their own skills, see where they stood, and decide what to ask from me based on that understanding.
The Solution: A Simple Exercise
The solution? A temperature converter.
The task seemed straightforward:
- A GUI to input a temperature and convert it between Celsius and Fahrenheit by pressing a button or selecting an option from a list.
- A log feature to save the conversion to a text file in a predefined format by pressing another button.
At first glance, it appeared trivial. I would ask if they had questions. Most of the time, they’d ask me to draw the user interface, and that was it. Before starting, I asked for an estimate, had them write it on the whiteboard, and sign it. If they needed more time later, they could revise the estimate by updating it on the board and signing again.
Most participants estimated they’d finish in one, or at most three, Pomodoros. I had booked the room for the entire day.
The First Line of Code: A Developer’s Signature
When the first Pomodoro started, my role as their “customer” was to answer any questions they had (if they asked) and to take photographs of their screens—particularly the first line of code they wrote. You wouldn’t believe how much you can learn about a developer from that first line of code. It reveals their approach to analysis, design, and complexity management.
Over the years, I’ve photographed hundreds of first lines written for this temperature converter.
The reality? Nearly no one delivered anything before 3 or 4 Pomodoros. And often, the exercise stretched far beyond. By the end of the day (and often late into the night), participants were still working.
Unforeseen Challenges
What initially seemed simple was anything but. There were IFs for different button scenarios, exceptions and their corresponding UI messages, graphics threads that, when mismanaged, froze or crashed the app mysteriously, and, of course, the different conversion logic.
Reflections: Seeing Themselves Clearly
Team members had the chance to see themselves as they truly were, not as they imagined. This exercise, though deceptively simple, mirrors the complexities of real-world software design and development. The next day, we worked together to map out how they wanted to improve their development processes, and each developer left with something they genuinely wanted to learn.
In over three decades, no one has ever delivered a temperature converter with a good design.
A week ago, I collected three new temperature converters. I think it’s time to show mine.
Live Demo: Step by Step
I’ll build the temperature converter live with the audience:
- One object at a time.
- Defuse the IF Strategy principles in action.
Ready to program?
Pricing & Enrollment
🎟 Individual & Group Discounts Available
⏱ 7 Hours of Hands-On Training Over 2 Days
Challenge Accepted? Ready to revolutionize your code?
Discover more from Defuse The If Strategy
Subscribe to get the latest posts sent to your email.
Like this:
Share this: