Como CTO de una pequeña empresa de desarrollo de software que crea soluciones de IoT personalizadas, ayudo a mis compañeros de equipo a evaluar los costos de desarrollo de aplicaciones al preparar estimaciones de proyectos para nuestros clientes potenciales.
Dado que trabajamos principalmente con empresas emergentes, nuestros clientes son muy sensibles a sus presupuestos.
Idealmente, comienza cada proyecto de desarrollo de software con una fase de descubrimiento y se sumerge en los requisitos funcionales y no funcionales de un producto desde el principio. Como resultado, puede definir el conjunto de funciones del producto, desde prototipos funcionales hasta un MVP o un producto completo, y obtener una estimación realista y precisa.
Idealmente, pero ese no es el caso de las nuevas empresas que operan con muy poco dinero ya que el descubrimiento también cuesta dinero.*
Algunos de nuestros clientes también pueden tener expectativas poco realistas con respecto al precio de desarrollar una solución tecnológica. Todos hemos escuchado chistes sobre nuevas empresas que buscan construir un clon de Facebook por $ 10k, y la parte más triste es que algunas personas creen que eso es posible.
Por lo tanto, estaba jugando con la idea de minimizar el trabajo de evaluación de nuestra parte mientras les daba a los clientes un precio aproximado por dar vida a su idea tecnológica incluso antes de que se pusieran en contacto con mi equipo. Un control de la realidad, si lo desea. 🙂
Así es como se formó en mi cabeza el concepto de calculadora de costos de software .
Geek de corazón y desarrollador móvil de profesión, decidí matar dos pájaros de un tiro. Además de los objetivos mencionados anteriormente, también puse a prueba mi conocimiento de Flutter. Desarrollé una aplicación de calculadora de costos de software multiplataforma que se ejecuta sin problemas en dispositivos iOS y Android y en navegadores sin recurrir a JavaScript, lo que, en su forma pura, me da escalofríos.
Flutter demostró ser lo suficientemente estable y eficiente para esa tarea. Incluso estoy pensando en construir una calculadora física basada en una computadora de placa única como regalo de Navidad para nuestros fieles clientes. Además, los compañeros desarrolladores pueden usar la calculadora para evaluar el precio de desarrollar una solución tecnológica en particular (¡o una parte de ella!) fuera de su experiencia.
De todos modos, en este artículo, detallo mi experiencia creando la solución y los desafíos que he encontrado en el camino.
Así que, aquí vamos.
Vale, vale, sé lo que estás pensando.
*Ingeniería de una solución de software, ya sea una pequeña tienda en línea o una completa
sistema administrativo para orquestar unidades de crioterapia , es un camino largo y ventoso con cientos de posibles giros y trampas para evitar.*
Y a menos que haya preparado un documento exhaustivo de especificación de requisitos de software (SRS) que enumere el conjunto de características del producto, los requisitos de UI/UX, la pila de tecnología óptima, el público objetivo, las disposiciones de cumplimiento y una docena de otros problemas, es imposible ponerle un precio. su aplicación.
Estas eran exactamente mis preocupaciones. Así que decidí comprobar cómo otros ingenieros de software abordaron el problema de la precisión de la estimación antes que yo.
Después de probar varias calculadoras de costos de software, identifiqué varios problemas para recordar al crear mi solución:
Las calculadoras de la competencia ignoran por completo las necesidades de un usuario no técnico. Por ejemplo, ¿cómo se supone que voy a saber qué lenguajes de programación usará mi aplicación si soy nuevo en la programación? Para navegar por este problema, me aseguré de escribir una guía detallada sobre cómo usar mi calculadora en la página de inicio adjunta.
Algunas soluciones estiman el precio de establecer un equipo de software en lugar de crear un producto de software. A menos que haya trabajado antes con empresas de ingeniería de software o que haya ejecutado una usted mismo, probablemente no conozca las entrañas del desarrollo de software, incluida la composición óptima de un equipo de software y los roles dentro de él. Es por eso que me concentré en las características del software en lugar de las responsabilidades del desarrollador e implementé el modificador de tasa combinado para simplificar los cálculos.
La mayoría de las calculadoras solo dan una estimación a cambio de una dirección de correo electrónico comercial. Soy un ingeniero de software, no un vendedor. 🙂 Quiero resolver los problemas de las empresas en lugar de bombardearlas con correos electrónicos promocionando nuestros servicios; si necesitan ayuda, ¡nos escribirán de todos modos! Es por eso que mi calculadora no recopila ningún dato , y no requiere que llene ningún formulario antes de obtener su estimación. Solo sabemos que alguien llegó a la página de inicio de la calculadora de costos de software, marcó todas las casillas y recibió un presupuesto.
Mi calculadora considera la plataforma de destino de una aplicación y las características esperadas para producir estimaciones precisas de costos de software. A continuación, se implementan varios modificadores para reducir o aumentar el precio del software personalizado según la etapa del proyecto y las implicaciones específicas de la industria. En el paso final, los esfuerzos de desarrollo de software, estimados en horas-persona, se multiplican por la tasa del equipo de TI combinado.
Para diseñar el mecanismo de evaluación, estudié más de 20 proyectos que mi empresa completó y una docena de proyectos de las carteras de nuestros socios. Estos proyectos variaron en tamaño y complejidad, desde aplicaciones de reserva de eventos hasta soluciones personalizadas para el hogar inteligente. Algunas tecnologías y soluciones, como la inteligencia artificial y AR/VR, faltan deliberadamente en la calculadora porque rara vez construyo tales aplicaciones. Por lo tanto, la calculadora refleja la experiencia central de mi empresa y puedo garantizar la precisión de sus estimaciones.
Modificadores. Las industrias y las características del software tienen multiplicadores de dificultad. Por ejemplo, aumenté el recuento de horas en un 20 % para proyectos de TI de atención médica para abordar posibles problemas de desarrollo, como integraciones con sistemas médicos existentes, cumplimiento, etc. Para calcular los modificadores de complejidad, dividí la suma de las funciones del software por la hora total contar. Un modificador constante agrega números de control de calidad y gestión de proyectos a la estimación. Cuando se han evaluado las características de una aplicación y las plataformas previstas, el número se multiplica por 1,3, lo que aumenta el recuento de horas en un 30 %. Por último, está el modificador de etapa del proyecto, que evalúa el costo del desarrollo de software en función de la preparación del producto. Si un usuario solo quiere diseñar la interfaz de la aplicación, la estimación final se multiplica por 0,16. Para prototipos funcionales, el modificador es 0,25. La versión de producto mínimo viable (MVP) de una solución de software que contiene las funciones suficientes para salir al mercado tiene un modificador de 0,5 a 0,75. Finalmente, los esfuerzos de desarrollo en horas-persona se multiplican por 1 para productos listos para el mercado.
Tarifas por hora del desarrollador. El precio de crear una solución de software personalizada depende de quién la haga. Las tarifas por hora de los ingenieros de software difieren mucho según la especialización, la experiencia y el país de residencia de una persona. De acuerdo a
A continuación encontrará una fórmula que resume los factores mencionados anteriormente para producir una estimación:
Si una característica no está relacionada con dispositivos móviles y no requiere implementación en varias plataformas, se marcará como featurePrice.
avgFeatureComplexityMult aumenta la estimación en función de la pila tecnológica y la industria de destino de un proyecto.
productStageMultiplier indica la etapa deseada del producto, es decir, aprobación del diseño, prototipo, MVP o solución lista para el mercado.
Las horas de PM/QA son obligatorias para todos los proyectos a menos que el cliente maneje la parte de gestión y control de calidad. En este caso, sin embargo, ningún desarrollador puede garantizar que los errores no se manifiesten en el código. Una pequeña aclaración aquí: algunas empresas esperan que su proveedor produzca un código sin errores en el primer intento y realmente se preguntan por qué necesitan garantía de calidad.
Los clientes maduros, por el contrario, tienen expectativas adecuadas con respecto a la calidad del código de prueba e invierten temprano en control de calidad para evitar lidiar con errores posteriores al lanzamiento.
La pregunta es, ¿qué tan precisas son estas estimaciones?
Teniendo en cuenta mi experiencia como CTO y desarrollador sénior de Android, la calculadora de costos de software ofrece estimaciones puntuales para todos los proyectos simples y proyectos de complejidad media.
Para proyectos más desafiantes que involucren tecnologías innovadoras, como Internet de las cosas, la calculadora puede reducir la estimación final en un 10-13 %. En tales casos, revisamos el precio después de decidir sobre la pila tecnológica y el conjunto de funciones de la solución. También se necesitan revisiones si su sistema de TI incorpora funciones y tecnologías omitidas en la calculadora, como inteligencia artificial e integraciones con servicios de terceros.
Se requiere que un visitante del sitio web complete la información sobre las siguientes características de una aplicación:
¡Hurra, lo logramos!
Ahora que el usuario tiene una estimación aproximada, puede ajustarla eliminando o agregando funciones de software manualmente, especificando la etapa del producto, etc.
Mientras escribía este artículo, también llené el formulario, seleccionando las características de un producto de IoT médico personalizado que cumple con HIPAA listo para ser lanzado al mercado. La calculadora me dio una estimación de 3390,4 horas-persona, o $140 992 si se multiplica por la tarifa del equipo combinado ($41,6).
Aumentemos la estimación en un 10 %, teniendo en cuenta las posibles discrepancias originadas en el tipo de proyecto ( IoT ) y la industria objetivo (salud), y obtendremos $150 000.
El paquete de software de cámara criogénica al que me referí al comienzo del artículo ayuda a nuestro cliente a administrar unidades criogénicas conectadas instaladas en docenas de gimnasios y salones de spa en los EE. UU. Si bien el proyecto aún está en desarrollo y
En general, estoy satisfecho con el resultado: probé con éxito Flutter, me aseguré de sus sólidas capacidades de desarrollo multiplataforma, minimicé el trabajo de evaluación por parte de mi equipo y permití que nuestros prospectos obtuvieran estimaciones realistas de sus proyectos de software antes ponerse en contacto con una empresa de ingeniería de software.
Pero como puedo tener todo tipo de sesgos, después de todo, ¡soy yo quien escribió el código! — ¡Te animo a que pruebes la calculadora y compartas tus opiniones sobre su funcionalidad y precisión!
Entonces, ¡haz clic en la sección de comentarios a continuación! ¡Sus comentarios son muy apreciados!