Blog Consultoria Technology

Cómo contratar un desarrollo de software al menor precio

Es una linda pregunta, pero para responderla vamos a discutir, líneas más abajo, cuánto cuesta económicamente un desarrollo de un software a medida y no cuánto se puede cobrar. Es una diferencia, importa aclarar y seguro que en Internet se ve de todo, hasta tablas de estructuras con precio de software de acuerdo con determinadas características.

Para determinar el costo de un desarrollo, vamos a partir hablando de la complejidad de lo que quiero, normas y estándares, tributación, herramientas hasta terminar analizando el factor humano en la creación. Sin dudas, es muy amplio todo lo que se puede analizar, pero nuestra idea es mostrar los factores que inciden directamente en los costos.

Como cliente, siempre hay que considerar la complejidad de lo que estoy pidiendo. Para analizar cuan complejo es lo que quiero hacer, esta bien considerar algunos aspectos que vamos a mencionar como guía:

  • La cantidad de funciones que vamos a solicitar es quizás un factor importante para determinar cuánto tiempo lleva desarrollar algo y que esfuerzo.

  • La cantidad de pantallas es otro factor importante y sin duda que a mayor cantidad de pantallas esperadas para la aplicación mas esfuerzo requerirá.

  • Otro factor importante es la portabilidad, si yo requiero que la aplicación ejecute en múltiples dispositivos y plataforma, entonces requerirá mas desarrollo y mas pruebas.

  • Por último, comentar un cuarto factor que es la integración. Si el sistema o aplicación a desarrollar requiere integrarse con aplicaciones internas y externas, esto será también un factor que incrementa el esfuerzo.

  • Como resumen podemos decir que la complejidad la podemos medir por los requerimientos funcionales y también por los requerimientos técnicos. Tener claro estos aspectos es importante antes de pedir un presupuesto.

    La Industria del software ha trabajado mucho en muchos aspectos para mejorar el desarrollo de aplicaciones y en el devenir de los años ha trabajado mucho sobre metodologías y mejores practicas, para favorecer el desarrollo de buenas soluciones. Sin duda que estos aspectos donde vamos a mencionar algunos, impactan en la calidad del software y también impacta en el costo de éste y no necesariamente a la baja, sino probablemente estos temas encarezcan un poco mas la solución.

    Vamos a mencionar algunas normas y mejores practicas que solemos escuchar:

  • Una de las organizaciones mundiales mas reconocidas desarrolló la norma ISO2500 que es una guía para el uso de una serie de normas internacionales denominadas Sistemas y Requisitos de calidad del software y Evaluación (SQuaRE). El beneficio de acogerse a esta norma es asegurar que productos y servicios son seguros, de confianza y de buena calidad. Es algo así como la prueba de que esas haciendo algo de la mejor manera posible.

  • También esta CMMI que un modelo que contiene las mejores practicas y que provee a las organizaciones de aquellos elementos que son esenciales para que los procesos de negocio de estas sean efectivos. Su origen proviene de la Universidad Carnegie-Mellon y ha sido muy reconocido mundialmente.

  • También han evolucionado a metodologías de trabajo y muchas están basadas en el Manifiesto Ágil para desarrollar software incremental y poder aportar valor mas rápido al cliente. Al cliente apenas tengo algo para que use consistente, se lo doy al cliente y así gradualmente por ciclos pequeños de desarrollo vamos generando los productos.

    La Ingeniería del software ha trabajado mucho también para hacer que un programador desarrolle más rápido, en este campo las herramientas año a año mejoran sus versiones para que el programador pueda trabajar mas rápido. Inicialmente el re-uso de código fue lo mas simple, pasando por lenguajes 4GL y otros lenguajes de programación mas desarrollados hasta llegar a las herramientas categorizadas por algunas consultoras como Software de “low code” y últimamente hasta se empieza a hablar de robots para desarrollar. El aporte fuerte de la industria en herramientas es clave y sin duda que el lenguaje PHP ha sido uno de los mayor utilizados por dos razones fundamentales, se aprende rápido a desarrollar con este lenguaje y se desarrolla rápido. Ese lenguaje sumado a herramientas que asisten al programador hacen que en la Web hoy sea uno de los lenguajes mas utilizados. Es importante para el costo del desarrollo conocer que herramienta se usa y de ahí se puede estimar esfuerzos. Seguramente en siguientes artículos podemos analizar mas a detalle los lenguajes de programación a la fecha.

    También están los costos que tiene la empresa, ya sea por impuestos como así también por infraestructura, tenemos organizaciones que tienen que cubrir, por ejemplo, mucho costo de personal administrativo, de recursos edilicios y de infraestructura. Aquí debemos comentar que muchos Gobiernos han generado múltiples beneficios y que la tributación no sea similar a la de otros rubros. También podemos mencionar que la propia industria con todo lo relativo a la “nube” ha venido a aliviar costos de infraestructuras. No obstante, la propia empresa de desarrollo tiene que ser liviana en costos en la forma de organizarse, hoy para ser eficiente debo ser ágil y poco burócrata.

    Por ultimo el factor mas importante, el factor humano: “El costo de un desarrollo se mide en cuánto tiempo lleva y cuál es el equipo necesario para hacerlo”, pero finalmente armar un presupuesto no es una tarea fácil porque aquí se deben considerar muchos factores en cuento a las personas y el equipo.


    El equipo de Trabajo y el esfuerzo

    Analicemos ahora aspectos que a nuestro criterio influyen superlativamente en una comparación de propuestas pero que es muy difícil de evaluar.

    En el desarrollo de software, intervienen distintas especialidades o disciplinas que llegan a trabajar conjuntamente: los diseñadores, los expertos en interfaz de usuario, los analistas de sistemas, los que codifican esa interfaz o desarrolladores de frontend, los que desarrollan el resto del sistema o la lógica del negocio conocidos como los desarrolladores de backend, también están los arquitectos de software que definen todas las cuestiones más técnicas como herramientas, librerías, componentes de software e integración, los especialistas en bases de datos que procuraran definir un modelo de datos ideal y con buena performance, los ingenieros devops para hacer que fluya el pasaje entre los entornos de no productivos y productivos, los testers, los capacitadores y puede otros mas. Como se puede apreciar las especialidades pueden ser muy variadas y conforma un equipo multidisciplinario de desarrollo.

    De la experiencia nuestra, de la de varias empresas y a partir de analizar múltiples estudios, un desglose del esfuerzo humano por disciplina seria aproximadamente el siguiente:

  • De 60 a 70% del esfuerzo en horas, son cubiertos por los Desarrolladores (Análisis y programación)
  • De 10 a 15% Project Manager
  • De 10 a 15% Testing
  • De 5 a 7% diseños
  • Menos de 5% otros

    Considerando los aspectos arriba mencionado, ahora pongamos el énfasis en el corazón del desarrollo y que para nosotros resulta clave y que es donde podemos decir que son nuestras propias fortalezas. Miremos entonces como debe ser compuesto ese 60 a 70% del esfuerzo humano.

  • El Analista: Un analista con un excelente desempeño, es aquel que conoce rápidamente el negocio. Es aquel que además puede tener una rápida y fluida interacción con el programador. Que puede establecer claramente los desafíos, priorizar y además tiene un buen dialogo con el cliente.

  • El Programador: Un buen programador es aquel que conoce las herramientas, que es veloz, que esta motivado y que tiene un tiempo predecible para todas sus tareas. Aprovecha al máximo las fortalezas de las herramientas que usa y el tiempo trabajo.

    Los otros roles también importantes y deberían el equipo conformado tener claro como se estructura funcionalmente el proyecto, pero en otros artículos hablaremos de estos otros roles con mas detalle.

    Una vez mas y como la vida misma el factor humano IMPORTA DEMASIADO para desarrollar ese software. Entonces, a la hora de contratar un desarrollo y luego de ver el precio hora, debería poder responderme ciertas preguntas como cliente:

    ¿Me entienden, aprende rápido del negocio o ya tiene experiencia suficiente?

    ¿Veo gente comprometida, que tratan de dar el máximo para dejarme este contento?

    ¿Hay referencias de trabajos anteriores? ¿Cómo son?

    Cuando voy a contratar un constructor, siempre miro los trabajos que hizo, algo siempre sus trabajos me hablan de lo que puede llegar a crear. Aquí pasa algo parecido.

    Pero comparar un desarrollo de acuerdo con el valor hora del programador es mirar mucho menos de ¼ vaso.

    Invito a pensar a responder y a enriquecer estas ideas….

  • Leave a comment

    Tu dirección de correo electrónico no será publicada.