notifications Notificaciones

Marcar todas como leídas

Ver más

lightbulb_outline

2031 veces ha sido leído este artículo

Desarrollo a la medida

Lo lees en 5 Min.

Lo que el cliente debe saber sobre un Desarrollo a la medida

Durante años he tenido que explicar las diferencias entre hacer un desarrollo de software a la medida y un software comercial existente en el mercado. En la mayoría de los casos es el cliente el que por cuenta propia se cerciora que el paquete de software lo limita en cuanto a funcionalidad o en cuanto a crecimiento, pues para utilizarlo en más de una computadora tiene que invertir en licencias. Lo más importante al explicar la elección de un desarrollo a la medida es resaltar las ventajas que esto conlleva, pero además las responsabilidades que implica liderear un proyecto de este tipo, pues es el cliente quien debe definir lo que el sistema debe hacer.

En ocasiones el cliente sabe que lo importante es tener opciones que reflejen el proceso innovador que pretende ser un diferenciador en su mercado, con respecto a la competencia. Pero no siempre es así, por lo que es importante hacer un análisis de las ventajas y desventajas de un desarrollo a la medida y un software comercial. No por ser desarrolladores vamos a proponer siempre un nuevo sistema en base a las necesidades del cliente. O vamos a desarrollar un sistema similar a uno existente, recuerdo que un cliente me dijo “Es que yo quiero un software que haga lo mismo que X software comercial”, ¿perdón?, pues la mejor solución es comprarse ese software. O aquel cliente que pide que mis cuadrículas o grids sean como las de Excel. Hacer un software comercial lleva muchos años y es realizado con un equipo de varios programadores, tratar de igualarlos es una tarea titánica y esto lo debe saber el cliente. No es que no se pueda tener una interface con el usuario funcional o manejar la mayoría de las opciones de un software comercial, pero eso afecta el tiempo de entrega y esto, también lo debe saber el cliente. Si explicamos todos los inconvenientes y ventajas de un desarrollo, el cliente tendrá una mejor visión de lo que le conviene.

¿Cuáles serían entonces las ventajas y desventajas de un software propio?, bueno antes de llegar a ello, déjenme hablar de lo más importante a la hora de pedir un sistema propio: Encontrar un socio. Así debe ser y así lo debe entender el cliente, para embarcarse en un proyecto de desarrollo es necesario ver al programador como un socio, que se va a encargar de plasmar todas las nuevas ideas del negocio referentes a la información en el sistema. Si el cliente piensa que solo hará una inversión habla de que no tendrá más ideas nuevas de manejo de la información. Por otro lado también el programador debe tener el compromiso de hacer las actualizaciones necesarias, ahora por ejemplo, tengo dos clientes que no encuentran a su programador y dejaron a medias los desarrollos. Por ello se debe establecer un vínculo de confianza entre el cliente y el programador. Para el programador debe ser un trabajo de gran esfuerzo para poder ganarse esa confianza. Entregar módulos funcionales, libres de errores, completos, sin importar si es más del tiempo establecido en el contrato (sin exagerar), cumplir con los tiempos definidos y sobre todo dar soporte una vez terminado el proceso de desarrollo, resultarán en una mayor confianza del cliente para solicitar extensiones del sistema. Este proceso debe ir creando una metodología para cubrir el proceso completo de desarrollo, pedir los requerimientos con claridad y detalle, modelar el sistema, programarlo, validarlo y aceptarlo por el cliente y ponerlo en producción. Si en este proceso existen fallas, no se podrá establecer la sociedad requerida para el correcto manejo de los datos de la empresa. Habrá programadores malos, pero también servirá para identificar clientes malos.

Las ventajas entonces de tener un desarrollo propio están relacionados primero con la flexibilidad del sistema, necesaria en empresas que consideran que el cambio es parte del negocio y que de manera continua se requiere de modificaciones en él. Como uno de mis clientes que no quiere actualizar el sistema y quiere seguir con su versión creada hace 15 años y quiere que haga modificaciones, si ya no cuento con las herramientas que en ese tiempo use para construirlo. Permitir el crecimiento no solo de instalar el sistema en varias computadoras, sino incluso poder instalarlo en diferentes empresas con información similar. Como uno de mis clientes que ya lleva más de 10 tiendas abiertas, sin necesidad de adquirir una sola licencia. O como otro cliente que aprovecha el sistema en la administración de almacenes pequeños de productos como la papelería o almacén de degustación. Otras ventajas puede ser el uso de modernas tecnologías que algunos sistemas comerciales no usan por conservar su enorme base de clientes.

Ahora, ¿cuáles son las desventajas de un desarrollo a la medida?, es importante explicarle al cliente los inconvenientes que se pueden presentar al crear un desarrollo. Explicarle que los sistemas a crear no pueden cubrir todas las opciones que una aplicación comercial desarrollada en años pueda tener. Que el desarrollo lleva tiempo, por lo que la primera vez tendrá que pasar un periodo sin que se vean los resultados esperados. Es importante tratar de cubrir las opciones básicas del sistema, para poder tener un producto funcional lo más pronto posible. Esto a veces no lo entiende el cliente, él quiere la mayor cantidad de opciones en el menor costo posible, “agrégalo por el mismo costo” y después te andan regañando porque llevas mucho tiempo. También se le debe explicar que la interface con el cliente puede ser lo más funcional e intuitivo que permita el tiempo. A veces lo quieren para ayer y quieren opciones con el mouse, con el teclado, menús contextuales y más. Otro punto importante es el costo, cada opción del sistema se tiene que construir, lo que conlleva el pago del trabajo de un programador, cuyo trabajo por hora no es barato, otro cliente me reclama las diferencias de precio con un software comercial a lo que yo le explico que el paquete comercial se vende muchas veces y este codigo es unico y exclusivo de él. Finalmente uno de los inconvenientes y en los que más afectan el éxito del desarrollo es saber especificar lo que el sistema debe hacer. Si solo les preocupa lo general, deben explicar la funcionalidad en general, pero si quieren intervenir en los detalles, deben responsabilizarse de definir lo que se requiere. No se vale el famoso “eso era obvio que tenía que incluirse”, en un desarrollo a la medida NADA ES OBVIO, todo debe especificarse. Si esto no sucede, después es muy fácil, ya que esta el reporte o la página decir “aquí le falta un dato que era obvio”.

En conclusión el cliente debe involucrarse completamente en la definición de las características de un desarrollo a la medida y debe aprender de un proceso que es nuevo para él, pero con la ayuda del programador, explicándole cuáles son sus responsabilidades y explicando con claridad los beneficios de asumir estas responsabilidades, hará que cada día encontremos menos clientes malos. No solo somos programadores o ingenieros de requerimientos, somos promotores de buenas prácticas para enseñar a los clientes a ser buenos líderes de proyectos de software. Los empresarios deben aprender a participar en proyectos de desarrollo, para junto a su socio programador se busque lo que cualquier sociedad de negocios busca: el ganar-ganar.

Recomendaciones

Pipes en Linux

Lo lees en 4 Min.

Pipes en linux Si eres usuario Linux/Unix es probablemente hayas oído hablar acerca de los pipes...

 

Inyector de dependencias en Angular

Lo lees en 3 Min.

El patrón de la inyección de dependencias es parte fundamental del funcionamiento y desarrollo de...

 

Programación reactiva

Lo lees en 3 Min.

Decimos que algo es reactivo cuando reacciona, un ejemplo de esto son las celdas de excel que se ...

 

Triggers Mysql

Lo lees en 1 Min.

En MySQL un trigger, también conocido como disparador (Por su traducción al español) es un conjun...

 

Me sirvio

favorite 2

Inicia sesión o Regístrate para poder agregar tu respuesta.