Ahora que Addison y Austen tenían luz verde para pasar a una arquitectura distribuida y separar la aplicación monolítica Sysops Squad, necesitaban determinar el mejor enfoque para empezar.
"La aplicación es tan grande que no sé ni por dónde empezar. Es tan grande como un elefante!", exclamó Addison.
"Bueno", dijo Austen. "¿Cómo se come un elefante?".
"Ja, ya he oído ese chiste antes, Austen. Un bocado cada vez, claro", se rió Addison.
"Exacto. Así que utilicemos el mismo principio con la aplicación Escuadrón Sysops", dijo Austen. "¿Por qué no empezamos a desmenuzarla, bocado a bocado? ¿Recuerdas que dije que los informes eran una de las causas del bloqueo de la aplicación? Quizá deberíamos empezar por ahí".
"Eso podría ser un buen comienzo", dijo Addison, "pero ¿qué pasa con los datos? Hacer de los informes un servicio independiente no resuelve el problema. Tendríamos que separar también los datos, o incluso crear una base de datos de informes independiente con bombas de datos para alimentarla. Creo que es un bocado demasiado grande para empezar".
"Tienes razón", dijo Austen. "Oye, ¿y la funcionalidad de la base de conocimientos? Es bastante independiente y podría ser más fácil de extraer".
"Es cierto. ¿Y qué hay de la funcionalidad de la encuesta? Eso también debería ser fácil de separar", dijo Addison. "El problema es que no puedo evitar sentir que deberíamos abordar esto con un enfoque más metódico, en lugar de comernos el elefante bocado a bocado".
"Quizá Logan pueda darnos algún consejo", dijo Austen.
Addison y Austen se reunieron con Logan para discutir algunos de los enfoques que estaban considerando sobre cómo dividir la aplicación. Explicaron a Logan que querían empezar con la base de conocimientos y la funcionalidad de encuestas, pero no estaban seguros de qué hacer después.
"El enfoque que sugieres -dijo Logan- es lo que se conoce como el Antipatrón de la Migración del Elefante. Comerse el elefante de bocado en bocado puede parecer un buen planteamiento al principio, pero en la mayoría de los casos conduce a un enfoque desestructurado que da lugar a una gran bola de barro distribuido, lo que algunos llaman también un monolito distribuido. Yo no recomendaría ese enfoque".
"Entonces, ¿qué otros enfoques existen? ¿Existen patrones que podamos utilizar para desmenuzar la aplicación?", preguntó Addison.
"Tienes que adoptar una visión holística de la aplicación y aplicar la bifurcación táctica o la descomposición basada en componentes", dice Logan. "Son los dos enfoques más eficaces que conozco".
Addison y Austen miraron a Logan. "¿Pero cómo sabremos cuál usar?".