Friday, January 30, 2009

7. What is a good user story?

A good and mature user story is a
  • bite size chunk (not too big, not too insignificant) of work which can provide business value, and
  • can be implemented in a few days to few weeks
  • understandable by stakeholders and acceptable by developers

1.User story is an informal statement of a requirement.

Many a times, I have talked to development managers, who want to see user stories as a requirement specification document, down to the last detail. In my opinion, a user story is a value statement for the business: a simple description of requirement (one line of feature), the use of requirement for the business(2-3 lines of benefit), and what conditions must be fulfilled and if delivers (few lines of acceptance criteria).

It should not be confused for a technical requirement specification document.

In essence, a user story must not be more than 100 words.

Title: one line
Priority: one word
Estimate: one word
Feature: one line
Benefits: 2-3 lines
Acceptance criteria: few lines

There are 2 fields that state the "work" to make a user story mature: estimate and priority, which are essentially indications of development effort and delivery timeline.

2. User story is a collective responsibility, and must mature before starting work.

As a product manager, I keep collecting feedback in form of a user stories in following format

Title: one line
Feature: demand/conversation

These short stories may be difficult to interpret, and may lose context with time, and need to be enriched with background knowledge and benefits of requested feature before they move up higher up in priority list.

Product manager has to facilitate interaction between developers and stakeholders, and encourage both for their feedback on feasibility, broad estimates, benefits it can have on product and business.

Title: one line
Estimate: one word
Feature: one line
Benefits: 2-3 lines

Once, a user story is accepted at this level, it makes sense to spend time to detail the story with acceptance criteria, and a fully mature user story ready to be prioritized.

For a mature product, maturing most of the user stories is a relatively easier task because most of the demands are discovered bugs or minor features. But sometimes, as a product matures in market, users start to realize limitations of the product and are ready for next level of sophistication, and such demands usually warrant a entirely new product.

3. No user story is complete until it has been accepted for execution.

Until the time a story is accepted by the development team, it is considered a live document, and everyone should have flexibility to update it with newly discovered information, be it estimates, benefits, or acceptance criteria. Almost all the time, when acceptance criteria is decided, there will be a impact on estimates.

If the story is too complex or estimates are too big, it may be necessary to break down a user story into multiple simpler user stories.

4. A user story is as only as effective as its acceptance criteria

As clear as it is stated by any experienced product team member, it is often least worked upon too. Many a times, it takes learning from past to be able to be able to write effective acceptance criteria.

Other times, stakeholders assume some criteria to be obvious or implicit, which is a definite way to be ready for disappointment when the product comes out.

Thursday, January 29, 2009

6. Mission statement for a PM

A product manager should
  • be responsive to stakeholders and users by conducting regular triage session on demands
  • give priority to inbound and strategic tasks and not tactical or outbound tasks
  • maximize long-term ROI for the product by working on features that keep the product ahead of competition
  • maximize long-term ROI for the organization by providing cohesiveness with other products offered by the business group
  • be informed about latest in market trends, related technology advancements and upcoming releases of related products (competition, integrations)
  • keep the product lean by pruning features which do not provide any benifit.
  • keep the product roadmap in line with vision of organization, and in sync with stakeholders

5. Is product manager managing his/her time?

As I was settling into my official role as a product manager, I began interacting with various product managers in Borland, some of them as experienced as my age :)

Almost every one I talked to told me that they do not get enough time doing their primary job. I did not understand it quite well, because it appeared that almost all of them are doing excellent job
  • meeting customers, and
  • bringing out releases of their products.

And then, my mentor explained to me why it is not justified!
  1. Meeting customers is good, but not enough. Meeting customers help product managers get more items in their funnel, but does not improve responsiveness to existing items waiting for processing. As much as it is necessary to have good relationships with stakeholders, it is much more important to respond to their demands at a consistently acceptable pace.
  2. Product managers should focus more on inbound tasks than outbound tasks. Instead of spending time on strategic planning, writing detailed and mature requirements and synchronizing engineering team and stakeholders, product managers are spending more time handling tactical issues like deployment issues of a release.
  3. Product managers have a very active role, and spend time on non-productive activities like travelling.

Points to ponder

  1. Products mangers should ideally spend as much time on inbound activities (at least 40%), but in reality spend less than 5%
  2. Products mangers should ideally spend just sufficient time (around 10%) on build activities (sprint planning and reviews) , standups) , but in reality spend less than 5%
  3. Products mangers should ideally spend just little time (around 20%) on outbound activities (deployment prep), but in reality spend more than 40%
  4. Products mangers should ideally try to minimize time spend on housekeeping activities (less than 30%) , but in reality spend more than 50%

Wednesday, January 28, 2009

4. Who am I catering to?

At Borland, we have a adopted a agile way of working on product roadmaps, keeping the roadmap as a "live" document which is shared constantly with stakeholders instead of being a "snapshot" document.

This helps us to bring more cohesion between engineering teams and our strategic customers and stakeholders by providing current view of our direction and eliminating long periodic pauses and "out-of-sync" commitments.

One of the key aspects of this document is understanding of market segments that is going to be catered to, with every planned release.

In my opinion, there are 4 aspects to understand the most suitable segment for a release

  1. Role of the user (e.g. developer, project manager, business analyst) : Who is going to use the product, what are his/her general capabilities, what are the other tools used by such role.
  2. Size of the group (individual, SOHO, SME, large enterprise): What is the collaboration level required, what is the spending capacity
  3. Maturity (unstructured, follows standards, decides standard): What processes and work flows impact usage of product
  4. Exposure (direct sales, inside sales): How is the product going to reach the customer? How close is the customer to out business?

3. In appreciation of good food

My appreciation for good food had amused me to think why product manager is like chief chef preparing a series of "set meals" for a week-long event.

For one, chief chef doesn't have to do the actual cooking but is still, somehow, responsible for knowing the taste buds of diners and satisfying them each time by choosing the right dish for every course. At the same time, it is important to use good quality ingredients (does not always mean expensive) and making sure restaurant earns sufficiently to enjoy repeating the experience for customers (good return on investment).

  1. Long long time before the meal time, a good chef talks to diners (directly, through servers, surveys) to know what diners would like to enjoy and whether kitchen has the capacity/capability to serve the request.(triaged demands)
  2. Chief chef works with important guests and kitchen staff, and narrows down on the list of dishes to prepare for the occasion. (prioritized user stories), make sure each dish in "set meal" goes well with each other (theme of a release), and diners should not get upset stomach while enjoying the experience from previous meal to next meal (proper upgrade path)
  3. enjoy the preparation in the kitchen (sprint planning, standups and reviews).
  4. shoot kitchen videos on your mobile and show them to key guests/event organizers to let them know good food is coming their way. take their feedback seriously and try to accommodate it. (synchronization with stakeholders)
  5. if feasible, invite the eager guests in kitchen for a tasting session to help cooks bring out amazing taste to their liking (early access program)
  6. educate the staff about presentation methods, characteristics of dishes and proper ways to eat and enjoy the meal. (release presentations, demo data, best practices)
  7. Just before meal time, taste the food and let it be served. (approve and release)
  8. while diners enjoy their meal, it is a good idea to gather feedback for improvement in the next meal. (feedback)

While I was drawing this analogy, it occurred to me that product manager can indeed be called chief engineer. I would refrain from comparison with chief scientist, though.

Tuesday, January 27, 2009

2. How is a product managed?

Yesterday, I spent some time thinking what is product management? Today, let me put some thought on how to actually manage a product. Much of stream below is residue of discussions I had with Ian and Dave Wilby, and some other things I grasped along the way.

Every iteration in a product delivery starts from inception/feedback and gets exposed with a release. During these stage, a product manager must

  • Inception: Understand the demand (need for a particular system/feature/bug fix) and perform a triage, thereby recognizing business value of demand. A demand can come from various sources (sales engineering, marketing need, from a consultant/user, tech support etc)
  • Analysis: For every accepted demand (business value, irrespective of any estimates of resource consumption), conduct a research on current state of market (competition, similar products, or updates to current product) and evaluate it against business value for the company. If demand is considered large, understanding of target market segment will be important.
  • Specification: using various techniques to interact with users (and developers), specify how system/feature should be used by breaking demand into smaller entities (writing/updating FURPS requirements/user stories). *what is a good user story/requirements*
  • Prioritization: Prioritize requirements according to maturity of specification and value it delivers.

Above 4 steps are considered funnelling activity for a product manager, and ideally product managers should spend at least 40% of their time in above activity (excluding housekeeping like travelling).

Next activity is build activity, and PM should invest minimum required time (less than 10%) in this activity.

  • Implement: in small iterations, get commitment from developers to develop top n mature user stories (sprint planning), supervise the development by having regular interaction with developers (stand ups and sprint reviews).

While is feature is in construction, a product manager has to prepare for its deployment from the very beginning of implementation activity (see above), and gear up all stakeholders. This eats up to 20% of PM activity time.

  • Release planning: Synchronize regularly with stakeholders to keep them updated about development status and delivery expectations. At the same time, it is also a good idea to work regularly on preparing material to highlight features and correct usage scenarios for stakeholders (including sales, support, and consulting apart from interested customers). [Hint: A video presentation of sprint review session will help bridge gap between distant stakeholders and developers]

Almost, as soon as a release goes out to actual users, feedback will start coming in from various channels (most importantly from technical support). It is important to gather all the feedback in a single input funnel and start from the inception cycle all over all.

Monday, January 26, 2009

1. What do I mean by managed product

Product Management is all about

Consistency:
  • Enabling regular (iterative) fulfillment of demand (bugs, enhancements without sense of resource or value estimates) from inception to delivery of product
  • Enabling revenue recognition for every release
  • Balancing resource consumption (time, money) and value earned (revenue, customer satisfaction, brand image) by maintaining health of product

Realistically, significant emphasis may be given on revenue generation during first few iterations of delivery. At later stages, customer satisfaction becomes more important (at expense of lower revenue generation per release) to guarantee regular stream of revenue.

Expectation management:

  • weekly: fast triage of demands by users and stakeholders
  • monthly: synchronization of stories selected for upcoming release
  • quarterly: synchronization of product road map for next 6-8 quarters
  • release: communicating known issues