0
Brian Fitzgerald
Lero—the Irish Software Engineering Research Centre
Los esfuerzos individuales para mejorar la capacidad de desarrollo de software son inconexos y
no es probable que proporcionen la capacidad necesaria para mantenerse al día con los
avances en la tecnología de hardware y las oportunidades que brinda Big Data.
Aunque apenas tiene 50 años, el dominio del software ya ha soportado una crisis bien
documentada.
Software Crisis 1.0 surgió por primera vez en la década de 1960, y el software tomó más
tiempo y cuesta más desarrollar que lo estimado, y no funciona muy bien cuando finalmente
se entrega. Sin embargo, el software es una de las grandes historias de éxito de la revolución
de la computación, lo que provoca un gran cambio en la forma en que hacemos nuestra vida
cotidiana.
En los últimos 50 años también se han producido enormes avances en la capacidad del
hardware, con reducciones drásticas en los costos de hardware junto con incrementos
igualmente impresionantes en el poder de procesamiento y la proliferación de dispositivos.
Una cantidad casi infinita de datos ahora está disponible a través de sensores y aplicaciones
ubicuas como Google.
Los avances en la tecnología de hardware junto con la gran cantidad de datos potencialmente
disponibles ofrecen enormes oportunidades para individuos, empresas y la sociedad.
Desafortunadamente, no hemos visto avances similares en la capacidad de desarrollo de
software, dando lugar a lo que llamo Software Crisis 2.0. Los esfuerzos individuales buscan
abordar esta crisis: análisis de datos, procesamiento paralelo, nuevos métodos de desarrollo,
servicios en la nube, pero están desarticulados y no ofrecen la capacidad de desarrollo de
software necesaria.
Con los años, varios estudios han confirmado Software Crisis 1.0. Per Flaatten y sus colegas
calcularon el tiempo promedio de desarrollo del proyecto a los 18 meses (Foundations of
Business Systems, Dryden Press, 1989), una cifra conservadora, dado que otras estimaciones
sitúan la cifra en tres años ("The Software Trap: Automate-or Else, "Business Week, 9 de mayo
de 1988, pp. 142-154) e incluso hasta cinco años (T. Taylor y T. Standish, "Pensamientos
Iniciales sobre Técnicas de Prototipado Rápido", ACM SIGSOFT Software Eng. Notes, volumen
7, n.º 5, 1982, pp. 160-166).
Quizás esto no es sorprendente, dado que un estudio de IBM estimó un 68 por ciento de todos
los proyectos de software sobrepasaron sus horarios (P Bowen, "Desarrollo rápido de
aplicaciones: conceptos y principios", documento de IBM no.
94283 UKT0829, 1994). En relación con el costo, el estudio de IBM también sugirió que los
proyectos de desarrollo fueron tanto como un 65 por ciento por encima del presupuesto.
De hecho, el término shelfware se acuñó para referirse a los sistemas de software que se
entregan pero nunca se usan Aunque el Grupo Standish continúa pinta una imagen bastante
sombría de las altas tasas de falla del proyecto de software
(http://standishgroup.com/newsroom/chaos_manifesto_2011.php), sus hallazgos y
metodología han sido cuestionados (J. Eveleens y C. Verhoef, "The Rise and Fall").de los
Informes CHAOS, "IEEE Software, 2010, pp 30-36).
De hecho, creo que Software Crisis 1.0 ya pasó, y que la miríada de avances incrementales
impulsando el desarrollo de software han cambiado nuestras vidas para mejor. Los cambios en
la práctica en última instancia han llevado al campo al punto donde el software ahora se
desarrolla rutinariamente en gran parte a tiempo, dentro del presupuesto y cumpliendo con
las expectativas del usuario.
Lamentablemente, Software Crisis 2.0 se avecina. Como se muestra en la Figura 1, esta crisis se
debe a la incapacidad de producir software que pueda aprovechar el asombroso aumento en
los datos generados en los últimos 50 años y las demandas de los dispositivos y usuarios que
pueden manipularlo.
GRANDES DATOS Y EL SURGIMIENTO DEL NATIVO DIGITAL
En ese momento, Schmidt estimaba que la cantidad de datos se duplicaba cada cinco años. En
2010, Dave Evans, Chief Futurist de Cisco Systems, calculó que 35 mil millones de dispositivos
estaban conectados a Internet, lo que representa más de cinco veces la población del planeta
(www.readwriteweb.com/archives/cisco_futurist_predicts_internet_of_things_1000_co.php).
Se calcula que esta cifra aumentará a 100 mil millones de dispositivos en 2020, dando lugar al
concepto de Internet de las cosas (IoT), la representación virtual de cosas identificables de
forma única en una estructura similar a Internet. Un proyecto ejemplar diseñado para el IoT es
el plan de Hewlett-Packard para colocar un trillón de sensores de polvo inteligentes en todo el
mundo como parte de una infraestructura de red de detección en todo el planeta. Estos
sensores detectarán una gran variedad de factores, que incluyen movimiento, vibración, luz,
temperatura, presión barométrica, flujo de aire y humedad, y tendrán aplicaciones obvias en el
transporte, la salud, la administración de energía y la automatización de edificios. Buscando
extender el concepto de IoT, Usman Haque propone un "ecosistema de ambientes" a través de
su proyecto Pachube (www.haque.co.uk/pachube.php), un servicio que permite a los
consumidores etiquetar y compartir datos de sensores en tiempo real de objetos y entornos
globalmente. El éxito potencial de la innovación dirigida por el usuario, la creación conjunta de
valor, y el crowdsourcing de alto perfil para resolver complejos problemas de I + D para la
NASA, Eli Lilly y Du Pont resaltan el papel crucial del nativo digital. Para los 20 años, los nativos
digitales habrán pasado 20,000 horas en línea y podrán afrontar, e incluso recibir, una
abundancia de información (S. Vodanovich, D. Sundaram y M. Myers, "Nativos digitales y
sistemas de información omnipresentes", Information Systems Research, vol 21, n ° 4, 2010,
pp 711-723). En lugar de resistir la tecnología, los nativos digitales tienen un apetito insaciable
por sus nuevas aplicaciones. A principios de 2012, las suscripciones celulares de dispositivos
móviles alcanzaron casi 6 mil millones (http://mobithinking.com/mobilemarketing-
tools/latest-mobile-stats). Aunque obviamente no está distribuido equitativamente, esto
equivale a casi el 90 por ciento de la población mundial.
INICIATIVAS DE INVESTIGACIÓN
Varias iniciativas han tratado de abordar Crisis de software 2.0. Tempranos esfuerzos en
ingeniería de software asistido por computadora (CASE) buscaron automatizar el desarrollo de
software, pero no han resuelto el problema De manera similar, las iniciativas en las
arquitecturas de software, los patrones, la reutilización y las líneas de productos de software
buscaban proporcionar mejoras basándose en las bases existentes. Los modelos de madurez
de la capacidad del software y las iniciativas de desarrollo de software, como la ingeniería de
métodos, también han sido objeto de investigación.
Hemos entrado en una era en la que los límites de nuestra imaginación deberían ser el único
factor limitante para aprovechar los avances de los últimos 50 años para ayudar a resolver
problemas insolubles en áreas como la salud, la eficiencia energética y el clima.
trol. Pero el primer paso para resolver cualquier problema es reconocer su real existencia. Este
artículo puede parecer controvertido, pero busca lograr el fácil nombramiento de parte del
problema.
Los pasos subsecuentes mucho más complejos requieren la identificación de una agenda para
resolverlo. Brian Fitzgerald ocupa la Cátedra Frederick Krehbiel en Innovación en Global