Este artículo tiene varios problemas. Ayúdenos a mejorarlo o a discutir estos problemas en la página de discusión . ( Aprenda cómo y cuándo eliminar estos mensajes )
|
Una empresa de software es una organización, ya sea de propiedad estatal o privada, creada con fines de lucro y cuyos productos principales son diversas formas de software , tecnología de software, distribución y desarrollo de productos de software. [1] Conforman la industria del software .
Existen distintos tipos de empresas de software:
Organizar una empresa de software es un tipo de habilidad de gestión muy especializada, en la que personas con experiencia pueden convertir el problema organizativo en un beneficio único. Por ejemplo, tener subequipos distribuidos en diferentes zonas horarias puede permitir una jornada laboral de 24 horas en la empresa, si los equipos, sistemas y procedimientos están bien establecidos. Un buen ejemplo es el equipo de pruebas en una zona horaria 8 horas por delante o por detrás del equipo de desarrollo, que corrige los errores de software que encuentran los evaluadores.
Una empresa de software profesional normalmente consta de al menos tres subequipos dedicados:
En las empresas de software más grandes se emplea una mayor especialización y, muy a menudo, también hay:
El gerente de una empresa de software suele denominarse Jefe de Desarrollo (HOD, por sus siglas en inglés) [2] y rinde cuentas a las partes interesadas . Lidera los subequipos directamente o a través de los gerentes/líderes, según el tamaño de la organización . Por lo general, los equipos de hasta 10 personas son los más operativos. En las organizaciones más grandes, en general, existen dos modelos de jerarquía:
Todos los equipos son totalmente independientes y trabajan por separado en los distintos proyectos. La estructura es bastante sencilla y todos los empleados dependen de una sola persona, lo que hace que la situación sea bastante clara, pero no es una buena solución en términos de intercambio de conocimientos y uso óptimo de los recursos humanos.
En este modelo hay gerentes/líderes dedicados a cada especialización principal, que "alquilan" a su personal para proyectos específicos dirigidos por gerentes de producto/proyecto, quienes formal o informalmente compran a la gente y pagan por su tiempo. Esto lleva a que cada empleado privado tenga dos jefes: el gerente de producto/proyecto y el gerente de "recursos" especializado. Por un lado, optimiza el uso de los recursos humanos, por otro lado, puede dar lugar a conflictos sobre qué gerente tiene prioridad en la estructura.
También hay varias variantes de estas estructuras, y varias organizaciones tienen esta estructura distribuida y dividida en varios departamentos y unidades.
Las empresas de software pueden utilizar distintas metodologías para producir el código, entre ellas:
También existen algunas metodologías que combinan ambos, como el modelo espiral , el Proceso Unificado Racional (RUP) [7] o el MSF [8] .
Independientemente de la metodología utilizada, el ciclo de vida del producto siempre consta de al menos tres etapas:
Lo ideal es que cada etapa ocupe el 30% del tiempo total, quedando el 10% restante en reserva.
El diagrama de secuencia UML de la interacción entre estos grupos podría verse así:
En cada etapa un grupo diferente juega un papel clave, sin embargo cada tipo de rol debe estar involucrado a lo largo de todo el proceso de desarrollo:
Las empresas de software cuentan con diversos sistemas y procedimientos implementados y en funcionamiento interno en todos los subequipos. Entre ellos se incluyen:
También existen los sistemas de gestión del ciclo de vida de las aplicaciones (ALM), que integran algunas de estas funcionalidades en un solo paquete y se utilizan en todos los grupos. Los ofrecen distintos proveedores, como Borland , ECM o Compuware .
Las empresas de software consolidadas suelen tener alguna forma de medir su propia eficiencia. Esto se hace normalmente definiendo el conjunto de indicadores clave de rendimiento (KPI), como
Muchas organizaciones se centran en alcanzar el nivel óptimo del Modelo de Madurez de Capacidades (CMM), donde "óptimo" no significa necesariamente el más alto. También existen otros sistemas como el SEMA de la Universidad Carnegie-Mellon o normas ISO específicas . Las pequeñas empresas de software suelen utilizar enfoques livianos para sus procesos, formalizados o no. Cada organización desarrolla su propio estilo, que se encuentra en algún punto entre la tecnocracia total (donde todo se define por números) y la anarquía total (donde no hay números en absoluto). Sea cual sea el camino que tome la organización, considera la pirámide que describe el costo y el riesgo de introducir cambios en procesos de desarrollo ya iniciados como un verdadero modelo para gestionar los cambios.