Dan Sturtevant, ex alumno del MIT, cofundó Silverthread, una empresa que diagnostica y soluciona problemas estructurales de software. Inspiradas en la investigación del profesor Alan MacCormack, las herramientas de Silverthread tienen como objetivo hacer que las bases de código sean más modulares y eficientes comparando la arquitectura de código ideal con los ladrillos LEGO.
Silverthread, una empresa derivada del MIT, ayuda a las empresas a transformar bases de código complejas en sistemas modulares que se pueden cambiar o actualizar sin dolores de cabeza.
Como ingeniero de software, Dan Sturtevant SM ’08, PhD ’13 ha tenido trabajos en los que era fácil realizar un pequeño cambio en una base de código, y trabajos en los que un cambio igualmente pequeño causaría que otras partes aparentemente aleatorias del código se rompieran o mal funcionamiento código base. Hacer estos cambios podría recordarle a Sturtevant lo que le gustaba de ser programador o hacerlo sentir como un idiota.
Esa experiencia todavía intrigaba a Sturtevant cuando llegó al MIT en 2006, primero como estudiante de maestría y luego como estudiante de doctorado. Luego se topó con una serie de artículos escritos por el ex profesor visitante de la Sloan School of Management del MIT, Alan MacCormack, que pensó que explicaban su dilema.
Los artículos describieron una nueva forma de analizar la estructura de grandes aplicaciones de software para encontrar problemas no con líneas individuales de código, sino con la forma en que los archivos de código interactúan y se superponen. La idea formó la base de un nuevo enfoque para evaluar y mejorar el código, y Sturtevant se uniría a los autores del artículo para fundar Silverthread.
El ascenso de Silverthread
En los años transcurridos desde entonces, Silverthread ha pasado de diagnosticar problemas estructurales ocultos en bases de código a resolver esos problemas, haciendo que algunas de las bases de código más grandes del mundo sean más modulares.
«Si imprimes un código base de 100 millones de líneas y lo apilas, se elevará aproximadamente una milla en el aire», dice Sturtevant. “Es imposible para cualquier desarrollador entender todo lo que sucede en este sistema: todas las interconexiones y todas las formas en que si cambias una cosa, arruina otras. Es incomprensible y muchas organizaciones y empresas fracasan porque su software acumula lo que llamamos deuda técnica o arquitectónica”.
La deuda técnica es uno de los nombres más profesionales que los desarrolladores le han dado a un problema que, según ha demostrado la investigación de Silverthread, ha afectado a las empresas durante años y conduce a una menor productividad de los desarrolladores, una mayor rotación y una menor moral de los empleados.
Ahora, a Sturtevant le encanta ingresar a organizaciones como aquellas con las que tuvo problemas y resolver problemas que los desarrolladores sabían que tenían pero que no podían identificar.
«Los equipos que trabajan en las partes del código que tienen estos problemas no están contentos», dice Sturtevant. «Son improductivos, luchan contra los insectos todo el tiempo y están desmoralizados, trabajan hasta la medianoche del viernes sólo para intentar que las cosas funcionen, y el problema no es su culpa».
Una revelación en el MIT
Sturtevant obtuvo su maestría en el programa de Diseño y Gestión de Sistemas (SDM) del MIT justo cuando la economía colapsaba en 2008, por lo que decidió quedarse.
“Dije, disfruté tanto mis 18 meses en el MIT que no sé qué obtendré de un doctorado, pero sé que si me quedo en este entorno unos años más, será Vale la pena”, recuerda Sturtevant. «La comunidad es tan buena, las oportunidades son tan buenas, que sabía que conduciría a grandes cosas».
Sturevant era estudiante de doctorado cuando se topó con los artículos de MacCormack, en coautoría con la ex profesora de la Escuela de Negocios de Harvard y cofundadora de Silverthread, Carliss Baldwin.
“Leí esos periódicos y se me encendió una bombilla”, dice Sturtevant. «Como desarrollador de software, en empresas donde mi vida era un infierno, podría estar trabajando dentro de una parte de un código base que podría identificarse como problemático».
Como parte de su tesis doctoral, Sturtevant decidió regresar a una de las empresas donde tuvo problemas con el nuevo enfoque y descubrió que estaba trabajando en secciones de código mal estructurado (lo que a veces llama arquitectura espagueti) todo el tiempo. . También trabajó para cuantificar el impacto del problema y descubrió que los errores de software no solo eran peores en lugares con arquitectura espagueti, sino que también era más probable que estos errores dañaran la experiencia del cliente. Los desarrolladores que trabajaban en esta parte del código base tenían 10 veces más probabilidades de renunciar o ser despedidos.
Cuando Sturtevant obtuvo su doctorado, presentó los resultados como parte de una serie de seminarios web organizados por SDM. Asistieron más de 300 personas.
“Aparentemente, era un problema que tenía mucha gente”, recuerda Sturtevant. “Los participantes eran ejecutivos de grandes empresas. Después de eso, mi teléfono suena sin parar. Recibo llamadas de grandes empresas con muchos graduados del MIT que pasaron por el programa SDM y estaban escuchando. Todos decían: ‘Yo también tengo este problema’. ¿Tiene algún producto que pueda comprar?’”
Sturtevant fundó Silverthread con MacCormack, Baldwin y Michael Davies, profesor titular del MIT y empresario tecnológico. Uno de los primeros exalumnos del MIT con los que Silverthread estuvo relacionado trabajó en una gran agencia gubernamental.
«Dijo: ‘Apuesto a que esto explica muchos de los problemas con nuestro código, apuesto a que explica por qué fracasan programas gubernamentales completos y apuesto a que explica gran parte del desperdicio que se produce en el desarrollo de software para el gobierno'». Sturtevant lo recuerda. «El gobierno tiene algunas de las bases de código más grandes y antiguas del mundo».
El trabajo inicial de Silverthread con los clientes diagnosticó sus problemas utilizando los algoritmos desarrollados por MacCormack y Baldwin. Hoy en día, la empresa está trabajando para hacer que la arquitectura espagueti sea más modular, de modo que pueda modificarse sin crear una complejidad insuperable y problemas inexplicables.
Soluciones y filosofía de Silverthread
Silverthread llama a sus herramientas CodeMRI Suite, que incluye CodeMRI Portfolio y CodeMRI Diagnostic para evaluar la salud técnica y el impacto económico de los sistemas de software, y CodeMRI Care y CodeMRI Modernize para remediar bases de código.
Sturtevant describe una buena arquitectura de código, como los bloques LEGO. Las piezas se pueden combinar, apilar o mover de forma modular. Piensa en la arquitectura espagueti como bloques de LEGO que se han fusionado.
«Si piensas en una enorme base de código con decenas de miles de archivos de código fuente, grandes aplicaciones como Microsoft Windows o Google, mucha gente trabaja para crear diferentes algoritmos y codificar el conocimiento del dominio en el software», dice Sturtevant. “Es la forma más pura de trabajo del conocimiento y es como escribir poesía colectiva, excepto que gran parte de la poesía es basura y se ha ido acumulando durante décadas y ha caducado y podrido de diferentes maneras. Mediante el uso de técnicas automatizadas, podemos descubrir la estructura oculta de esta enorme cosa que nadie puede entender y luego solucionar estos problemas”.
El futuro de las bases de código con Silverthread
Silverthread está creciendo rápidamente mientras trabaja con bancos, nuevas empresas de biotecnología, empresas automotrices y agencias gubernamentales. Sturtevant dice que las herramientas de Silverthread son independientes de la industria y tienen valor para cualquier base de código grande que se haya construido a lo largo del tiempo.
En última instancia, Sturtevant dice que las bases de código que Silverthread ayuda a construir son más dinámicas, lo que permite a las empresas aprovechar todos los beneficios de innovaciones como la computación en la nube.
«Cuando su software es como ladrillos LEGO, puede comprender las relaciones entre cada parte y cada parte puede evolucionar de forma independiente», dice Sturtevant. «Este es un sistema saludable».