Imo, self-driving is massively held back by the cost of hardware. There are fully autonomous robo taxis. That human taxis are still commercially viable is in large parts because robo taxis are quite expensive.
Coding cookie cutter CRUD apps is pretty much solved at a much lower price point than artisanal software.