Negocios Volver al Blog

Los Costos Ocultos en el Desarrollo de Software

12 minuteminutos readde lectura
Allan Seeman
ByPor Allan Seeman

13

¡Felicidades!

Acabas de comprar una casa. No es la casa de tus sueños. Hay algún daño en la estructura y necesita mucho trabajo. Pero básicamente tiene lo que necesitas. 3 dormitorios. 2 baños. Una cocina. Sala. Cuarto de lavado. Algo de almacenamiento. Sabes que tendrás que expandirte en algún momento, pero por ahora es bueno. Lo hiciste ! Deberías estar muy orgulloso. Es lo mismo con el desarrollo de software.

Para ahorrar tiempo, decides hacer el trabajo tu mismo. Después de todo, sabes lo que quieres. Miras DIY en la TV. Claro que parece difícil, pero básicamente derribas algunas paredes y levantas algunas paredes nuevas. ¡Viola! Una capa de pintura. Una almohada de tiro en una otomana. Un poco de arte en las paredes. Todo está terminado en un par de semanas y 30 minutos de tiempo de TV.

Pero siempre hay costos ocultos. La plomería necesita ser actualizada. La pared se derriba para expandir el baño, y hay moho. La bañera con patas de garra en la que te pusiste el corazón no entrará por la puerta. Siempre hay algo. La ventaja de estar en un programa de televisión es que a menudo tienes un experto que puede entrar y resolver el problema. Pero qué sucede cuando estás solo. Has comprado algo de lo que ahora eres responsable.

Esto debería sentirse muy familiar. Todos hemos sido tentados por las ofertas de sitios web de $ 99. O software de desarrollo de aplicaciones móviles gratuito. Puedo buscar en Upwork y encontrar a alguien que pueda hacer mi trabajo por $ 3 por hora. ¿Qué puede salir mal? ¿Ahorrar dinero no significa que puedo hacer más? Si ahorro dinero en el desarrollo de software, ¿no significa que puedo gastar más en marketing?

El costo oculto de una violación de seguridad

Si bien todos podemos pensar en ejemplos personales de desarrollo de software que han salido mal, echemos un vistazo a una historia reciente de las noticias. El año pasado, en este momento, Equifax sufrió una filtración de datos que afectó a más de 147 millones de personas. La agencia de informes de crédito al consumidor fue pirateada y las cuentas de todos sus clientes quedaron expuestas. Una de las violaciones de datos más grandes en la historia de los EE. UU. Hizo que todos miremos cómo manejamos nuestra información crediticia. Con más de 23 demandas colectivas por un total de miles de millones de dólares, sería difícil encontrar a alguien que no conociera a alguien que se haya visto afectado por la falta de seguridad. Entonces, esto requiere que pensemos en nuestro enfoque de TI de una manera diferente. Aunque a menudo el enfoque de nuestros proyectos ha sido un proceso de negocios más económico y eficiente, este ejemplo muestra algunos de los defectos en ese pensamiento. Puede hacer que infravaloramos los datos que estamos recopilando y trabajando. A medida que consideramos ahorrar cientos o miles de dólares en nuestro software reduciendo las esquinas, debemos recordar el costo de exponer los datos de nuestros clientes. Al final, podemos encontrar que gastar el dinero extra se está volviendo necesario. El costo oculto del código mal diseñado y mantenido

Resolver los problemas que un código mal diseñado y mantenido pueden ser complejos. No siempre se trata de usar las herramientas correctas o el software de desarrollo. Generalmente se trata de prácticas sólidas de administración de software. Norman Guadagno, director del equipo de Visual Studio Team System de Microsoft, afirma que «cuanto más avanza un proyecto, más difícil es entender cuál fue el propósito original». Esto también causa un problema con la calidad del proyecto. Si profundizamos en el proyecto y nos alejamos de la intención original, a menudo significa que debemos hacer cambios en la estructura subyacente para poder continuar. Guadagno continúa diciendo que un problema común con las aplicaciones empresariales es que no se presta suficiente atención a la calidad. Si un desarrollador no está seguro de todo el proyecto, puede haber una mentalidad que se cuela. «Podemos resolverlo más tarde.» Como un proyecto puede ser impulsado por limitaciones financieras y de tiempo, no hay tiempo para resolver todo antes de comenzar Esto a menudo resulta en un producto pobre. Con las limitaciones de tiempo, ¿con qué frecuencia un desarrollador tiene tiempo para retroceder y corregir el código del que no estaba seguro? Los ingenieros se enfrentan a muchas soluciones. Lo cual puede ser costoso en términos de presupuesto y tiempo. Guadagno concluye con: «Es menos costoso construir calidad en vez de agregar calidad después de los hechos».

El costo oculto de no incluir el desarrollo en el proceso de diseño

A medida que el entorno web se vuelve cada vez más complejo, se vuelve crucial considerar las diversas formas en que se puede interactuar con una experiencia Web. Un diseñador puede proporcionar una representación ideal de cómo se verá su software. Pero también deben considerar cómo las interacciones funcionarán juntas. ¿Va a bloquear el pop-up una interacción necesaria? ¿Cómo se verá ese menú desplegable cuando esté completamente expandido? Diseñar en una isla requerirá volver a realizar cambios en el diseño para que realmente funcione. Desarrollar y diseñar en forma aislada costará tiempo a largo plazo a medida que cambian los diseños y los desarrolladores modifican la estructura para hacer que todo funcione en conjunto. Los proyectos más frustrantes son aquellos en los que los clientes no entienden que el desarrollo del front-end debe estar involucrado en el proceso de diseño. Los proyectos más gratificantes son aquellos en los que se incluye el desarrollo de front-end desde el principio. Cuanto más consideremos el desarrollo del front-end mientras miramos el diseño, más gratificante y exitoso será el proyecto. Y eso es exactamente lo que queremos. Proyectos exitosos.

El costo oculto de equipos con poco personal

Si echas un vistazo a la App Store, verás un millón de aplicaciones diferentes. Muchos de ellos son construidos por pequeños equipos. Un equipo de 3 personas puede manejar muchas de las tareas relacionadas con la creación de una aplicación. Pero a medida que el proyecto crece, la necesidad de más personas se vuelve más clara. No hay duda de que los equipos pequeños tienen todas las habilidades de un equipo más grande. Ellos pueden hacer todas las tareas, por supuesto. Pero la pregunta que debemos hacernos es, ¿deberían estar haciendo todas las tareas? En un equipo pequeño, ¿hay lugar para otras opiniones? Otras formas de hacer algo Al final, una vez que haya determinado un camino, depende del trabajo del pequeño equipo. Mientras trabajan en una solución, la producción debe suspenderse. Cuantas menos personas tengan, menos recursos tendrá para hacer el trabajo que usted acuerda que debe hacerse. Las soluciones son parte de los proyectos. Nunca evitarás errores. Pero si eliminas a ⅓ de tu equipo para arreglarlos, entonces estás limitado a tus recursos en otra área. El proyecto típico llevará de 4 a 6 meses y, a menudo, más. Cuanto más pequeño sea su equipo, más probable será que los miembros del equipo se centren en la resolución de problemas y no en la planificación. Con un equipo más grande, siempre hay alguien que puede entrar y agregar perspectiva. El líder del equipo podrá decir … «Ok, trabajen en esto mientras trabajamos en esta otra parte». Si bien es posible que desee ahorrar dinero en desarrolladores de un equipo pequeño, eventualmente pagará en exceso debido a la duración de el proyecto.

Tal vez piense: «Está bien, pero mi proyecto no necesita cientos de ingenieros». Es cierto que la mayoría de los proyectos no necesitan cientos de ingenieros, pero la mayoría de los productos necesitan al menos un pequeño equipo de ingenieros experimentados, diseñadores y personas productoras para producir un producto final que sea competitivo y que genere resultados comerciales verdaderos. Es común tener entre cinco y diez personas trabajando en una aplicación de plataforma única (iOS / Android).

Conclusión:

Como desarrollo de software, es parte de nuestro trabajo señalar algunos de los costos ocultos. Para anticipar los problemas que tendrá. Para evitar accesos directos en el proceso y para enfocarse en sistemas que recompensarán a largo plazo. Nunca es fácil romper un piso de concreto en el sótano para reemplazar una tubería de alcantarillado. Es por eso que obtienes a alguien más para hacerlo. Es difícil. Es desordenado. También es necesario. Mientras tanto, puedes concentrarte en el color de la pintura y el azulejo correcto para el baño. Entonces tienes exactamente la casa que quieres. Sin compromisos.