Tom DeMarco El Arqueólogo de los Proyectos

Tom DeMarco es uno de los decanos de nuestra profesión. Fue reconocido en 1986 con el premio Warnier por su “contribución vitalicia al campo de la computación”, y en 1999 con el premio Stevens por su “contribución a los métodos de desarrollo de software”. Es autor de algunos de los libros más reconocidos en la gestión de proyectos de software, tales como “Peopleware”, “The Deadline”, y “Waltzing with Bears”.

Actualmente, Tom es socio distinguido en Cutter Consortium. Se dedica a dar consultoría estratégica en TI, y realiza actividades de investigación en el litigio de proyectos. Tom estuvo en México durante el Cutter Summit en el mes de octubre, y tuvimos oportunidad de platicar con él.¿Qué haces en el litigio de proyectos?
La litigación se da cuando fracasa un proyecto subcontratado. Entonces, se trae a un tercero (como yo) para investigar qué salió mal en el proyecto, y si las fallas corresponden al cliente o al proveedor. Esto puede parecer poco atractivo, pero para mi es fascinante porque me permite ser un “arqueólogo”
de los proyectos.

¿Consideras que la práctica de desarrollo de software realmente ha evolucionado en los últimos 20 años?
Me extraña esta pregunta. Yo creo que hemos transformado el mundo. Gracias a las TI, el mundo hoy es completamente diferente a lo que era hace 20 años. Lo hemos convertido en un mundo donde los bits ya son más importantes que los átomos. No hubiéramos podido lograrlo sin hacer las cosas bien.

Tal vez puedas voltear a ver las prácticas de la industria y pensar: “eso es simplemente lo que Yourdon o Dijkstra plantearon hace 30 años, no hay un avance”. Para mí el avance es que hemos tomado eso y lo hemos llevado de los laboratorios a la industria, a una industria que ha cambiado al mundo.

¿Entonces por qué hay un índice tan alto de fracaso en proyectos de TI?
Las personas que promueven los índices de fracaso en los proyectos son reporteros tratando de vender una historia, y es difícil vender una historia con buenas noticias. Yo soy un ingeniero, y para nosotros el fracaso es algo sobre lo que se construye. Es algo necesario para poder hacer algo grandioso. Por supuesto que hay proyectos que fracasan, y yo creo que continuamente aprendemos de ellos.

¿Cómo ha cambiado el rol de los profesionistas de software en este tiempo?
Los roles técnicos han evolucionado sustancialmente en cuanto a que se han especializado. Hace 30 años, tanto los compiladores, como los sistemas operativos, y aplicaciones de negocio eran construidos usando las mismas técnicas y lenguajes. Hoy en día, puedes conocer a otro profesionista de software y darte cuenta de que no tienes nada de que platicar con él debido a que hacen cosas completamente diferentes.

Por otro lado, creo que la comunidad de gerentes de proyecto también ha madurado bastante. Creo que todos hemos comprendidoque el aspecto sociológico de los proyectos es igual o más importante que el tecnológico.

La formación de equipos de personas en nuestra industria es algo único. La noción de tener a 20 o 30 personas realizando tareas intelectuales en conjunto –donde nadie es dueño de todo sino que cada quien es dueño de una pequeña parte– es algo que no tiene muchos paralelos en el mundo antes de nosotros, y que sirve de guía en cuanto a la forma de trabajar en otras industrias hacia el futuro.

¿Podrías dar un ejemplo de este impacto en otras industrias?
Por ejemplo, uno de mis clientes es Pixar, quienes hacen las películas de animación. Si analizamos la forma en la que se desarrolla una de sus películas, y un proyecto de
software, encontramos una gran cantidad de analogías. Tienen los mismos elementos y patrones: la formación de equipos intelectuales con habilidades diversas y complementarias, la planeación de actividades, el diseño, la implementación, la gestión de la configuración de los artefactos. Este es un ejemplo de cómo la evolución que se ha dado en la forma en que trabajamos en la industria de TI, se está propagando a otros campos.

Considerando la triada de “herramientas, personas y procesos”, ¿cual nos hace falta trabajar más?
Cuando mencionas “herramientas, procesos y personas” implicas que hay una especie de balance, pero en realidad no lo hay. El proceso y las herramientas son elementos menores de un proyecto. Los procesos son el aspecto más fácil de ver y representar, y por lo tanto tendemos a exagerar su importancia. Sin embargo, su importancia es mucho menor que la de aspectos humanos tales como el desarrollo de talento o la formación de equipos.

¿Cual es la habilidad más importante que debe tener un desarrollador de software?
Precisamente la habilidad de desarrollar nuevas habilidades. Nuestro campo cambia continuamente y no podemos estancarnos en un solo método ni tecnología. Esto aplica no solo a las personas, sino también a las organizaciones.

¿Qué tan importante es que un proyecto salga en costo y tiempo?
La capacidad de predecir efectivamente el costo y tiempo de un proyecto es algo deseable, pero no es lo más importante. La obsesión de poder predecir efectivamente nos obliga a adoptar estrategias de mayor control, lo cual se traduce en menor velocidad. Esta presión se da principalmente cuando el valor de lo que construimos es marginal respecto a su costo. Si voy a construir un sistema que está presupuestado en un millón de dólares y va a traer un millón y medio de ganancias, entonces debo tener mucho cuidado porque el proyecto puede terminar costando más que su ganancia. Pero si voy a desarrollar un proyecto que va a costar un millón de dólares y va a traer 200 millones de ganancia, entonces no importa si termina costando más de lo planeado. ¿Alguien se acuerda de si Photoshop se terminó a tiempo? No, lo que importa es que cambió al mundo.

Ante esto, la pregunta que hago a los lectores de SG es ¿Por qué están construyendo sistemas cuyo valor es tan cercano a su costo? Mi recomendación es que digan no a estos proyectos y busquen aquellos cuyo valor sea al menos 10 veces su costo.

¿Qué tendencias de la industria llaman tu atención actualmente?
Una de las tendencias que estoy vigilando y que creo que tendrá un gran impacto en la industria es la de las tiendas de aplicaciones, como la Apple App Store. Creo que este concepto de tener un mercado en línea donde los usuarios puedan adquirir aplicaciones por unos cuantos dólares es algo que no debemos perder de vista. Lo que esto hace es habilitar a legiones de desarrolladores de software independientes para que puedan obtener dinero por sus servicios directamente del mercado, sin intermediarios. Es cierto que Apple (o las otras empresas que coordinan tiendas de este tipo) son una especie de intermediario, pero su interés principal es facilitar la transacción, más por el efecto que esto tendrá en la venta de su hardware, que por la comisión que puedan llevarse.

Actualmente, las ventas del Apple App Store exceden el millón de dólares diarios. Apple se lleva una comisión del 30%, pero aun así estamos hablando de 700 mil dólares diarios que de pronto le están llegando a la comunidad de desarrolladores de software. Y esto es solo el principio. Estamos hablando de algo que puede cambiar la forma en la que se desarrolle y mercadee el software hacia el futuro.