Book Training Contact Us

Daiki Kanai, CTO of Odd-e Japan Fight Human Instincts!
Building Systems to Meet Customer
and Era-Specific Needs

Daiki Kanai, a developer at Odd-e Japan, strives to be number one in the field of software 'testing technology.'

To overturn the common notion that testing is merely a 'final check,' Kanai arrived at a method that does the exact opposite. Through the lens of his significant past setbacks, we explore the true essence of testing technology.

How a Major Failure Reshaped the Way I Think About Programming and Testing

Daiki Kanai, CTO of Odd-e Japan

At Odd-e Japan, every engineer practices TDD. For them, writing tests is as natural as breathing. It’s a methodology that flips the traditional approach by defining the goal through test code before writing the actual program.

Many see testing as a 'final check,' but in an era of shifting customer needs, I realized testing should be about creating an environment that adapts to change. It's not just about 'working as intended' anymore.

Kanai points out three common human instincts: over-engineering for 'generalization,' ignoring problematic code, and creating tests just to prove oneself right. TDD serves as a direct countermeasure to these tendencies.

A 'test-first x automated testing' setup allows for continuous refactoring. It keeps code 'lean' by focusing on the 'why' and preventing over-building. It gives engineers the confidence to pursue better code without fear.

Kanai was once a lead engineer who believed that detailed upfront design and bulk testing at the end were the marks of a 'cool engineer.' His 180-degree turn toward TDD was triggered by a massive 'failure' that shattered his existing beliefs.

What Was It All For?
The Decision to Accept Delays, Feature Cuts, and Technical Debt

Kanai, striving to improve code and testing techniques

While developing a management accounting system, the schedule began to crumble from week one. Full of confidence, Kanai stepped up to lead, believing that a detailed upfront design was the key to success. However, his intricate generalized classes and complex design patterns became a burden, failing to work as intended.

We eventually released with a one-month delay and 30% of the features cut. To meet the deadline, I made the choice to accept debt: we wouldn't write automated tests. It was a decision that essentially strangled our own future development.

While the team was exhausted by endless follow-up tasks without any sense of achievement, a bombshell was dropped: the product would be closed in six months. What was the purpose of all their hard work?

The high level of abstraction increased complexity, often causing team members to stall. We spent so much time preparing a wide range of features that the customers never even used. Looking back, it was a tragic waste of time.

"I never want to build unnecessary features again." Driven by intense regret and self-reflection, Kanai began to seriously study Scrum and Agile—methodologies focused on spending more time on the core features users actually need.

Found It At Last!
The Ideal Code Starts with the Smallest Possible Test

Overview of TDD (Test-Driven Development)

Drawn to the synergy between Agile philosophy and deep technical expertise, Kanai joined Odd-e. He immediately volunteered for CSD (Certified Scrum Developer) training, where he mastered core techniques like TDD, ATDD, refactoring, and legacy code improvement to practice Scrum as an engineer.

The biggest takeaway for me was learning the concept of 'Emergent Design' (Evolutionary Design) from XP (Extreme Programming) and the TDD process as the means to achieve it.

Emergent Design prioritizes continuous redesign through refactoring over detailed upfront design. Kanai was captivated by the TDD cycle: developing in tiny increments to provide 'visible results' and gain frequent feedback from stakeholders.

When testing an addition function, the first 'minimum' code to pass a 1+1 test is simply a function that 'just returns 2.' For example: function plus(x, y) {return 2}. I was genuinely shocked by how tiny these steps were when I first started (laughs).

Making Test-First Systems the 'New Normal':
Kanai's Strong Ambition

With his TDD mentor, Terry Yin from Odd-e Singapore

Currently, many still feel that writing tests first or automating them provides little benefit, or that it is simply more costly than coding without tests. However, Kanai looks toward a future where this approach becomes the foundation for both engineers and systems.

From a long-term perspective, test code becomes an 'Executable Specification' that guarantees maintenance and creates robust systems independent of member changes. If the test-first mindset becomes the norm, engineers who are deeply conscious of 'why we build' and systems with minimal technical debt will become the standard. I want to start with my own team and organization, and continue to improve alongside peers from other companies who share this vision.

Kanai speaks about this future with a bright smile.

Get Your Certification

Please apply for our various training programs
using the link below.