Empresa de software

Empresa que desarrolla software

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 .

Tipos

Existen distintos tipos de empresas de software:

Roles comunes en una empresa 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:

Estructura

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:

Estructura típica de una empresa de software

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.

Estructura de la matriz

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.

Metodologías

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] .

Ciclo de vida del producto

Independientemente de la metodología utilizada, el ciclo de vida del producto siempre consta de al menos tres etapas:

  • Diseño, que incluye tanto las especificaciones comerciales como las técnicas
  • Codificación – el desarrollo en sí
  • Pruebas – la gestión de la calidad

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í:

La interacción general entre los cuatro grupos principales

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:

  • Los analistas, después de completar la especificación comercial, gestionan la situación comercial cambiante para minimizar la posibilidad de cambios a lo largo del tiempo. También respaldan tanto a los programadores como a los evaluadores durante todo el proceso de desarrollo para garantizar que el producto final cumpla con las necesidades comerciales especificadas al principio. El proceso idealmente coloca a los analistas comerciales como actores clave durante la entrega final de la solución al cliente, ya que están en la mejor posición para proporcionar la mejor capa comercial.
  • Los programadores hacen la especificación técnica durante la fase de diseño, por eso se les llama programadores/diseñadores, y durante el tiempo de pruebas corrigen errores.
  • Los evaluadores completan los escenarios de prueba durante la fase de diseño y los evalúan durante la fase de codificación.

Sistemas y procedimientos

Las empresas de software cuentan con diversos sistemas y procedimientos implementados y en funcionamiento interno en todos los subequipos. Entre ellos se incluyen:

Analistas de negocios

Programadores

Probadores

Gerentes de proyectos/productos

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 .

Auditorías de eficiencia

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

  • El número promedio de errores cometidos por el desarrollador por unidad de tiempo o líneas fuente de código.
  • La cantidad de errores que encuentra el evaluador por ciclo de prueba
  • El número promedio de ciclos de prueba hasta Zero Bug Bounce (ZBB)
  • El tiempo medio del ciclo de prueba
  • Tiempo estimado de la tarea comparado con el tiempo real de la tarea (exactitud de la planificación)
  • Número de correcciones a la línea base
Pirámide que muestra el riesgo, el tiempo y el costo financiero de introducir cambios

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.

Véase también

Referencias

  1. ^ "¿Qué es una empresa de software hoy en día?". RedMonk. 2014. Consultado el 2 de junio de 2017 .
  2. ^ Luz verde: Desarrollo de ideas para programas de televisión factuales y de realidad desde el concepto hasta la presentación p.12
  3. ^ Gestión de proyectos exitosos con PRINCE2
  4. ^ Manual del usuario de la Guía del PMBOK
  5. ^ Planificación de programación extrema
  6. ^ Gestión ágil de proyectos con Scrum
  7. ^ El proceso unificado racional simplificado: guía para profesionales del RUP
  8. ^ Microsoft Solutions Framework (MSF): una guía de bolsillo
Obtenido de "https://es.wikipedia.org/w/index.php?title=Compañía_de_software&oldid=1251964869"