Sucede porque el software es increíblemente complejo y la perfección es inhumana.
Dependiendo de lo que esté construyendo, hay procesos de software para garantizar varios niveles de calidad. Una mayor calidad significa menos errores, pero eso se produce a expensas del rápido desarrollo y programación de las funciones (tiempo necesario para su publicación).
Para un producto como un marcapasos o un piloto automático en un avión, el nivel de calidad debe estar en el nivel más alto posible. Existen estándares y prácticas de ingeniería de software que pueden emplearse para garantizar esto, como el SEI-CMMI de Carnegie Mellon.
Por otro lado, hay productos en los que es muy importante mantener nuevas características innovadoras y puede tolerar algunos errores de caso en algunas áreas. Por ejemplo, si Quora tenía un error en su aplicación iOS, donde si intentas mezclar texto en árabe con texto en inglés en un comentario en un comentario en una lista numerada, algunos signos de puntuación se voltean. Nadie morirá si este error se queda sin resolver durante unos meses. Será molesto, pero el equipo de ingeniería probablemente esté mejor construyendo la próxima gran característica y colocándola en un segundo plano.