No es aceptable escribir código espagueti ni siquiera inicialmente ya que ello dificulta la comprensión del problema.
Se puede dar una comparación con las reglas básicas del periodismo de como escribir una noticia.
Una vez se tienen las funciones claramente visibles es posible identificar cuales conforman una responsabilidad común y no entrelazada con el resto del código y por tanto es posible separarlas en objetos diferentes que ya tendrán los métodos y propiedades (que pueden ser privados, no visibles, desde el resto del código).
El código Ravioli se basa en que el código se refactoriza en demasiados trozos pequeños del mismo que llegan a ser difíciles o imposibles de seguir.
Este caso se da también en la programación orientada a objetos, donde el origen del código ya no está disperso entre funciones o procedimientos, sino también entre clases y paquetes, haciendo que el código sea difícilmente trazable.