He escuchado sobre casos de uso (estoy hablando de la descripción, no del diagrama) y de historias de usuarios que se utilizan para reunir requisitos y organizarlos mejor.
Trabajo solo, así que solo estoy tratando de encontrar la mejor manera de organizar los requisitos, para comprender lo que se debe hacer en el desarrollo. No tengo ni necesito ninguna metodología formal con documentos enormes, etc.
Historias de usuarios Parece que estoy siendo utilizado para construir la cartera de pedidos del producto, que contiene todo lo que hay que hacer en el desarrollo.
Los casos de uso, por otro lado, proporcionan una descripción de cómo se hacen las cosas en el sistema, el flujo de interacción entre los actores externos y el sistema.
Me parece que para un caso de uso hay varias historias de usuarios.
Esto me lleva a la siguiente pregunta: al descubrir los requisitos, ¿qué debo hacer primero? ¿Encontrar y escribir historias de usuarios o buscar y escribir casos de uso? ¿O deberían hacerse "al mismo tiempo" de alguna manera?
En realidad estoy bastante confundido. Con respecto a los casos de uso y las historias de usuarios, para un desarrollador que trabaja solo, ¿cuál es un buen flujo de trabajo para utilizar estas metodologías correctamente para tener un mejor desarrollo?
fuente
Respuestas:
Los casos de uso y las historias de usuarios son herramientas para recopilar y expresar requisitos.
Como ya descubrió, un caso de uso único generalmente tiene un alcance más amplio que una sola historia de usuario porque intenta describir completamente una interacción del usuario, incluidos errores y desviaciones de la ruta normal. Una historia de usuario puede compararse aproximadamente con un solo flujo a través de un caso de uso.
Como con todas las herramientas, depende de usted usar las herramientas que considere necesarias en una situación particular. Esto significa que puede usar solo casos de uso, solo historias de usuario o una combinación de casos de uso e historias de usuario como mejor le parezca.
Cada vez es más común usar historias de usuarios como la unidad de trabajo de lo que se puede desarrollar y entregar en una iteración / sprint.
Con eso en mente, no me concentraría demasiado en recopilar los requisitos como casos de uso, a menos que los casos de uso sean naturales al hablar con las partes interesadas.
fuente
En mi caso, siempre he encontrado que el nivel de detalles necesarios para los casos de uso completo se obtiene al pensar primero en mis historias de usuario. La primera pregunta que hago es "¿qué necesitan las personas para poder hacer?". Una vez que tengo los escenarios, es más fácil comenzar a analizar todos los casos de uso y variantes de flujo para el sistema.
Dicho esto, para un solo desarrollador que trabaja solo, realmente no necesita preocuparse si se trata de un caso de uso o una historia de usuario o una pegajosa en la pared que dice "no se olvide de 'x'". Lo que necesita es cualquier proceso que lo haga pensar en lo que sus usuarios están tratando de lograr y lo ayude a rastrear las diferentes cosas que deben poder hacer. Todo lo demás depende de usted en cuanto al nivel de detalle que necesita escribir para planificar su desarrollo.
Por ejemplo, cuando trabajo en un proyecto paralelo en solitario, mis tareas de trabajo se ven así:
Honestamente, cada uno de ellos no tendría nada más que una estimación. ¿Por qué? Porque solo los estoy usando como un recordatorio de lo que necesito para que el usuario pueda hacer y descubriré los detalles cuando llegue a esa parte. Con un equipo de una sola persona, todo puede estar en tu cabeza y eso está bien, porque no tienes que comunicarlo a nadie más.
Ahora, hay advertencias ...
Desarrollador único que trabaja con otros especialistas.
¿Necesita informar sobre el progreso a otro equipo? ¿Tienes probadores que necesitan validar tu trabajo? ¿Tiene una administración que quiere saber lo que ha hecho? ¿Tiene un gerente de proyecto que necesita predecir una línea de tiempo? ¿Tiene un propietario de producto que determina las características que se requieren?
Si estas personas son parte de su proyecto, entonces debe asegurarse de que sus tareas de trabajo tengan suficiente información sobre ellas para permitirles hacer su trabajo. El primer ministro probablemente necesita una forma de ver los tamaños relativos de las cosas y progresar en ese trabajo. Sus evaluadores necesitarán detalles sobre cómo se espera que fluyan las cosas (casos de uso) e incluso puede pedirles que lo ayuden a escribirlos. Es posible que la administración quiera saber en qué está trabajando, por lo que necesitará una descripción comercial suficiente para que puedan comprender las características que ofrecerá.
Si respondió 'sí' a todas esas preguntas, probablemente necesite tener una acumulación de documentos más rígidamente documentada, ya que la usará para comunicarse con los otros miembros de su equipo.
Todo lo anterior puede ignorarse si usted es quien define el trabajo, administra el progreso, prueba el software y decide si algo es "correcto". Reduzca el esfuerzo adicional y asegúrese de hacer lo que es importante: ¡crear software que funcione!
fuente
Si está haciendo algún tipo de agilidad, la respuesta dogmática es: haga lo que funcione para usted.
El proceso debe ser parte de sus retrospectivas. Debería estar hablando de cuellos de botella, redundancias, problemas de comunicación, documentos que nadie lee, etc. Y esa es la configuración en la que los cambios en el proceso deben acordarse e idealmente ponerse en marcha.
En mi experiencia, los gerentes de proyecto, analistas y "empresarios" están capacitados para realizar el proceso "de adentro hacia afuera". Reúnen los requisitos, que a menudo los interesados dan verbalmente en forma de historia de usuario. Hacen preguntas para aclarar, para que puedan crear documentos detallados de "casos de uso", que el equipo de desarrollo intenta traducir de nuevo en historias de usuarios en las que puedan iterar ...
Mi recomendación, basada en mi propia experiencia: intente que su equipo o analista o quien sea ponga las historias de los usuarios directamente en la cartera, con un mínimo de detalles. Incluya información prioritaria y describa el "problema" que la historia pretende resolver. Quizás enumere algunas soluciones potenciales ... pero, más allá de eso, deje que surjan los "casos de uso" a medida que sus desarrolladores interactúen con QA y / o las partes interesadas en las historias.
Registre los casos de uso en los que llegó en su documentación a medida que se resuelve la historia, en cualquier formato que ayude a la gente a comprender el sistema.
fuente
Las historias de usuario y los casos de uso no son mutuamente excluyentes y no hay "debería" .
Son solo herramientas que pueden o no ser útiles para mejorar su proceso hasta cierto punto. Hay muchas formas posibles, solo propondría una con casos de uso e historias usadas juntas:
fuente
Depende . Si está trabajando solo, pruebe diferentes enfoques y tome lo que mejor funcione para usted.
Descargo de responsabilidad: hay muchas metodologías para escribirlas. Las "historias de usuario" tienen una definición muy común, mientras que los "casos de uso" pueden tener significados muy diferentes. Me refiero a los diagramas UML clásicos, que son muy comunes.
Historias de usuarios o casos de uso
En mi experiencia, hay diferentes mentalidades sobre cuál es la mejor manera de entender. Entonces decidiría sobre cada nuevo equipo de proyecto, cómo documentar los requisitos. Por lo general, una combinación es común, utilizando casos de uso para la descripción general e historias de usuarios para más detalles.
(Esto se basa en la opinión, sin fundamento científico)
¿Qué hacer primero?
Al escribir los requisitos para un proyecto, comenzaría en un nivel muy abstracto. Usando casos de uso, pintaría un diagrama (UML-) con los objetivos globales del proyecto. Con historias de usuarios, escriba algunas "historias épicas" que describan los objetivos principales.
Un segundo paso sería entrar en detalles. Al hacer esto, debe tratar de mantener una referencia a una "historia épica" o un objetivo global. Esto ayuda a estructurar mucho los requisitos.
fuente
Lo miraré al revés: ¿qué debe venir al final?
El último paso es que usted (u otra persona) ingrese los requisitos en su cartera de pedidos. Los requisitos deben ser tales que usted sepa cómo debe comportarse el código que escribe, y para que los evaluadores puedan verificar que su código se comporta como debería.
Estos requisitos se pueden registrar muy bien en forma de una historia de usuario bien definida. Entonces la historia del usuario puede ser el último paso. Los casos de uso generalmente se convertirán en más de una historia de usuario, por lo que tienen que venir antes de la historia de usuario.
fuente
Solía pensar que los Casos de uso estaban destinados al enfoque en cascada, mientras que las Historias de usuarios venían con el proceso Agile. Me tomó un tiempo darme cuenta de que no son exclusivos.
Como no tendrá que compartirlos, no se tratará de comunicación, excepto con usted mismo. Siempre y cuando puedas entender tus notas una semana más tarde, estás bien. De lo contrario, agregue más detalles cuando tenga en cuenta los requisitos.
¿Necesita una forma visual y flexible de seguir su progreso y establecer prioridades? Si es así, las Historias de usuarios serían útiles, junto con el tablero de progreso que encontrará en la mayoría de las metodologías ágiles (todo, hecho, sprint actual).
Cuando se trata de requisitos puros, sabiendo lo que hay que resolver y cómo, sugiero comenzar con Historias de usuarios, ya que son fáciles de crear (una oración) o un Diagrama de casos de uso que enumera solo actores y acciones de alto nivel.
Cuando se necesiten detalles, profundice con más Historias de usuarios. Cuando encuentre un proceso complejo (ramificación, muchos condicionales y requisitos previos), puede VINCULAR la historia del usuario a un caso de uso, ya sea que use un diagrama o la versión de plantilla de texto. Y recuerde que incluso esos se pueden crear con diferentes niveles de detalles. El libro de Requisitos de software de Karl Wiegers & Joy Beatty recomienda mantener solo el nivel de detalle necesario para comprender. Si algo es completamente obvio para usted, no tiene que profundizar.
Lo anterior es lo que personalmente no entendí al principio: las Historias de usuarios son un punto de partida, un "resumen", pero cada una puede complementarse con documentos adicionales para definir mejor lo que significa y necesita, incluidos los casos de uso detallados cuando sea necesario.
fuente