We are pleased to host two Master Classes from world-class presenters
Jeff Patton | User Story Mapping: Getting the Big Picture |
Michael Feathers | Test Driven Development: The C++ Variations |
Is your Agile project buried under a mountain of user stories? As you add stories, does your vision of the product you’re building grow more hazy? As story count increases, do business stakeholders become more frustrated with prioritization? Do you find it difficult to communicate a big picture of what your system does?
In Agile Software Development, User Stories are used to describe, schedule and manage the software functionality built by the development team. A good user story describes, from a user’s point of view, what they need from the system and why. The more granular the user story is, the more flexibly we can prioritize, plan, and develop software. But, for a project of any reasonable size, user story count quickly explodes into hundreds of stories making it difficult to prioritize and communicate clearly what the product you’re building does.
User Story Mapping engages Agile teams in the creation of a simple to build model that places your user stories in context. With a story map you’ll be able to effectively see the big-picture – the breadth of functionality the product you’re building implements, the users it serves, and the activities they engage in. You’ll easily be able to see how larger planning-grade stories have split into smaller stories suitable for development. You’ll be able to visually prioritize stories to create effective incremental release plans.
In this half day tutorial you’ll learn the essentials of story mapping, story splitting and thinning, and incremental planning using a story map.
The tutorial is at intermediate level, it requires some background in Agile development. It is intended for Agile Customers, Product Owners, Business Analysts, User Experience Practitioners, Project Managers, Product Managers, Scrum Masters, Iteration Managers, XP Coaches, and anyone using Agile development but frustrated with the proliferation of user stories on their current project.
Jeff Patton has designed and developed software for the past 13 years on a wide variety of projects from on-line aircraft parts ordering to electronic medical records. Jeff has focused on Agile approaches since working on an early Extreme Programming team in 2000. In particular Jeff has specialized in the application of user centered design techniques to improve Agile requirements, planning, and iterative product design and development. Some of his recent writings on the subject are found at www.agileproductdesign.com, Alistair Cockburn’s Crystal Clear, and his regular StickyMinds.com and IEEE Software Magazine columns. His forthcoming book “Agile Development Outside-In” will be released in Addison-Wesley’s Agile Development Series and gives tactical advise to those seeking to deliver useful, usable, and valuable software using Agile methods. Jeff is the founder and co-moderator of the Yahoo agile-usability discussion group.
It isn’t hard to find information about TDD these days. There are several books on the subject, and plenty of web resources; however, almost all of them are written with the assumption that you’ll be using Java, C#, or a dynamically typed language in your work. Hardly any of them are written with C++ in mind.
TDD in C++ presents special challenges. The language is large and it presents many options. Developers must select among a variety of language constructs, all of which have different trade offs with respect to testability, design evolution, and dependency management. C++ also has failure modes that are significantly different than other languages.
In this tutorial, you will learn how to do TDD in C++. You’ll learn how to drive the creation of templates, interfaces, and plain old C++ objects (POCOs). You’ll also learn how to establish a TDD compatible C++ style appropriate for your team.
The tutorial is for experienced C++ developers who want to apply TDD in their organisations.
Attendees should bring laptops with GCC 4.x (or higher) or Microsoft Visual C++ 6.0 (or higher) installed. A testing framework will be provided.
Michael Feathers is a consultant with Object Mentor. He has been active in the Agile community since its inception, balancing his time between working with, training and coaching various teams around the world. He is a member of the ACM and the IEEE, the author of CppUnit, the original port of JUnit to C++; and the author of ‘Working Effectively with Legacy Code.’ When he isn’t engaged with a team, he spends most of this time investigating ways of altering design over time in code bases.