Master
ThoughtWorks
Menú
Cerrar
  • Nuestros Servicios
    • Visión general
    • Experiencia del Cliente, Producto y Diseño
    • Estrategia, Ingeniería y Análisis de Datos
    • Transformación Digital y Operaciones
    • Modernización Empresarial, Plataformas y la Nube
  • ¿Con quién trabajamos?
    • Visión general
    • Sector Automotriz
    • Servicios Médicos
    • Sector Público
    • Cleantech y Servicios Públicos
    • Medios y Publicidad
    • E-commerce y Retail
    • Servicios Financieros y Aseguradoras
    • Organizaciones sin fines de lucro
    • Viajes y Transporte
  • Insights
    • Visión general
    • Destacados

      • Tecnología

        Una exploración profunda de tecnología empresarial y excelencia en ingeniería

      • Negocios

        Mantenerse actualizado con los últimos insights empresariales y de industria para líderes digitales

      • Cultura

        El espacio para encontrar contenido y tips de desarrollo profesional, y nuestra visión sobre la justicia social y la inclusión

    • Publicaciones Digitales y Herramientas

      • Radar Tecnológico

        Nuestra guía de tendencias tecnológicas actuales

      • Opiniones

        Una publicación para líderes digitales

      • Digital Fluency Model

        Un modelo para priorizar las capacidad digitales necesarias para navegar en la incertidumbre

      • Decoder

        Una guía tecnológica de la A a la Z para líderes de negocio

    • Todos los Insights

      • Artículos

        Opiniones profesionales que ayudarán al crecimiento de tu negocio

      • Blogs

        Opiniones personales de ThoughtWorkers de todo del mundo

      • Libros

        Navega a través de nuestra extensa biblioteca

      • Podcasts

        Emocionantes charlas sobre las últimas tendencias en negocios y tecnología

  • Carreras
    • Visión general
    • Proceso de Aplicación

      Descubre lo que te espera durante nuestro proceso de selección

    • Graduados y cambio de carreras

      Empieza tu carrera en tecnología con el pie derecho

    • Ofertas de trabajo

      Encuentra puestos vacantes en tu región

    • Mantente conectado

      Suscríbete a nuestro boletín mensual

  • Acerca de Nosotros
    • Visión general
    • Nuestro Propósito
    • Premios y Reconocimientos
    • Diversidad, equidad e inclusión
    • Nuestros líderes
    • Asociaciones
    • Noticias
    • Conferencias y eventos
  • Contacto
Spain | Español
  • United States United States
    English
  • China China
    中文 | English
  • India India
    English
  • Canada Canada
    English
  • Singapore Singapore
    English
  • United Kingdom United Kingdom
    English
  • Australia Australia
    English
  • Germany Germany
    English | Deutsch
  • Brazil Brazil
    English | Português
  • Spain Spain
    English | Español
  • Global Global
    English
Blogs
Selecciona un tema
Ver todos los temasCerrar
Tecnología 
Gestión de Proyectos Agiles La Nube Entrega Continua Ciencia e Ingenieria de Datos Defendiendo el Internet Libre Arquitectura Evolutiva Experiencia de Usuario IoT  Lenguajes, Herramientas y Frameworks Modernización de sistemas heredados Machine Learning & Artificial Intelligence Microservicios Plataformas Seguridad Pruebas de Software Estrategia Digital 
Negocio 
Servicios Financieros Salud Global Innovación Ventas  Transformación 
Carreras 
Hacks Para Tu Carrera Diversidad e Inclusión Cambio Social 
Blogs

Temas

Elegir tema
  • Tecnología
    Tecnología
  • Tecnología Visión General
  • Gestión de Proyectos Agiles
  • La Nube
  • Entrega Continua
  • Ciencia e Ingenieria de Datos
  • Defendiendo el Internet Libre
  • Arquitectura Evolutiva
  • Experiencia de Usuario
  • IoT
  • Lenguajes, Herramientas y Frameworks
  • Modernización de sistemas heredados
  • Machine Learning & Artificial Intelligence
  • Microservicios
  • Plataformas
  • Seguridad
  • Pruebas de Software
  • Estrategia Digital
  • Negocio
    Negocio
  • Negocio Visión General
  • Servicios Financieros
  • Salud Global
  • Innovación
  • Ventas
  • Transformación
  • Carreras
    Carreras
  • Carreras Visión General
  • Hacks Para Tu Carrera
  • Diversidad e Inclusión
  • Cambio Social
Gestión de Proyectos AgilesEntrega ContinuaTecnología

User stories: A tale of epic confusion

 Matt Riley Matt Riley

Published: Jun 11, 2020

In a case of Semantic Diffusion, the original definition of ‘epic’ has weakened over the years. My observation is that epics either help or hinder good story writing depending on how we use them, and how well we understand what good user stories look like. In this article, I’ll explore why epics used in certain ways lead to different outcomes, and what you might do instead.
​

Good user stories

Before we get into epics, we need to talk about ‘user stories’. The incremental breakdown of work that user stories yield is essential to agile software development and continuous delivery. Yet they are notoriously hard to do well. Good story writing takes discipline and practice. Good user stories follow INVEST: Independent, Negotiable, Valuable, Estimable, Small, and Testable. Small and Valuable are arguably the most important, yet also the hardest to do well. Key to Valuable is another V — Vertical. ‘Vertical slicing’ refers to cutting through each layer of the application to deliver value, as opposed to horizontal slicing, which focuses on one layer at a time.
 

If we want good user stories, we need to make it easier to write good ones, and harder to write poor ones.​
 

Story writing is a team effort, yet you might ask yourself, “how many members of your team are skilled or even interested in writing good user stories?” Developers just want to write code! If we want good user stories, we need to make it easier to write good ones, and harder to write poor ones.

Mike Cohn introduced epics in his seminal book, User Stories Applied back in 2004. In User Stories, Epics and Themes, he describes an epic as: just a label we apply to a large story. In other words, user stories are discovered to be epics through sizing.
 

User stories are discovered to be epics through sizing.
 

Generally speaking, a user story we consider “large”, or “too large” means we lack confidence in developing in its current form. When writing user stories, we don’t know whether they’re right-sized for development until we size them. Does your team have rules about stories being too large? Does your team say, “13 points is too large” or, “XL is too large”? Calling these out as epics helps to emphasise the need for story splitting. Is this how your team uses epics today?
 

Epics today

These days epics are commonly used to group stories, often for reporting purposes. Perhaps the product owner is reporting to a product manager and grouping stories into epics has become an easy way of reporting progress at a higher level.
 

Using epics to group stories deprives us of a concise term that could otherwise be used to emphasise the need for story splitting.

Writing small user stories is hard, especially when we’re aiming for “very small” (e.g. cycle time of 1–3 days). In this case, most stories probably start out as epics. Calling out a large user story as an epic helps to emphasise the need for story splitting. But it doesn’t work very well when an epic (large user story) belongs to an epic (group of stories).

It goes without saying that this is confusing, so teams pick the definition that suits them. My observation is that teams use epics to group stories. Using epics to group stories deprives us of a concise term that could otherwise be used to emphasise the need for story splitting. Why not simply choose another word to describe a group of user stories? How about ‘feature’, or ‘milestone’? What’s stopping you?

Does your team use Jira? The appeal of Jira influences the grouping of stories into epics for reporting purposes and fuels a need to have every story assigned to one. Have you ever wondered what drives the questions, “what epic does this story belong to”, or “should we create an epic for that”?
 
Using epics to group stories can be an impediment to vertical slicing.

When lacking awareness of what good user stories look like, this approach leads us to write poor user stories. Using epics to group stories can be an impediment to vertical slicing. Examples of such epics include ‘Infrastructure’, ‘Monitoring and Alerting’, ‘Front-end/Back-end’, ‘Integration’ to name a few. These epics encourage ‘horizontal slicing’, which is exactly what we don’t want! Vertically sliced user stories should be incorporating elements of each of these to be considered done.

Ironically, epics that encourage horizontal slicing are not all that effective at reporting progress. For example, why and how would you estimate and track progress toward ‘Security’? Do you really want to be reporting that Story X is “done” but not releasable because it depends on Security Story Y which is not yet done?
 

Process comparison

Let’s compare the process potentially influenced by the two uses of epics (e.g. purely as a large story versus used as a grouping mechanism) using a contrived example of a user changing their password with an email notification.

Epics used to group stories:

  1. Epics are created either upfront before any stories are written, or by grouping existing stories. Some of the epics will unwittingly impede vertical slicing, e.g. ‘Front-end’, ‘Back-end’, ‘Security’.
  2. Stories are written to align to the epics, or new epics are created to group the stories. These stories are less likely to be vertically sliced, and would probably be better described as tasks, e.g. “Change Password UI”, “Change Password API”, “Authorise request to Change Password”.
  3. During story sizing, stories/tasks discovered to be too large are decomposed, further impeding vertical slicing, e.g. “Integrate with email service”. 
  4. Not all tasks are completed by the next reporting cycle. Progress is reported against each epic, even though no working software has been delivered to customers.

Epics used to describe large user stories:​

  1. No epics are created upfront.
  2. ​Stories are written uninfluenced by epics. These stories are more likely to be vertically sliced. The acceptance criteria would assume the need for UI, API, Authorisation, integration with email service, etc.
  3. During story sizing, stories discovered to be “too large” are called out as epics, and are decomposed whilst preserving vertical slicing, e.g. “Change Password email notification” is extracted as a new story. 
  4. Not all stories are completed by the next reporting cycle. It can be reported that “Change Password” has been delivered, and “Change Password email notification” is in the backlog to be prioritised.
    ​

Conclusion

Consider the following ideas to help influence good story writing:

  • Epics are not an essential concept to user stories or agile software development. First ask whether they’re needed at all.
  • Refrain from creating epics upfront. Even with best intentions and a good understanding of user stories, it’s hard to predict what kind of influence they’ll have on story writing. Jeff Patton’s User Story Mapping may help here.
  • Discover epics through story sizing. When a story appears to be too large, emphasise the need for splitting by calling it out as an epic.
  • If epics are being used to help manage a large backlog, ask whether the backlog really needs to be that large. Mike Cohn’s Four Steps to Keep Your Product Backlog Small and Manageable may help here.
  • If for some reason it is necessary to group stories, ask whether a different or more accurate term can be used. e.g. feature, theme, milestone.
  • If epics are being used for reporting purposes, ask how the reporting is being used and whether it is valuable and necessary. Are there alternatives?
  • Understand how software tools such as Jira are influencing team processes. Should they be allowed to evolve independently of a software tool, or be constrained by it?

Digital Fluency Model

Prioritize the digital capabilities needed to respond to the unpredictable.

Get started
Blogs relacionados
Lenguajes, Herramientas y Frameworks

Pre-commit: Don’t git hooked!

Matt Riley
Aprende más
Gestión de Proyectos Agiles

Retros suck! Three reasons why and what you can do about it

Emma Lundgren
Aprende más
Entrega Continua

5 Traits of a Good Delivery Pipeline

Marcos Brizeno
Aprende más
Master
Política de Privacidad | Declaración sobre la esclavitud moderna | Accesibilidad
Connect with us
×

WeChat

QR code to ThoughtWorks China WeChat subscription account
© 2021 ThoughtWorks, Inc.