EPIC : Enabler For Lean Product Management
When you are working on legacy modernization, an existing business functionality remains same and the technology transformation powers the initiate to gain benefits such as lower operational cost or faster speed to market. In this journey, you do an enterprise discovery and due diligence to come up with high level business feature set and see what optimizations can be done in the business workflow.
When you are aspiring to build a new product, by design thinking mechanism you get the important feature sets to fulfill customer needs.
In above both cases, you have decomposed business system at a domain or sub domain level with the respective feature set.
Before you dwelve further deep into individual finer flows, you need to collate this high level understanding. That way a logical categorization of the offering can happen independently. In an enterprise, there could be lot of overlaps and hence duplication of work. If the high level details are made distinct even with the rough details then the redundancy is avoided. Product features can be cohesive & independent. The product analyst and development team can work to detail it out further and build the product features. These high level rough details about the product feature set within the domain or sub domain triggers the need for an Epic.
What’s an Epic?
Epic’s (dictionary) meaning is, a long poem, typically one derived from ancient oral tradition, narrating the deeds and adventures of heroic or legendary figures or the past history of a nation.
Similarly in lean product development, epic is a description of a product feature set with multiple distinct functions.
E.g. an epic could be a payment API which offers or user login functionality or even a non functional need such as security test of specific features of the product or performance improvement.
In an Agile world, epics are large bodies of work that can be broken down into a number of smaller tasks (called stories).
In the transformation scheme of things, Epic is a chunk of work that team builds and ships over couple of sprints/ forth nights.
How to go about Epics?
As we have discussed epic sums up high level rough idea about a topic i.e. a domain function, sub domain function or logical set of features within the sub-domain.
If you already have set of features/requirements and a lot of thoughts then you might want to start with thinking about a particular function and club features around that. You would have epic about that function. While you do that you would come across supporting or dependent functions/features around that. You can then jot them down separately and write features around the dependent functions. This would make different epics about respective dependent or supporting functions.
An example of how to build epics
Let’s take example of Online retail shopping. First step is login, this can be considered as an epic. Authentication, forgot password, user registration can be granular features which would belong to Login functionality epic. These granular features could be tasks/stories from development team perspective. Let’s say user registration is a multi step process which includes gathering user information, verifying email id and phone number, verifying address etc. Then user registration itself can become an epic.
After login, you search the products of different types, electronics, apparel, books etc. Here search as per different domain can be an epic. Adding different products to cart can be a different epic. Applying discount, coupon can be a different feature set and hence epic. Payment by wallet or credit card is yet another epic. Order confirmation and sending email can be an epic.
The list of epics can go on like cancel, return, refund transactions. Support functionality for the back end agents.
Systems to do reconciliation, inventory reports for the business etc.
You can choose the epics to be picked and worked upon by the team.
Since the product domain, understanding of epic concept, size of work, shippable feature set and duration in which the feature set can be built, team size & skill level differs from case to case, it is important to get the product team together and build a common understanding on the epic. The success stories of other department, organization on epic should be taken as guideline or inspiration but team must decide what suits to them as an epic.
During epic and when features are getting built, those are showcased to the customers to seek feedback and improvement about the product. The suggestions are taken up as the tasks and added to the epic.
Conclusion: Benefits of Epic
- Epic is a very useful term, concept, instrument & tool in lean product development.
- Epic enables a product delivery (which has broad set of features, a big picture with a grand vision) by slicing and creating shippable features to customers regularly.
- Epics help you separate domain and sub domain functions. Epic helps to put together the features/tasks/stories related to the same topic.
- Epics should help you collate your initial thoughts and jot them together about a similar work theme. Since epics are the tangible goals before the team and the relatively sizeable set of feature deliverable, epics help measure the progress.
- Epics enable time boxing and allows the rapid incremental feature delivery. Epics as those are short duration accomplishments, beyond measuring progress it gives sense of accomplishment in turn frequent celebrations to the team.