It is error prone. You create a fields that will throw exceptions when accessed without initializing. Kotlin tries to fix this by using nullable fields. However, on Android you don't really have an other way (without making them nullable) because you need to use the lifecycle of the activity.
Lateinit is exactly for this kind of situations.