Post de invitado: Toma de decisiones en el desarrollo de software

Cristian Marucci forma parte del equipo de Axioma – Soluciones Informáticas Concretas, una empresa joven especializada en desarrollo de aplicaciones. Hoy nos acerca un post de invitado especial para todos aquellos profesionales que trabajan con desarrollo de software y nuevas tecnologías: con amplia experiencia en el tema, nos cuenta qué tener en mente al tomar decisiones técnicas, y cómo alinearlas a las demandas del cliente.

——-

La velocidad de la tecnología nos obliga a una constante investigación de las innovaciones. Esto es fundamental: sin una actualización y capacitación diaria, dejamos de ser competitivos. Entonces se ensayan nuevas técnicas, nuevos lenguajes de programación que intentan resolver las problemáticas usuales de manera más eficiente. Pero si perdemos el foco, esto puede ser contraproducente. Terminaremos desarrollando soluciones de software que serán admirables para un colega, mientras que para nuestros clientes la percepción puede ser opuesta.

¿Qué debemos tener en cuenta al tomar decisiones técnicas?

Si bien podemos usar lenguajes o técnicas de programación recién salidas del horno, tenemos que ser precavidos y tener en cuenta que la primera versión de cualquier producto suele traer muchos errores que serán corregidos en versiones posteriores, cuando éste evolucione y se estabilice. Además, si utilizamos un producto consolidado, encontraremos miles de personas en las diferentes comunidades online que, ya experimentadas, tendrán la solución a nuestras problemáticas técnicas.

Toma de decisiones en desarrollo web

Es importante participar activamente en estas comunidades, seguramente podremos acortar el camino con la ayuda de otros expertos.

Otro punto a tener en cuenta es que la curva de aprendizaje tiene asociado un costo, el cual lo termina pagando el cliente. En contraste, si trabajamos sobre seguro, usaremos el tiempo en forma mucho más sabia. Durante el proyecto nos podremos ocupar más de las necesidades del cliente, de la eficiencia del producto final y menos de la propia capacitación.

Todo esto no significa que no se deba encarar ningún desafío, solamente tener en claro las ventajas y desventajas a la hora de hacerlo, y para esto es clave la comunicación con el cliente, entendiendo sus necesidades presentes y futuras.

Lo que ellos quieren

Existen diferentes tipos de clientes, pero lo que todos quieren, en definitiva, es una solución. De nada sirve que le entreguemos un excelente software para facturar si, para poder utilizarlo, debe migrar el sistema operativo de todos sus equipos.

Solución en desarrollo webSi necesitamos su aprobación para tomar una decisión sobre qué lenguaje de programación utilizar, y nuestro cliente no está capacitado, entonces debemos transformarnos en humildes profesores y explicar las opciones disponibles. Muchas veces los clientes se apegan a lo que conocen, y ese conocimiento puede estar desactualizado.

A la hora de explicar estas opciones debemos tener en cuenta dos cosas: primero, cómo afecta la decisión en su negocio a corto, mediano y largo plazo; y segundo, recordar la frase de Albert Einstein, “nunca entiendes verdaderamente algo hasta que eres capaz de explicárselo a tu abuela”. Hay que ser claros, no usar tecnicismos, ni abreviaciones, ni palabras propias del rubro. Es mejor usar metáforas, comparaciones, ejemplos del mundo real que puedan ser entendibles para una persona que no está en el detalle.

Para poder tomar una decisión correcta hay que tener en cuenta los requisitos a nivel macro. ¿Qué sistemas operativos usa nuestro cliente? ¿Qué dispositivos utiliza? ¿Qué plazos está dispuesto a manejar? ¿Cuál es el problema de fondo que busca solucionar? ¿Nuestro desarrollo tendrá costos asociados de terceros? ¿Se necesitará realizar la compra de licencias? Las respuestas a estas preguntas irán acotando las opciones posibles.

Otro punto es consultarle a nuestros clientes con qué recursos cuenta, sobre todo si el mantenimiento del software lo va a realizar con sus propios recursos. Hay que asegurarse que estén capacitados y, si no lo están, advertírselo para que decida cuál es el mejor curso de acción. En un mundo ideal, nos dejaría la libertad de elegir el lenguaje de programación y luego armaría un plan de capacitación para su personal. Pero la realidad es que muchas veces los clientes preferirán atenerse a los conocimientos de su equipo y desarrollar la solución sobre terreno conocido.

Conclusiones

La decisión sobre qué tecnologías y lenguajes de programación utilizar a la hora de desarrollar una solución tiene que estar motivada por las necesidades y recursos del cliente, considerando también nuestra experiencia y habilidades como desarrolladores.

Para contar con todos los elementos necesarios para la correcta decisión, es fundamental mantener una excelente comunicación con nuestros clientes. Tenemos que conocer no sólo su presente, sino también sus expectativas de crecimiento, y considerar este punto a la hora de tomar decisiones.

No hay que temerle a las novedades, pero sí ser conscientes de sus limitaciones de soporte en las comunidades y los errores lógicos de cualquier versión temprana de un producto. Antes de embarcarse en una nueva aventura es necesario hacer pruebas y asegurarse de que podrá satisfacer las necesidades del cliente.

¡Espero sus comentarios!

Autor: Cristian Marucci, de Axioma Soluciones Informáticas Concretas

—-

Si quieres escribir como invitado para el blog de Workana, envíanos tu propuesta a [email protected]

Subscribe to the Workana newsletter and keep updated