About Me

My photo
Rohit leads the Pivotal Labs App Modernization Practice in engineering, delivery training & cross-functional enablement, tooling, scoping, selling, recruiting, marketing, blog posts, webinars and conference sessions. Rohit has led multiple enterprise engagements including ones featured in the Wall Street Journal. Rohit focuses on designing, implementing and consulting with enterprise software solutions for Fortune 500 companies on application migration and modernization.

Saturday, February 1, 2020

How To Write Good User Stories - What makes a good technical story ?

User stories are the currency  Product Managers use to turn architecture into code. To design any system you need both  technical and user-driven stories. Both styles have a place in a app modernization engagement. 

Classic stories are written from the users perspective and explain incremental business or user value. Technical stories sometimes may not have an obvious human user and/or a clear business / user value. That is OK.

Here are some tips on how to write good stories 

  1. Event Driven Architecture lends well to Gherkin style stories https://www.pivotaltracker.com/blog/principles-of-effective-story-writing-the-pivotal-labs-way and https://content.pivotal.io/blog/how-to-write-well-formed-user-stories
  2. Techical Story Writing https://medium.com/product-labs/ways-to-approach-technical-story-writing-961e0506fa13 
  3. How To Write Well Formed Stories https://content.pivotal.io/blog/how-to-write-well-formed-user-stories
  4. Good reference for story writing https://www.pivotaltracker.com/blog/principles-of-effective-story-writing-the-pivotal-labs-way
  5. When working with non-engineering PMs This is excellent guidance for writing API user stories https://content.pivotal.io/product-managers/designing-developing-an-api-product-part-3-of-4   and https://builttoadapt.io/what-my-backend-and-api-user-stories-look-like-c5e965beb778#.vi9fi0yq4
  6.  A really good overview of different story types, including bug reports, with examples: https://www.pivotaltracker.com/blog/principles-of-effective-story-writing-the-pivotal-labs-way

Sample Technical Story

[driver] service subscribes to [order-accepted] event and publishes [driver-assigned] event with dummy driver information

Acceptance Criteria
When [order-accepted] event is received by [driver] service
Then  [driver] service publishes a [driver-assigned] event with dummy driver information
And [driver-assigned] event contains the same orderId that was received from [order-accepted] event
Dev Notes
  • The [order-accepted] event will look like { "orderId":"...", "restaurantId":"...", "eventDate":"2019-08-16T15:30:30Z" }
  • The [driver-assigned] event might look like { "orderId":"...", "driverId":"...", "eventDate":"2019-08-16T15:30:30Z" }