Principios de gestión del desarrollo de software

Autor: Zen y el arte de la programación informática

1. Introducción

Los principios de gestión del desarrollo de software (SDM) se refieren a una serie de reglas o pautas utilizadas para guiar la coordinación, estandarización y control de diversas actividades en el proceso de desarrollo de software. SDM se basa en la informática, la gestión, la economía, la sociología y otras disciplinas y es un conjunto de mejores prácticas, directrices y códigos de conducta generales formulados para promover el buen progreso del desarrollo de software.

Muchas empresas abogan por la adopción de ITIL como estándar y método para sus servicios de TI. ITIL integra los servicios de TI empresariales con los negocios a través de metodologías y herramientas proporcionadas por la administración, el derecho, la economía, la ingeniería, la informática y otras disciplinas, ayudando a los clientes a mejorar la eficiencia y reducir los costos. Los principios contenidos en estos principios se han convertido en el consenso para que muchas empresas utilicen métodos ITIL para mejorar la calidad de sus servicios de TI y la eficiencia operativa general.

Sin embargo, si consideramos el proceso de desarrollo de software como el nivel de implementación de los servicios ITIL, entonces SDM es adecuado para diferentes etapas del desarrollo de software. SDM proporciona un conjunto de principios de gestión que pueden reflejar las principales actividades en el campo del desarrollo de software, incluido el análisis de requisitos, el diseño y el desarrollo, la verificación de pruebas, el soporte de mantenimiento, etc., y proporciona las medidas y métodos correspondientes para cada actividad.

Por lo tanto, al aplicar SDM, podemos ayudar al equipo de desarrollo de software a trabajar de manera más eficiente y garantizar la controlabilidad, trazabilidad y productos de alta calidad del proceso de desarrollo de software.

Este artículo profundizará en el contenido y el papel de los principios de gestión del desarrollo de software. Espero que pueda inspirar a los lectores a pensar más.

2. Conceptos básicos y terminología

2.1 Definición de objetivos

  • Objetivo : Se refiere a la meta o expectativa final que un proyecto u organización debe alcanzar para un resultado, comportamiento o grado de impacto específico. Los objetivos en el desarrollo de software a menudo se asocian con "objetivos comerciales" o "objetivos de ingresos". Por ejemplo, para una función o sistema específico, la empresa necesita garantizar su funcionamiento continuo y al mismo tiempo satisfacer las necesidades de los usuarios.

  • Metas funcionales : Las metas definidas en el desarrollo de software son generalmente la función o desempeño del software, qué funciones se requieren completar o qué nivel se requiere. Por ejemplo, para nuevos requisitos funcionales para un sistema de ventas, el objetivo puede ser aumentar la velocidad de procesamiento de un solo pedido y acortar el tiempo de respuesta; para un sistema de recomendación de productos, el objetivo puede ser aumentar la precisión y la cobertura de las recomendaciones y optimizar experiencia de usuario.

  • Objetivos de beneficio : En términos generales, los objetivos de beneficio se refieren a metas que indican si algo tiene valor comercial o puede traer beneficios económicos. Por ejemplo, para aumentar los ingresos, una empresa puede establecer objetivos de ingresos. Para aumentar la competitividad, una empresa puede establecer objetivos de ventaja competitiva. Los objetivos de beneficios también existen en el desarrollo de software, pero generalmente utilizan la participación de mercado del producto o la competitividad del mercado como principal indicador de medición.

2.2 Modelo de ciclo de vida del producto de cinco niveles

  • Planificación : la etapa de planificación planifica la dirección del desarrollo, la lista de tareas, los roles de los desarrolladores, la fecha de entrega, la asignación de recursos, el plan de gestión del progreso, etc. de un determinado producto. La fase de planificación es generalmente responsabilidad del gerente de producto.

  • Definición : La etapa de refinamiento determina las funciones, el rendimiento y los escenarios de uso del producto. Esta etapa implica la participación de diseñadores de productos, que generalmente incluye análisis de negocios, análisis de requisitos, evaluación de riesgos, diseño funcional, diseño de bases de datos, diseño de interfaces, diseño de seguridad, diseño de desempeño, diseño de compatibilidad, etc.

  • Desarrollo : la codificación, depuración y prueba reales de productos durante la fase de desarrollo, incluida la codificación, pruebas unitarias, pruebas de integración, pruebas de sistemas, pruebas de usuarios, etc. En esta etapa generalmente participan desarrolladores y evaluadores, y adopta métodos de desarrollo ágiles.

  • Pruebas : la fase de pruebas es responsable de las pruebas de aceptación del producto, pruebas de implementación y pruebas de regresión. Esta etapa implica lanzar una versión beta a los usuarios y luego recopilar comentarios para mejorar aún más el producto.

  • Mantenimiento y soporte : La fase de mantenimiento son las diversas actividades necesarias para mantener el funcionamiento normal del producto. La fase de mantenimiento suele contar con la participación conjunta de gerentes de producto, desarrolladores, evaluadores y personal de operación y mantenimiento, incluidas actualizaciones de parches, corrección de errores, resolución de problemas, ajuste del rendimiento, lanzamientos de nuevas versiones, monitoreo del rendimiento, etc.

2.3 Etapas del ciclo de vida

El ciclo de vida del desarrollo de software se puede dividir en las siguientes categorías:

  1. Fase inicial (Fase de Inicio): El producto acaba de ser determinado y el desarrollo del software ha comenzado, pero aún no ha entrado en la fase de codificación.
  2. Fase de diseño (fase de elaboración): esta fase implica el diseño de funciones del producto, escenarios de rendimiento y uso, y también es la fase de redacción de la documentación del producto.
  3. Fase de codificación (fase de construcción): esta fase es cuando los desarrolladores de software comienzan a escribir código y también es un período crítico para el control de calidad.
  4. Fase de transición: esta fase implica probar, revisar y corregir errores y defectos en el software.
  5. Fase de mantenimiento (fase operativa): en esta fase, incluso si el software está en funcionamiento normal, aún necesita mantenimiento y actualización continua hasta que se apague o finalice su funcionamiento.

2.4 Seis principios del SDM

SDM cree que la gestión del desarrollo de software debe seguir los siguientes seis principios:

  1. Las necesidades del usuario primero: SDM cree que las necesidades del usuario son el factor más importante y deben considerarse primero antes de desarrollar software en todo momento. Por lo tanto, SDM enfatiza el enfoque de las fases de análisis y diseño de requisitos para satisfacer las necesidades reales de los usuarios.

  2. Garantía de calidad: SDM cree que la calidad del software es la piedra angular de la calidad del producto de software, e introducir mecanismos de garantía y control de calidad en cada enlace es crucial para la calidad del software. Por ello, SDM aboga por establecer un mecanismo de garantía de calidad a lo largo de todo el ciclo de vida.

  3. Compromiso de viabilidad: SDM cree que todas las actividades de desarrollo de productos deben someterse a un compromiso de viabilidad para lograr los objetivos de desarrollo; de lo contrario, provocará un desperdicio de recursos. Los compromisos de viabilidad se dividen en compromisos de viabilidad estáticos y compromisos de viabilidad dinámicos. El compromiso de viabilidad estático requiere que el proyecto debe completar los preparativos y firmar el contrato de ingeniería desde el establecimiento del proyecto hasta la producción para garantizar que el progreso del proyecto se lleve a cabo de acuerdo con el plan y cumpla con los requisitos de control de calidad; además del compromiso de viabilidad estático, el compromiso dinámico El compromiso de viabilidad también debe establecer un sistema basado en el progreso del proyecto. Un mecanismo dinámico de revisión de viabilidad garantiza la vitalidad del proceso de desarrollo del proyecto.

  4. Selección de tecnología: SDM cree que elegir la tecnología que sea más adecuada para la situación de desarrollo actual es de gran importancia para el desarrollo de software, porque solo las ventajas técnicas pueden satisfacer las necesidades del usuario y las limitaciones del proyecto. Por lo tanto, SDM tiende a elegir plataformas tecnológicas que cumplan con estándares internacionales o estándares de la industria.

  5. Capacidades de gestión de proyectos: SDM cree que las capacidades de gestión de proyectos son la principal ventaja de SDM. Guía y apoya a los desarrolladores de software para que trabajen de forma proactiva dentro del ciclo de vida del producto para garantizar que el desarrollo del producto avance sin problemas y se complete con alta calidad. Las capacidades de gestión de proyectos incluyen gestión organizacional, gestión de procesos, comunicación y colaboración, control de calidad y gestión de riesgos, etc.

  6. Desarrollo modular: SDM cree que el desarrollo modular es el modo principal de desarrollo de software, que puede reducir los costos de desarrollo de software y mejorar la eficiencia del desarrollo de software. SDM fomenta el desarrollo de módulos pequeños, construyendo gradualmente productos de software completos, minimizando el acoplamiento y las dependencias, y mejorando la mantenibilidad y la portabilidad.

3.Análisis de requisitos

3.1 Gama de productos

El alcance del producto define qué problemas debe resolver el software y en qué aspectos debe mejorarse. El alcance del producto es un vínculo esencial en el desarrollo de software y es la base para el análisis y el diseño de requisitos. El alcance del producto generalmente lo especifica el propietario del producto, el gerente del proyecto u otro personal relevante y lo envía al equipo de desarrollo de software. La formulación del alcance del producto generalmente sigue los siguientes principios:

  1. Comprensión general: el alcance del producto debe cubrir todas las funciones y características del software y las relaciones entre ellas.

  2. Límites claros: el alcance del producto debe definir claramente la funcionalidad principal del negocio y tener límites claramente definidos.

  3. Sin límites: el alcance del producto no puede ser demasiado vago, no puede ser demasiado amplio y no puede violar los objetivos de desarrollo.

  4. Hay casos reales: el alcance del producto debe describir en detalle las funciones comerciales o los procesos operativos y debe ser coherente con la situación real del software.

3.2 Necesidades del cliente

Las necesidades de los clientes están estrechamente relacionadas con los clientes, y los desarrolladores de software deben comprender completamente las necesidades reales de los clientes para poder proporcionarles productos de software que satisfagan sus requisitos. Las necesidades del cliente generalmente se pueden obtener a través de los siguientes canales:

  1. Confirmación de conceptos: los clientes pueden comprender qué tipo de producto desean a través de dibujos conceptuales, simulaciones o productos físicos.

  2. Solicitud de interés: un cliente puede aceptar una solicitud de interés en nombre de la empresa y preguntar qué tipo de productos o servicios desea la empresa.

  3. Investigación de la demanda interna: los desarrolladores de software pueden realizar investigaciones de la demanda internamente y consultar sobre las necesidades relacionadas con la empresa.

  4. Visitas externas: los desarrolladores de software también pueden visitar a los clientes para comprender las necesidades de la empresa.

  5. Análisis de productos competitivos: los desarrolladores de software pueden utilizar productos de la competencia para analizar las necesidades de los clientes y encontrar brechas en los productos.

3.3 Estrategia de mercado

La estrategia de mercado es el posicionamiento y la estrategia de posicionamiento de productos en función del entorno del mercado y los productos de la competencia. Durante este proceso, los desarrolladores de software deben prestar mucha atención a los cambios del mercado, como nuevos mercados u oportunidades para los productos de los competidores y las innovaciones tecnológicas, y aprovechar al máximo estos cambios para mejorar la competitividad de los productos de software.

  1. Posicionamiento claro en el mercado: los desarrolladores de software deben explicar claramente el posicionamiento de su producto y su modelo de ganancias, así como las presiones y oportunidades competitivas que enfrentan.

  2. Proporcionar una estrategia de mercado competitiva: los desarrolladores de software deben centrarse en proporcionar una estrategia de producto competitiva y mejorar la competitividad de sus productos impulsada por la demanda del mercado.

  3. Encuentre el mercado objetivo adecuado: los desarrolladores de software deben elegir un mercado que satisfaga las necesidades de los clientes y que tenga espacio para el mercado.

3.4 Análisis de productos competitivos

El análisis de productos competitivos es una actividad de comparación y análisis, con el propósito de descubrir las diferencias entre los productos y servicios de software y los productos y servicios de la competencia, determinando así los problemas que los productos y servicios de software deben resolver, cómo resolver los problemas y el clave del éxito estándar.

  1. Elija al competidor adecuado: los desarrolladores de software deben elegir un producto o servicio que haya demostrado ser lo suficientemente bueno, en lugar de elegir uno que no sea competitivo.

  2. Comprender las fortalezas y debilidades de los productos de la competencia: los desarrolladores de software deben estudiar los productos de la competencia para descubrir sus fortalezas y debilidades y por qué hacen lo que hacen.

  3. Identificar cuestiones clave: los desarrolladores de software deben identificar y analizar las diferencias clave entre productos de la competencia, proponer sus razones y sugerencias para resolver estas diferencias.

3.5 Análisis de datos

El análisis de datos es el proceso de recopilar, organizar, analizar y presentar datos. El análisis de datos tiene como objetivo identificar, analizar, predecir y comprender datos sobre los clientes y su comportamiento y tomar decisiones basadas en estos datos. El análisis de datos generalmente incluye análisis estadístico, investigación histórica, encuestas de analistas, registros de entrevistas, registros de observación, etc.

  1. Perfiles de clientes: los desarrolladores de software pueden recopilar datos para comprender las características de los clientes, condiciones psicológicas, preferencias, etc. a través de encuestas, entrevistas, cuestionarios, registros, observaciones, etc.

  2. Análisis del comportamiento del cliente: los desarrolladores de software pueden analizar los hábitos de comportamiento de los clientes cuando utilizan el software y, al analizar los datos, pueden descubrir por qué los clientes utilizan el software y qué funciones utilizan, mejorando así los productos o servicios de software.

  3. Análisis de tendencias del mercado: los desarrolladores de software pueden recopilar datos para analizar las tendencias del mercado, las cuotas de mercado y los posibles mercados emergentes.

3.6 Plano de producto

El plano del producto es un documento detallado desarrollado durante el proceso de desarrollo de software y se utiliza para describir las funciones, estructura, interfaces, rendimiento, compatibilidad, seguridad, principios de diseño, manuales de usuario, guías de instalación y otra información del producto de software. Los planos de productos pueden ayudar a los desarrolladores y usuarios de software a obtener rápidamente una descripción general del software, así como a comprender los objetivos, las funciones y cómo utilizarlo. Los planos de productos generalmente incluyen los siguientes aspectos:

  1. Introducción funcional: el plano del producto debe describir claramente las funciones, características y objetivos del software y compartirlo con los clientes.

  2. Público objetivo: el plano del producto debe presentar la funcionalidad, las características, el rendimiento, la guía de instalación, el manual del usuario, las precauciones, etc. del software al público objetivo.

  3. Declaración de compatibilidad: el plano del producto debe describir el alcance de la compatibilidad del software y describir los problemas de compatibilidad que puede encontrar el software.

  4. Tutoriales: el plano del producto debe proporcionar a los usuarios tutoriales introductorios sobre cómo utilizar el software y cómo informar errores o defectos del software.

  5. Instrucciones de funcionamiento: El plano del producto debe proporcionar instrucciones de funcionamiento detalladas con esquemas operativos.

Supongo que te gusta

Origin blog.csdn.net/universsky2015/article/details/133446414
Recomendado
Clasificación