Friday, August 30, 2013

An Introduction to Product Management and Agile Product Ownership

I've been writing about the various topics that interest me for many years - I was an early adopter of Blogger and continue to use the platform - I like the flexibility and ease-of-use. Also, at Blogger I'm able to have as many blogs that I could ever want, and explore the many things I may want to highlight through writing and opinion. I started thinking about Product Management more-and-more recently as I'll explain shortly and decided it was time to start opining about it and how it integrates into Agile Product Ownership as part of an agile scrum team.

But first, I'd also like to define a few terms so those of you unfamiliar with them can follow along.

Product Management - actually this should be Software Product Management. Wikipedia defines it as: "...an organizational lifecycle function within a company dealing with the planning, forecasting, or marketing of a product or products at all stages of the product lifecycle."

Product Manager - kind of obvious based on the definition above - this is someone who manages products. In my case since I do software development, the role has more to do with taking the various inputs from the business, users and others, and distilling them into information that can be used by software developers to make changes or create new software products.

Agile Software Development - this is a software development methodology. Once again, Wikipedia defines it as "...a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change. It is a conceptual framework that promotes foreseen interactions throughout the development cycle. The Agile Manifesto[1] introduced the term in 2001.

scrum - (just assume that all of these definitions are from Wikipedia going forward, with some notes from me) - "...is an iterative and incremental agile software development framework for managing software projects and product or application development. Its focus is on "a flexible, holistic product development strategy where a development team works as a unit to reach a common goal" as opposed to a "traditional, sequential approach". Scrum enables the creation of self-organizing teams by encouraging co-location of all team members, and verbal communication between all team members and disciplines in the project.
A key principle of Scrum is its recognition that during a project the customers can change their minds about what they want and need (often called requirements churn), and that unpredicted challenges cannot be easily addressed in a traditional predictive or planned manner. As such, Scrum adopts an empirical approach—accepting that the problem cannot be fully understood or defined, focusing instead on maximizing the team's ability to deliver quickly and respond to emerging requirements."

kanban - "...is a method for managing knowledge work with an emphasis on just-in-time delivery while not overloading the team members. In this approach, the process, from definition of a task to its delivery to the customer, is displayed for participants to see and developers pull work from a queue."

scrum master - "Scrum is facilitated by a Scrum Master, who is accountable for removing impediments to the ability of the team to deliver the sprint goal/deliverables. The Scrum Master is not the team leader, but acts as a buffer between the team and any distracting influences. The Scrum Master ensures that the Scrum process is used as intended. The Scrum Master is the enforcer of the rules of Scrum, often chairs key meetings, and challenges the team to improve. The role has also been referred to as a servant-leader to reinforce these dual perspectives. The Scrum Master differs from a Project Manager in that the latter may have people management responsibilities unrelated to the role of Scrum Master. The Scrum Master role excludes any such additional people responsibilities."

Product Owner - "...represents the stakeholders and is the voice of the customer. He or she is accountable for ensuring that the team delivers value to the business. The Product Owner writes (or has the team write) customer-centric items (typically user stories), ranks and prioritizes them, and adds them to the product backlog. Scrum teams should have one Product Owner, and while they may also be a member of the development team, this role should not be combined with that of the Scrum Master. In an enterprise environment, though, the Product Owner is often combined with the role of Project Manager as they have the best visibility regarding the scope of work (products)."

I think that covers most of what I'll write about and I apologize if all of the above is already familiar to you. More in the next post...

-- John