Running a software development business, I am always looking for ways that we can improve. We use agile development concepts to manage our projects, but I felt like we weren’t getting the most out of the agile methodology. In an attempt to get better , I decided to pick-up a book on user stories. It’s one of the basic philosophies of agile development that makes it different from other development methodologies such as classic waterfall and requirements method.
My quest to read one book turned into reading three. In this post, I’m going to do a brief review of each book, and at the end, I’ll share what I learned about user stories and the agile development methodology by reading all three books.
5 Rules for Writing Effective User Stories
The first book I read was 5 Rules for Writing Effective User Stories by Thomas and Angela Hathaway. It’s a brief and to the point book that presents five simple concepts on how to write better user stories. They stress that the best user stories are simple, express “what” not “how”, are relevant, are understandable and clear, and can be measured.
There are plenty of good concepts that you can pull from this short book. It is easily digested in one or two sittings, and it will serve as a good starting point for jumping into other books on the subject. If there was one downside to the book, it’s that it will leave you wanting for more info on the subject, but I’m not suggesting that more should be added to this book. It makes its point in an efficient manner without rehashing the same points over and over again to meet a page quota.
Fifty Quick Ideas to Improve Your User Stories
To get more information about User Stories, I followed up with Fifty Quick Ideas to Improve Your User Stories by Gojko Adzic and David Evans. Fifty Quick Ideas is much more detailed and assumes that the reader has a good understanding of the agile development methodology. I suppose that’s why the title uses the word “improve”.
The book is broken down into five sections: Creating Stories, Planning with Stories, Discussing Stories, Splitting Stories, and Managing Iterative Delivery. Each idea starts with an overview, discusses key benefits, and concludes with suggestions on how to make it work.
Since I would still consider myself a beginner or early intermediate on agile development, many parts of the book were above my head. Overall, it’s a good book with lots of good suggestions if you are comfortable with agile development and looking for ways to up your game to the next level. I wouldn’t recommend it for people who are new to the methodology. The authors mention the same thing both on the Amazon page for the book and at the beginning of the book. Take my word – trust them.
I felt a little overwhelmed by Fifty Quick Ideas, so for the third book I went back to the basics. I picked up the short book User Stories….Unleashed by Mike Turner, Ray Jordan and Sean Hurst. This is an introductory book to writing user stories that is short and to the point. In other words, there isn’t any fluff or build-up to some big, over-arching concept. In 25 pages or so, the authors go over the basic of creating user stories, estimating stories, and tracking velocity.
For those who have limited or no experience working in agile development, this is a great introductory book. It’s not going to go deep into the subject matter, but it will give you the basics that you need in order to understand key terms and concepts around user stories and agile development.
What I learned about user stories and agile development
First of all, I read these books in the wrong order. I should have read them as follows:
- User Stories….Unleashed
- 5 Rules for Writing Effective User Stories
- Fifty Quick Ideas to Improve Your User Stories
When read in this order, the content builds on itself.
Here are a few of the common concepts that I gathered from the books:
- User stories are the keystone of agile development. Whether you do it using note cards or electronically, writing good user stories is an important part of implementing and making effective use of agile development concepts.
- User stories need to focus on business goals, not on development tasks. When coming from a waterfall environment, it’s easy to start creating user stories that are focused on development tasks rather than business needs. If your user stories are internally focused rather than externally focused, then your user stories aren’t effective.
- Stories are not discussed in detail until the development team is ready to work on them. Again, when you come from a waterfall environment, there’s a tendency to define every story up front like you would requirements. Then you sit back and wait for the project to finish to see if it meets the requirements. In agile, this is the wrong way to do things. User stories are not discussed in detail until the development team is ready to work on them. In this way, the team does not forget details around the stories, and it allows for stories (and requirements) to evolve as you learn more about the project.
- Stories need to be small and manageable. If stories cover too much ground, then they are not doing their job. In other words, if the development team cannot effectively estimate the effort to implement a story, then it is too large.
There were also some philosophical differences I noticed in how the books addressed managing agile development and iterative deliveries. Fifty Quick Ideas preached breaking stories into unified sizes and not relying on velocity, while User Stories….Unleashed discussed how important velocity was to estimating outcomes. There were also other more subtle differences that led me to the conclusion that I have to determine what works best for managing our team(s) in our development environment. In other words, I don’t see one uniform method for implementing agile development. There are some basic concepts that are universal, but the overall process will be dependent on what works best with your team and their way of getting things done.
And therein lies my challenge. I believe that agile concepts and philosophies are better than classical waterfall development. I need to determine how to implement these concepts and adjust them to maximize the performance of our team.
It’s part of the challenge that makes running a business and a development team fun!