Product management is an important organizational role
typically in a software company. It is similar in concept to a
brand manager at a consumer packed goods company. The product
manager is often considered the CEO of the product and is
responsible for the strategy, roadmap, and feature definition
for that product or product line. The position may also include
marketing, forecasting, and profit and loss (P&L)
responsibilities. The product manager often uses tools to analyze market and
competitive conditions and lays out a product vision that is
differentiated and delivers unique value based on customer demands.
The role of product management spans many activities from strategic
to tactical and at its best provides cross-functional leadership —
bridging gaps within the company between different functions, most
notably between engineering-oriented teams, sales and marketing,
and support.
Roadmapping is the exercise of building a product roadmap.
And a product roadmap is a plan that matches short-term and long-term
business goals with specific technology solutions to help meet those
goals. Roadmaps can apply to new products or services or existing
offerings. Product managers typically lead the roadmapping process
but seek cross-functional input from engineering, sales, marketing
and the executive team to ensure that the plan will deliver against
the higher level business objectives. Developing a roadmap has four
major uses. It drives organizational consensus and support for where
the product is headed; it provides a mechanism to determine what
level of development investment is needed to deliver the features and
functionality specified in the roadmap; it provides a framework
for the entire organization to plan for the future of the product,
and it offers a low cost and low risk way for the organization to
capture customer and market feedback on where the product is headed.
Requirements management is the process of collecting,
analyzing, refining, and prioritizing product requirements and then
planning for their delivery. The purpose of requirements management
is to ensure that the organization validates and meets the needs of
its customers and external and internal stakeholders. A requirement
is a defined capability to which the results of certain work (in
this case software development) should meet. It is a continuous
process throughout the lifecycle of a product and requirements
can be generated by many stakeholders including: customers,
partners, sales, support, management, engineering, operations,
and of course product management. When requirements are being
properly curated and managed using software tools there is consistent
communication between the product team and engineering members
and any needed changes are broadly shared with all stakeholders.
Agile software development is a collection of software
development methodologies that all share the same philosophy.
Scrum is the best known method and they are all based on an
iterative process where features and requirements (or epics and
user stories) evolve through collaboration between cross-functional
teams and customers. Agile promotes adaptive planning, evolutionary
development and delivery, and a time-boxed period of time to complete
a body of work. Software development is dynamic by nature and agile
encourages rapid and flexible response to change. Because it eschews
adaptability as central to its conceptual framework — teams
using this approach are well-equipped to respond to changes
throughout the development cycle. Agile is in contrast to
predictive development systems (e.g. Waterfall). Predictive
methods focus on analyzing and planning the future in detail
and attempting to handle all known risks up front. Predictive
methods rely on exhaustive early phase analysis and focus on
completing one phase of the development process at a time (e.g.
development must be complete before QA begins). With predictive
methods, if conditions change, the project may have difficulty
altering its course.
Scrum is the best known and most widely used agile software
development framework. It is used for managing software projects
and product or application development. Its focus is on a adaptive
product development strategy where a cross-functional team works as
a unit to reach a common goal within a specified period of time
(typically one to four weeks). A key principle of Scrum is its
recognition that during a project, product managers and customers
may change their minds about what they want and need, and that
unpredicted technical challenges cannot always be seen at the
beginning of a development cycle. For this reason, Scrum promotes
a flexible approach and rapid iteration to contend with unforeseen
challenges.