Métodos ágiles y bases de datos al inicio del proyecto.


12

Nuevo en ágil y no estoy seguro de cómo empezar. La idea es crear pequeñas partes del proyecto en sprints. Sin embargo, el proyecto en el que estoy trabajando requiere una base de datos y la base de datos debe ser casi funcional para hacer algo con el proyecto.

Entonces, ¿cómo manejan esto los proyectos ágiles? ¿Comienzan creando la base de datos?

¿Cómo lo haría? Por ejemplo, si usa Scrum, ¿cómo haría las historias de los usuarios y probaría la base de datos?

¿Prefieres hacer partes de la base de datos en una historia que también requiere código?

Supongamos que tiene una historia que dice "Como usuario debe poder registrarse ...", ¿crearía la tabla de usuario en la base de datos como parte de esta historia?

¿Cómo puede ayudarlo Agile a diseñar la base de datos?


1
re: "Como usuario debes poder registrarte ..." Sugeriría leer a través de blog.gdinwiddie.com/2011/06/11/dont-you-have-to-login-first y las publicaciones que menciona . Puede que no haya una respuesta "correcta"; Es bueno entender los diversos razonamientos en la discusión.
StevenV

Si está iniciando Agile, o cualquier otra metodología para el caso, asegúrese de que sea adecuado para el estilo de su equipo, proyecto y organización al tratar con proyectos de software (o el de su cliente). No es cierto que cada metodología funcione para cada proyecto y cada organización.
NoChance

Respuestas:


14

Sí, creará una base de datos de forma incremental agregando las tablas y columnas necesarias según lo requiera la historia. Por lo general, no necesita toda la base de datos cuando comienza su primera historia, por ejemplo, "Como usuario debe poder registrarse ..." probablemente requiera una sola tabla con un conjunto de columnas exactamente definido.

Si tiene una historia que realmente requiere toda la base de datos, la historia es épica; es simplemente demasiado grande y debe dividirse.


5

Nuevo en ágil y no estoy seguro de cómo empezar.

Después de leer tu publicación, creo que la estás malinterpretando y deberías comenzar a leer lo que ágil realmente significa y trata de lograr.

La idea es crear pequeñas partes del proyecto en sprints.

Cerca, pero no lo suficiente. La idea es entregar software de trabajo al final de cada sprint (una parte del sistema puede caber en un sprint, o no). La base de datos puede verse como un software funcional si y solo si la base de datos es lo que usted entrega al cliente.

Sin embargo, el proyecto en el que estoy trabajando requiere una base de datos y la base de datos debe ser casi funcional para hacer algo con el proyecto.

¿Por qué tiene que ser casi funcional? ¿Cada característica del sistema utiliza todo o la mayor parte del contenido de la base de datos? Porque si no es así, no tiene sentido diseñar de antemano toda la base de datos.

Entonces, ¿cómo manejan esto los proyectos ágiles? ¿Comienzan creando la base de datos?

Agile no maneja la base de datos o el diseño del sistema. Te dice cómo administrar tu proyecto. Con eso en mente, comienza identificando todas las características del sistema y las coloca en la cartera de pedidos del producto. Luego, junto con el propietario del producto, asigna prioridades a las funciones de la cartera de pedidos. Después de hacerlo, comienza a tomar características de la cartera de pedidos y crea sprints (generalmente de 2 a 4 semanas). Cuando termina un sprint, debe tener una nueva función de trabajo en el sistema que se pueda entregar al cliente.

¿Cómo lo haría? Por ejemplo, si usa Scrum, ¿cómo haría las historias de los usuarios y probaría la base de datos?

Podría estar equivocado, pero no tiene sentido probar la base de datos. Puede probar el código que actualiza la base de datos. Por supuesto, puede probar su parte programable de la base de datos, pero eso se puede lograr probando el código que la llama.

¿Prefieres hacer partes de la base de datos en una historia que también requiere código?

Si.

Agile no es de ninguna manera una bala de plata para la gestión de proyectos y puede significar un desastre cuando no se aplica correctamente. Trate de pasar un tiempo leyendo al respecto (puede encontrar muchos recursos aquí o en stackoverflow), tal vez encuentre a alguien que ya sea ágil y pueda ayudarlo a ponerse al día.


4

la base de datos debe ser casi funcional para hacer algo con el proyecto.

En gran medida falso.

Entonces, ¿cómo manejan esto los proyectos ágiles? ¿Comienzan creando la base de datos?

Una base de datos vacía, sí. Luego agregue tablas según sea necesario para terminar un sprint.

¿Cómo harías las historias de los usuarios y probarías la base de datos?

¿Que estas preguntando? Agile no tiene nada que ver con el diseño de la base de datos.

Tú escribes la historia.

Tú diseñas una solución.

Creas tablas y código.

Usted prueba el código.

¿Prefieres hacer partes de la base de datos en una historia que también requiere código?

¿Qué otra opción hay? ¿Todos los DB primero? Eso es imposible.

"Como usuario debe poder registrarse ..." ¿crearía la tabla de usuario en la base de datos como parte de esta historia?

Primero, esa es una historia inútil, ya que no tiene ningún valor registrarse. Eso es simplemente un obstáculo técnico por el que los usuarios se ven obligados a pasar.

En segundo lugar, crearía suficientes tablas para implementar la historia.

¿Cómo puede ayudarlo Agile a diseñar la base de datos?

¿Que estas preguntando?

Ágil es la gestión de proyectos. No ayuda con ningún diseño.

Simplemente te ayuda a romper un gran trabajo en pedazos pequeños.


2

En primer lugar, siga un enfoque incremental. Seleccione un módulo, defina sus requisitos, marque la funcionalidad, apunte a un área funcional y luego venga el modelado, el diseño de base de datos, los algos, los códigos y, finalmente, pruébelo y repita el proceso.


2

Su pregunta grita del antipatrón de desarrollo AgileFall .

¿Qué es? Por lo general, es una organización que tradicionalmente desarrolló software en un método Waterfall, pero luego, porque se dan cuenta de que no está funcionando, luchan internamente para adoptar técnicas ágiles. El "gas de falla" resultante generalmente ocurre porque Agile verdadero DEMANDA una sacudida organizacional fundamental de la forma en que muchas tiendas establecidas de Waterfall están estructuradas. Y, por supuesto, tenderán a mantenerse estructurados de esa manera, ya que muchas personas poderosas y tenibles sienten que necesitan inyectarse en el proceso cuando Agile muestra cuán inútiles son esas personas REALMENTE para el desarrollo de software.

Debe escapar de esta noción de que de alguna manera comienza desde abajo, diseña y construye su base de datos, y luego pasa al nivel medio y nunca más tiene que tocar su base de datos. Esta es la forma incorrecta de hacerlo en Agile.

Comience en el modelo de dominio para una historia de usuario y avance hasta la base de datos, y ABAJO hasta el nivel medio y la presentación.


Sí, veo la mayoría de las sugerencias de respuesta a esto e incluso me lo imaginé mientras escribía la pregunta. No se preocupe por AgileFall, este es principalmente un proyecto de prueba en el que estoy probando métodos y patrones para aprender cómo funcionan, no un proyecto serio.
Ingó Vals
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.