SAFe Product Owner role

Recently our company adopted SAFe agile framework for our BU.  I was asked to take the Product Owner role. Apart from my People Management job,  I have to take care of this role. Some changes I observed:

Before PO role:
————————

  • I was doing coding
  • I was doing code reviews
  • I was participating in Design discussions
  • I was identifying the list of task to do to deliver a component.
  • I was assigning the tasks to the team.
  • I was taking the ownership of some of the tasks depending on the urgency and delivery times.
  • I was mentoring the team members on technology and career related areas.
  • I was spending time with team to debug the issue. I enjoyed it the most. This was my core competency.
  • I was managing people (I have five people reporting to me)

With PO role:
——————–

  • Understand the PM User stories and discuss with System Architect.
  •  I am identifying the User Stories for the scrum team.
  •  I am writing a clearly defined Acceptance Criteria (This is the timing consuming task, This is the key for product success.). This is the critical job.
  •  I am discussing with team on defined User stories and split them into small user stories.
  •  I am answering team’s question related to the User story. (Mainly the “What” part, Some “How” part as well). I need to know the How part in some user stories, For example, the communication between two components. I should not care about HTTP/GRPC/S3. If team chooses a User story to go with a S3, I need to have domain knowledge to address the AC.
  • I am attending the Ceremonies, Backlog grooming, Sprint Planning, Design discussions, Sprint Reviews.

I see there is need for seperate PM and PO roles. Some of the task sharing between these two roles are:

 

Role Responsibility
Product manager Tracks the overall market and competitive dynamics.
Product manager Manages the long term roadmap, involving sales, marketing, implementations, clients, prospects, partners, and other groups. The ideas are expressed as epics.
Product manager Attends iteration demos and some stand-ups.
Product manager Supports other non-technical organizations (such as sales, marketing, and channel).
Product owner Leads requirements gathering effort on the epics as needed — consulting with product management, implementations, clients, and other stakeholders.
Product owner Documents story details based on the epics and after review with development.
Product owner Attends scrum meetings including standups, retrospectives, and demos.
Product owner Leads backlog grooming to decompose/estimate stories.
Product owner Creates mockups and works with UX on design.
Product owner Answer questions from developers, clarifies requirements, etc.
Product owner Documents the new feature for implementations and release notes.
Both Write acceptance criteria.
Both Demonstrate latest iteration to customers (pre-release) and gathers feedback.

 

 

Advertisements

POC vs Product

POC

  • Focus is on functionality, Algorithms, data structures.  no need to handle all error cases.
  • Proving performance
  • Need reliability to the extent of not having too many issues/bugs while doing performance tests/ basic functionality tests.
  • Test coverage is limited to End to End testing.
  • No need for unit testing for every function/class.
  • No integration with management layer (UI)
  • Have automation to reduce the setup related tasks. (use Ansible playbooks/ shell scripts/ python scripts)
  • Have clear document on what functionality is skipped and what needs to be taken care in the productization phase. ( requirements, features and functionality)

Productization

  • All error handling.
  • Log messages, and log file management
  • Stats to get insights into the product layers.  (need for debugging purpose)
  • Stats to customer
  • Management (Tools or UI) layer integration.
  • Class/Function level unit testing.
  • Sub component level testing.  Make sure there are no race conditions and memory leaks.
  • Integration testing (End to End testing)
  • Performance related tests. Stress and Load testing.
  • All possible functionality related testing at each level. Both Positive and Negative tests. Ask developers to get the infrastructure to induce errors.
  • Tools/Utilities to manage and monitor the product.
  • Call Home feature, where events are sent from customer machine to the  Servicing company.
  • Notifying users on specific events like failures/warnings.
  • Testing on real Hardware.