6 minute read
Desarrollo de software, pieza clave de transformación empresarial
from Revista Consultoría, Suplemento Especial "Las Mejores Consultoras en Tecnología de la Información"
Suplemento TI
Por: Javier Centeno Tovar, Director General STO Consulting. info@stoconsulting.com www.stoconsulting.com @STOConsulting ow.ly/Hff150DsMOm STO Consulting ow.ly/Luq350DsMOg STO Consulting ow.ly/WLZu50DsMOj STO Consulting ow.ly/5rZZ50DsMOe En la actualidad, a partir de las exigencias derivadas de la globalización, los países líderes en tecnología han apostado al desarrollo de "frameworks" o directrices de trabajo que permitan conocer cómo cada empresa, dentro de su sector, afronta y mitiga los riesgos en sus operaciones, incrementa las oportunidades e identifica cuál es la capacidad para desempeñar sus actividades bajo los más altos estándares de calidad y productividad.
Para lograr orden, estructura y agilidad a las directrices mencionadas se apoyan en marcos de trabajo como CMMi (Capability Maturity Model Integration), SCRUM, Kanban, PMI agile, entre otras.
Haciendo referencia a los dos primeros marcos de trabajo, en el caso de CMMi se puede definir una serie de directrices enfocadas en áreas de capacidad y práctica, que se orientan al aseguramiento de estructuras efectivas y aprobadas para desempeñar diferentes actividades.
Por otro lado, podemos referenciar que se complementa con la aplicación de metodologías ágiles como SCRUM y el establecimiento de Indicadores Clave de Desempeño (KPI´s por sus siglas en inglés), estos indicadores se diseñan una vez que la empresa alinea adecuadamente sus procesos, lo cual integra la definición de las actividades necesarias para la correcta ejecución de los procesos, identificación y establecimiento de las reglas de negocio, aplicación del marco normativo y de los responsables de la ejecución de cada una de las actividades, elementos que buscan el rendimiento y la constante evolución de la empresa.
Para los proyectos de desarrollo o mantenimiento de sistemas, es necesario optimizar tiempo y costo de los mismos, a través de un enfoque sistémico que se oriente a la colaboración permanente de todos los involucrados; mediante el uso de los mejores recursos tecnológicos y humanos con estándares de calidad y metodologías probadas que garanticen su ejecución.
En el desarrollo de un software, debemos entender que el marco conceptual se origina en una programación lógica que todo sistema de cómputo requiere para operar en forma correcta y proporcionar al usuario una interfaz intuitiva, fácil de manejar y eficiente en las funciones que el propio programa ejecute.
Se determinan cuáles son los elementos necesarios y suficientes para la planificación, definición, diseño, desarrollo, pruebas, puesta en marcha, operación y mantenimiento del denominado ciclo de vida del desarrollo del software, recayendo la responsabilidad en un equipo de desarrolladores expertos en la elaboración de paquetes de software, apoyados por la utilización de uno o varios lenguajes de programación, entre los que destacan Java, Python, SQL, JavaScript, .Net, y otros.
Cubriendo requerimientos
Como primera etapa, se necesita obtener las necesidades y requisitos del programa, es decir, lo que el cliente solicita para cubrir una necesidad específica que ha sido identificada y que eventualmente no cubre un programa ya desarrollado y puesto en el mercado, solicite una adaptación a un programa preestablecido o requiera atender una necesidad específica que no se cubre con ninguna de las opciones anteriores.
Aquí destaca -por su importancia- el papel de los desarrolladores que tienen las habilidades y experiencia necesaria para reconocer la forma en que se cubrirán los requerimientos, sobre todo evitar que estos últimos sean ambiguos, incompletos o que pretendan cubrir en lugar de una necesidad del usuario, “una necesidad de él mismo”.
El resultado de la gestión de estos requisitos, se plasman en el documento de definición y administración de requerimientos (Requirements Definition and Management RDM), cuya estructura es dictada por el estándar CMMi, y asimismo se define un modelo donde se contemplan las áreas en concurso que serán participes del desarrollo. Del levantamiento adecuado de los requerimientos, y la forma en que se definan los casos de uso, serán determinantes para el logro de los objetivos del programa a desarrollar.
Una vez definidos en forma clara cuales son los requisitos, se procede a modelar cómo se visualizará en términos generales el software, lo que representa la trazabilidad e incorporación de elementos que resaltan en la implementación tecnológica, como lo serían los propios elementos de las tecnologías de la información, comunicaciones y definición de los casos de uso que permiten abarcar una amplia gama de funciones que se ejecutarán en el sistema, a través de la aplicación de la metodología ágil, mediante los sprint definidos se establecen las funcionalidades del sistema; obteniendo un modelo cercano a la visión del cliente.
Suplemento TI
Generación del código de programación
Corresponde a una de las partes más complejas del proceso, y está íntimamente ligada a las habilidades de los programadores en función del conocimiento de los lenguajes que serán utilizados, y la funcionalidad que se pretende que el programa ejecute.
Una vez realizado el desarrollo mediante la programación basada en el diseño que se estableció en la segunda etapa, el siguiente proceso será comprobar que el software realice correctamente las tareas indicadas en la especificación a través de las UAT’s, verificando en forma unitaria cada funcionalidad desarrollada y posteriormente ejecutar pruebas de integración y de performance para la consecución de los objetivos planteados.
Es importante que los que realicen las pruebas sean personas distintas a las propios desarrolladores, aunque es responsabilidad de estos la documentación y prueba previa de los trabajos; por lo que resulta imprescindible contar con los mejores y más calificados recursos que permitan acelerar los trabajos, y sobre todo la atención en los puntos finos que un programador bisoño puede pasar por alto con facilidad.
Por último, y de acuerdo a los modelos y metodologías propuestas, se debe considerar la puesta en ejecución de desarrollo y su liberación en productivo, debiendo ampararse con la documentación suficiente que permita la trazabilidad del desarrollo del software, mantenimiento y futuras ampliaciones; siguiendo paso a paso las etapas, y así poder intervenir de manera efectiva ante los imprevistos que puedan impactar en la calidad del producto que se le entrega a un cliente.
Tomemos en cuenta que un desarrollo de este tipo le permite a nuestros clientes generar y controlar en todo momento los accesos a su información dentro de los procesos involucrados con las actividades de su empresa, mediante estándares de seguridad y barreras de protección.
En la empresa que represento hemos adoptado modelos de vanguardia, entendiendo que el desarrollo del software se orienta a la adaptación de las necesidades del cliente evitando actualizaciones permanentes e inversiones inesperadas, ya que satisface los requerimientos puntuales que una aplicación de mercado eventualmente no puede cumplir, y su generación a través de una metodología ágil permite garantizar la calidad en la ejecución del desarrollo requerido.
Somos una empresa 100% mexicana, con 19 años de experiencia en la implementación de aplicaciones y desarrollo de software, durante todo este tiempo las intervenciones por nuestra parte han sido exitosas. Lo anterior debido a nuestro compromiso con el cliente, políticas de servicio y calidad establecidas, basado en nuestro principio básico “Excedemos las expectativas en soluciones de negocio”.
Todo esto es una buena razón para considerar la actividad de desarrollo de software, como una pieza clave para la transformación empresarial.