2009-08-17 21 views
34

Mientras navegaba por las respuestas SO, encontré algo que, en mi opinión, es uno de los conceptos erróneos de administración de desarrollo de software más frecuentes: "el plan [de desarrollo de software] es una descripción razonablemente detallada de todas las actividades que debe emprender".¿Qué es un buen plan de desarrollo de software?

De ahí la pregunta: ¿qué es un buen plan de desarrollo de software? ¿Se puede reducir a una estructura de desglose del trabajo? ¿Es la EDT lo más importante para un plan de desarrollo de software de todos modos?

+1

Lectura recomendada: "Código completo". Al leerlo ahora mismo, esto te ayudará a comprender. – KdgDev

Respuesta

40

Un plan de desarrollo de software es un plan sobre cómo desarrollará el software que tiene la intención de desarrollar y entregar.

Aunque sé que ustedes, jóvenes traficantes, todos piensan que el ejército es un grupo de idiotas, de hecho tienen mucha experiencia en esta área, y ellos, a diferencia de muchas firmas comerciales, pensaron en lo que tenía que ser hecho. Eso incluyó un montón de lecciones muy dolorosas sobre cosas que deben tenerse en cuenta, cortesía de proyectos que fracasaron porque esas cosas NO fueron consideradas.

Estoy actualizando esto el 10 de abril de 2010. La fuente DOD-STD-2167A que mencioné anteriormente se ha apagado, por lo que tiene sentido apuntarlo a MIL-STD-498. Desafortunadamente, MIL-STD-498 se canceló en 1998, y el DoD ahora espera que los contratistas usen IEEE/EIA-12207 en su lugar. Los estándares IEEE, sin embargo, no son gratuitos como en la cerveza.

Consulte DI-IPSC-81427A para obtener un esquema del Plan de desarrollo de software.

A medida que lee la lista de cosas que deben abordarse, puede tener la impresión de que algunos de esos párrafos, como las reglamentaciones de la Marina, están escritos en sangre. Hay una razón para esa impresión: lo son. Los proyectos fallaron porque no abordaron esas áreas a tiempo.

Vea también http://sepo.spawar.navy.mil/SW_Standards.html: puede descargar un .zip con el estándar y todas las descripciones de los elementos de datos (especificaciones para los documentos individuales).

(Sí, soy consciente de que el DoD se ha alejado del DOD-STD-2167A, a favor de los estándares comerciales de IEEE. Sin embargo, IEEE cobra un brazo, una pierna y derechos de trasplante en el riñón izquierdo sus estándares.los estándares del Departamento de Defensa son gratis como en la cerveza)

Editar:. fija primero enlace

+0

¡Buena respuesta! Además, DO-178B/C incluye una definición de lo que debe incluirse en un plan de desarrollo de software. – JustADude

7

Artifact: Software Development Plan

El Plan de desarrollo de software es un artefacto integral, compuesta que recoge toda la información necesaria para gestionar el proyecto. Incluye un número de artefactos desarrollados durante la fase de inicio y se mantiene durante todo el proyecto.

Plan de Desarrollo de Software contiene

  1. Problem Resolution Plan
  2. Product Acceptance Plan
  3. Measurement Plan
  4. Risk Management Plan
  5. Quality Assurance Plan

Guidelines: Software Development Plan

5

un plan de desarrollo de software es un tipo específico de plan de proyecto. Si bien un WBS es importante, solo está rascando la superficie.

Un plan de proyecto debe tener:

  1. plan de Alcance (contiene la EDT)
  2. plan de horario
  3. Plan de costos
  4. Plan de calidad
  5. plan de personal
  6. Plan de comunicación
  7. Plan de riesgo
  8. plan de adquisiciones.

Más información sobre cada uno de estos planes se pueden encontrar en

The project Management Body of Knowledge.

Para las actuales directivas más específicas, ver Code Complete 2.

+1

Correcto, el OP debería consultar el libro Code Complete 2. Es un libro maravilloso que te mostrará los planes de desarrollo de software de la vida real en acción. –

18

"El plan [de desarrollo de software] es una descripción razonablemente detallada de todas las actividades que necesita llevar a cabo".

Que, en general, no puede existir.

Si realmente tiene todos los requisitos totalmente comprendido, y tiene todas las cuestiones de tecnología totalmente comprendido, se podría escribir un documento de este tipo.

Si, sin embargo, está haciendo algo nuevo - algo que los usuarios aún no han instalado - o está utilizando cualquier tecnología nueva, no puede proporcionar ni siquiera una descripción "razonablemente" detallada de las actividades necesitas emprender.

Puede proporcionar una descripción general, que resumirá algo de lo que necesita hacer. Pero, a medida que explora los requisitos, los usuarios descubrirán cosas, aprenderán y cambiarán de opinión. Revisando el plan. A medida que explora la tecnología, los desarrolladores descubrirán cosas, aprenderán y revisarán el plan.

No puede ser tan difícil, la gente lo hace todo el tiempo.

El público del plan es la administración. Los gerentes quieren una descripción "razonablemente" detallada de todas las actividades. A medida que los usuarios y desarrolladores aprenden sobre los requisitos y la tecnología, los detalles cambian. Esto hace que la prueba "razonable" sea muy, muy difícil de satisfacer. Cuando los detalles cambian constantemente, ¿qué nivel de detalle es "razonable"?

Los cambios en el plan pueden llegar (y lo hacen) a diario. La mayoría de los gerentes no querrán realizar cambios diarios en el plan. Entonces, demasiados detalles se vuelven "irrazonables". Para crear un plan que no cambie muy a menudo, el plan debe ser un resumen de las actividades.La única versión viable de un "Plan de Desarrollo de Software" es una serie de objetivos definidos, no en términos de actividades, en términos de funcionalidad que se lanzará a los usuarios.

En resumen, la gente lo hace mal todo el tiempo. En más de 30 años de desarrollo de software (gran parte como subcontratista militar) existe una fantasía sobre la planificación que simplemente no surge de los hechos. Los proyectos se cancelan con planes "razonablemente detallados", planes demasiado detallados y ningún plan.

De hecho, un plan suele ser la principal causa de cancelación. ¿Por qué? Con una lista de actividades "razonablemente detallada", cualquier aprendizaje significa que el plan está equivocado. Como el plan difiere de la ejecución real, algo debe estar mal. Tirar una moneda. Si considera que la ejecución es incorrecta, cancele el proyecto por no seguir el plan. Si considera que el plan es incorrecto, arregle el plan para que coincida con el mundo real. Cuanto más detallado es el plan, más parece "correcto" y es más probable que la ejecución sea defectuosa.

Línea inferior.

Un plan de desarrollo de software puede ser un documento de fantasía escrito como parte de una metodología de desarrollo "cascada" en la que todo tipo de cosas están sobre especificadas por adelantado y se castigan los cambios (del aprendizaje a medida que avanza el equipo).

O

un plan de desarrollo de software es una Agile burndown chart que simplemente muestra las pruebas de velocidad para ser completado. El nivel de detalle "razonable" es bastante bajo, es solo un resumen. Y cambia durante cada retrospectiva de sprint.

+0

+1 Sin embargo, incluso ágil requiere un descubrimiento inicial para sentar las bases de la acumulación. Sólo digo'. – Brenden

+0

@Brenden Descubrimiento frontal no era el foco de la respuesta, era el foco de un "plan". Sí. En Agile, usted hace un descubrimiento inicial para obtener un retraso acumulado, este es generalmente el "solo un resumen" mencionado en su último párrafo. A partir de ese momento, se fomenta el aprendizaje ya que los sprints cambian en función de los resultados de los sprints previos y las pruebas de mercado del producto. Básicamente, un "plan" es un mal enfoque, pero un resumen general con espacio para crecer no lo es. Eso es lo que obtuve de esta respuesta, y también mi experiencia personal. –

0

lo que siento que en proyectos de software Desarrollos debe ser dividida en dos partes

  1. gestión Software
  2. Software Developement

en gestión de proyectos todas las cosas adicionales posibles como objetivo de la compañía, proyecto la planificación, el seguimiento del proyecto, la estimación, la reserva de la parte de horas, el seguimiento de defectos, etc. pueden cubrirse.

En proyecto Deve Lopement, proyecto El ciclo de vida se mantendrá como cascada completa

Cuestiones relacionadas