¿Qué tan complicado es hacer una aplicación de software especialmente para mi negocio o empresa?

En gran medida construir una aplicación o un programa que funcione en la “nube” (internet) y se acceda desde una tableta, celular o laptop es como construir una casa:

Se comienza con la planeación del proyecto desde el presupuesto hasta el diseño arquitectónico. Después se limpia el terreno, se realiza la excavación para proceder con la cimentación. Una vez terminada la cimentación, se procede con los muros, fontanería, instalación eléctrica, etc. Posteriormente se construyen los techos, se termina la instalación eléctrica y finalmente se terminan los pisos, ventanas y puertas.

 

En la construcción, errores en el diseño arquitectónico o defectos en la cimentación elevan enormemente los costos del proyecto inicial (2). Por ejemplo, un resumidero de agua que se presenta solamente en ciertos meses del año puede provocar un deslavado de la arcilla que a su vez puede ocasionar inclinación de los cimientos y más tarde generar cuarteadores graves en los muros de la casa. De igual manera, la etapa de análisis de requisitos y diseño del programa computacional es análoga a la etapa de cimentación del proyecto.

Es aquí donde surge el primer reto en la construcción de software a la medida de una empresa donde muchas veces el consultor no llega a descubrir esas irregularidades del terreno o fenómenos temporales que pueden repercutir grandemente en los costos del proyecto.

Para minimizar este riesgo de la etapa de diseño de software, es necesario seguir metodologías probadas como “Design Thinking” (3) o “SolTrees” (4), para realizar el análisis de la situación actual, efectos-causas y sus posibles soluciones.

El trabajo de planeación, limpieza del terreno, cimentación y toda la estructura de la casa toma mucho tiempo y esfuerzo. Así que durante un buen lapso no se vislumbra cómo quedará la casa.

De la misma manera, durante las primeras etapas de un proyecto de software, no se ven todas las pantallas o ventanas con las funciones que se quieren que realice el sistema. En el caso de la construcción del software, la cimentación no es evidente. Al menos en la construcción de una casa se pueden observar físicamente los trabajos de excavación y fontanería, pero en software tenemos que recordar que se trata de informática y las bases de datos, código y gráficos son totalmente intangibles y están localizados en lo que hoy llamamos “la nube”.

Por esta razón, se recomienda aplicar un proceso de desarrollo de software basado en la filosofía “Agile”, a partir de la cual se establezcan entregas de funcionalidad estratégicas para que el empresario tenga resultados palpables lo más pronto posible y de esta manera pueda retroalimentar al equipo de desarrollo de software sobre aciertos o posibles mejoras que se pueden realizar al sistema.

Conforme el empresario y su equipo comienzan a retroalimentar al equipo de desarrollo de software sobre los avances, crece el nivel de colaboración y es aquí donde pueden descubrirse nuevas ideas para implementar en software o en la operación del negocio.

Al igual que en la construcción de una casa, si se quiere un cambio en el diseño arquitectónico y la casa ya está en obra negra, resulta muy costoso pues puede requerir destruir muros, volver a excavar para reinstalar fontanería, etc., etc. Es cierto que en la construcción del software hay más flexibilidad para realizar cambios a las ventanas o funcionalidades que se tenían contempladas en un inicio y es precisamente por esta razón que se dice que “un proyecto de software nunca se termina”, ya que siempre hay maneras de seguir mejorando o evolucionando el programa o aplicación de software.

No obstante, el reto es siempre respetar los tiempos y el presupuesto para el proyecto.

Para superar el reto de los tiempos y el presupuesto del proyecto, la estrategia de desarrollo de software debe ser especialmente diseñada para que el empresario pueda incluir estas nuevas ideas de mejora o innovación conforme se avance en el proyecto, minimizando los costos imprevistos, de tal manera que no se desborde el presupuesto.

Por ejemplo, un proyecto se puede dividir en fases o etapas de acuerdo con la estrategia de implementación que contempla varios aspectos, entre ellos la complejidad de las distintas funcionalidades, el tiempo de implementación, la firmeza de los requerimientos, el potencial de innovación y las prioridades del empresario.

Finalmente, llega la hora de la puesta en marcha de la nueva aplicación de software y a diferencia de una casa que se ocupa con cierta rapidez, la nueva tecnología requiere de capacitación y un periodo de adopción. Sin embargo, este periodo de adopción no debe ser doloroso y los beneficios de la tecnología deben sentirse desde el primer día.

Si el periodo de adopción del nuevo programa de cómputo resulta complicado, poco intuitivo y algunas operaciones toman mucho más tiempo que originalmente, entonces, debe considerarse un análisis de las complicaciones que se están teniendo y proponer soluciones que pueden incluir cambios en la funcionalidad de la aplicación de software.

Para minimizar el riesgo de un largo periodo de adopción de la tecnología, desde un inicio debe trabajarse en soluciones amigables, intuitivas y fáciles de usar.

Las soluciones de tecnología deben de adaptarse a las personas y no al revés.

Por ejemplo, un buen indicio de que el software es intuitivo y amigable es que no requiera de un manual, sino que los elementos de las pantallas expliquen por sí mismos la funcionalidad y propósitos de las operaciones a realizar.

Si se explican todos éstos aspectos desde un inicio y se trabaja en el proyecto con base en metodologías probadas que se centran en el aprendizaje colaborativo, el desarrollo de la aplicación de software especialmente diseñada para la empresa o el negocio será un éxito y rendirá los frutos esperados como:

  • Un retorno de la inversión atractivo por ahorros en la operación, al eficientizar, automatizar y mejorar procesos del negocio.
  • Una pronta adopción de la tecnología.
  • Mayor capacidad para abarcar más mercado o atacar nuevos nichos de mercado.
  • Potencial para innovar en el modelo de negocio y superar por mucho a la competencia.

Bibliografía:
(1) https://www.termiser.com/fases-proceso-de-construccion-de-un-edificio/
(2) https://www.asefa.es/comunicacion/patologias/49-patologias-en-cimentaciones-posibles-causas
(3) http://www.designthinking.es/inicio/
(4) Lino, Ulises (2016). Metodología SolTrees. Derechos de Autor 03-2016-060311530600-01.

Créditos de imágenes:

Modelo de arquitectura:
Alexei Vranich [CC BY 4.0 (https://creativecommons.org/licenses/by/4.0)]
https://commons.wikimedia.org/wiki/File:Virtual_model_pumapunku.png

Architec Model 1.
Shahkar shah arc [CC BY-SA 4.0 (https://creativecommons.org/licenses/by-sa/4.0)]
https://commons.wikimedia.org/wiki/File:Architecture_Work.jpg

Large Building
https://upload.wikimedia.org/wikipedia/commons/0/05/Tencent_Headquarters.jpg
RonaldFNg [CC BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0)]