Desarrollo de software: ¿Costo fijo o costo de oportunidad?
Anthony Pighin, Director, NPI y asociados
Al iniciar un nuevo proyecto, que forma parte del proceso de toma de decisiones es decidir qué componentes se diseñarán in-house, y que es mejor dejarlo a los proveedores externos. A veces la línea divisoria puede ser tan simple como la externalización de la plataforma de hardware, y hacer todo el desarrollo de software interno, pero la elección es a menudo mucho más complejo.
Si examinamos la simple división de hardware / software un poco más, esto no puede ser un escenario tan poco realista después de todo. En este caso, la compañía ha decidido que su principal competencia está en el diseño de software, y que van a ser capaces de diferenciarse a través del innovador software que diseñan en para que corra encima de un hardware básico. En este sentido, la compañía ha reconocido que, al asignar de forma inteligente sus recursos limitados, que se acelerará el tiempo de comercialización, y mejorará en gran medida sus posibilidades de éxito.
Un escenario más realista es una empresa que decide mantener un cierto desarrollo de hardware y software in-house, y externalizar o contratar el resto. Una vez más, esta división suele enfatizar las fortalezas internas de la empresa tiene, y deja a los aspectos altamente especializados a los expertos externos, tales como el diseño de los módulos de radiofrecuencia, o la aplicación de componentes de muy bajo nivel de software.
Al hacer este análisis, la empresa también tendría que comparar el costo de desarrollo de un componente in-house en lugar de comprarlo ya hecho. Suponiendo que el componente en cuestión proporcionaría diferenciación limitada si se desarrolla in-house, pero todavía tiene que ser robusto, a menudo existe la tentación de mantener el desarrollo interno para garantizar la calidad. Muchas empresas fallan aquí porque ven sus recursos como costo fijo.
Mientras que un empleado de tiempo completo de hecho puede ser un costo fijo de un punto de vista contable, no es un empleado de costo cero. Está el costo de oportunidad de hacerlos trabajar en un componente que proporciona escasa diferenciación en el mercado. Y, más importante aún, el tiempo y el esfuerzo a largo plazo por apoyar los componentes especializados.
Hay estudios que afirman que el caudal de diseño típico es de 20 a 30 líneas de código por día. No por hora, sino por día. Claramente, esta es una zona de intenso y acalorado debate, sobre todo entre los propios diseñadores. Sin embargo, cuando se suman el tiempo necesario para el adecuado diseño, revisión de documentos, y pruebas de cada línea de código, ese valor se vuelve muy preciso. Especialmente cuando se evalúan los componentes de software altamente especializados.
Ahora, vamos a considerar un componente especializado que requiere de 10 mil líneas de código. Y supongamos que los estudios de los libros de texto son conservadores en un orden de magnitud, y que los ingenieros de software son capaces de 300 líneas de diseño, crítica, documentado y prueba de líneas de código por día. Esto significa seis a siete semanas de tiempo de diseñador (de nuevo, suponiendo que los estudios están fuera por un factor de diez). A una tasa de salario promedio de $ 80.000 por año, esto significa aproximadamente $ 10.000 para desarrollar este componente, sin tener en cuenta la sobrecarga de personal de apoyo, infraestructura, etc
Peor aún son los costos de mantenimiento a largo plazo del desarrollo de un componente in-house que no agregue diferenciación a su producto final, o que requiera un esfuerzo importante de soporte a largo plazo, debido a su complejidad o especialización. Es posible que el desarrollador original deba haberse separado para un proyecto futuro para depurar o actualizar el componente, lo que resulta en un retraso imprevisto. Y, no sólo este impacto demora el proyecto actual, se desenfoca y desmotiva el desarrollador. Pueden haber acogido el desafío de la tarea inicial, pero se les pide que apoyen muchos meses o años más tarde es un menos agradable.
En general, el desafío de decidir qué componentes desarrollar internamente, y que es mejor dejar a los proveedores externos especializados, es compleja. Muchas empresas, especialmente las grandes, ven a sus diseñadores están siendo un costo fijo. Y mientras que lo son, desde una perspectiva pura de dólares y centavos, el costo más grande es el costo de oportunidad, y el impacto en el tiempo de comercialización. Las grandes empresas deben tener en cuenta a las empresas más pequeñas, más ágiles. Y, del mismo modo, las pequeñas empresas tienen que destinar sus limitados presupuestos de las áreas que lo diferencian y destacan sus fortalezas.
Embedded Computer Design