Advantages

There are several main advantages to adopting a feature-first integration of Kotlin:

When writing production-ready feature code, you will encounter a variety of scenarios that lend themselves to different patterns and approaches to solve. These scenarios provide a perfect opportunity so that we can fully explore Kotlin and the features we've been exploring in this book. By exploring the language more fully, developers can more quickly learn Kotlin and better leverage it to improve the quality of their code base. This greater exploration of the entirety of Kotlin is not present when writing test code, where code often falls into the same setup | exercise | validate pattern.

Another possible benefit to integrating Kotlin into production code from the beginning is that you can quickly determine whether there are any issues with shipping Kotlin to your production users. If, for some reason, you discover a compatibility issue, or find that an applied programming pattern breaks in the field, you will discover this sooner rather than later. This can help ensure that your development team finds these issues before they grow and before bad habits develop.

If your team is not in the practice of writing tests, then starting with feature-first integration will have less impact on your development process. If your team doesn't test, then starting with a test-first approach also requires becoming comfortable with the concept of testing as a whole, and you may find yourself evaluating your new development process as much as the language. However, this may increase overhead and reduce productivity too much in the short term.