Foundational Concepts of SPM

I am knowing more about software product management through the specialization Coursera course I am taking: Software Product Management taught by instructors from University of Alberta.

Previously, my notes covered about what is software product management (SPM) and Agile development. Today, I will be sharing my notes for the foundational concepts I learned:

In SPM, there are 4 core topics an SPM professional should take into heart:

  • Process
  • Requirements
  • Planning
  • Monitoring

PROCESS

In SPM, process is a good foundation to apply the Agile development principle. Basically, a process organizes the work of people into distinct phases or stages to develop a software product.

For example, in preparing a pizza, the phases include planning, preparation, assembly and cooking. In each phase, work tasks can be assigned accordingly with a timeframe so the one who prepares the pizza will easily deliver and the customer, who is waiting for their order, will have an idea of what is in their pizza and how long they will have to wait for it. Similar with SPM, a process organizes the work tasks into distinct phases so a software product manager can easily manage the whole project.

In SPM, the phases of software development process are:

  1. Specification – This is the part where the client and the software product manager drills down the client needs into the product specification, and what the product will do.
  2. Design and Implementation – this is where the developers and designers will actually check and put into codes the product specification.
  3. Verification and Validation – after all he coding and developing, this is where we make sure the client is satisfied with the initial product (hence, validated) and the developers check if each code is tested and the product is done right (hence, verified). This is achieved by rounds of client inputs and demo, and testing on the part of development team.

Now, let’s say when you have an idea for the product, you went straight to developing instead of first writing down and planning how you will work it out, what items to include, how you will test. What do you think will happen? It’s like sitting at a keyboard and expecting a great novel to come out while you type. As a writer, I know it’s not gonna happen.

In SPM, this type of just getting it out there and doing it is called Ad hoc development. Ad hoc development is working on a product without applying all the agile development core values and principles; hence, wasting time, money and resources.

Having a well-defined software process enables everyone on the team to know what to expect and what responsibilities each one have; just like in any other project.

REQUIREMENTS

Specifying the requirements for a product allows the development team to be focused and efficient. This is making sure that the development team will be able to create the features according not only to the needs of the client, but also to the user. As what Bradley Poulette mentioned in his video for requirements, avoiding confusion is incredibly important in software development. It starts with knowing how to get clear requirements from clients, and refining these further to detect any potential errors in the product before it is being built.

PLANNING

In planning, it involves using processes and requirements to start organizing the tasks and schedules. This is where the software product manager and development team identifies who should do particular tasks and estimates how long each work will take. Estimates make sure that the team will also not over commit to the client.

Also, another part of planning is risk management. Examples of risks encountered are missing deadline/budget, software release bugs, development of team responsibilities, unforeseen events like team member quits, or the technology crashes. In all these risks, proper planning is ensuring these risks are managed and solutions created ahead of time.

As Alan Lakein says, “Planning is bringing the future into the present so that you can do something about it now.” True enough, effective planning makes any project successful.

MONITORING

Lastly, monitoring is important in managing software product development. While your development team is working on their own tasks, as a software product manager, you are to ensure that the development is on track, the budget is met, and the team’s environment is productive and efficient. Let’s say the development is ongoing, then no monitoring is being done. The next thing you know, the deadline is near and the team is cramming to make things work, only to sacrifice the quality of the product. So, definitely, we don’t want that to happen.

In monitoring, the development team and the product manager works together to monitor their progress in the project by each member being transparent with their progress, and each one of the team knows the project status. So in monitoring the progress of the each member in the team, it helps the whole project adapt to changes, meet deadlines and deliver the product required.

So, overall, understanding and applying these 4 foundational concepts in software product management will eventually ensure that the development of the product is on the right track.

Reference:

University of Alberta (2020). Introduction to Software Product Management. Coursera Course under the Software Product Management Specialization. Taken November 2020.

Patzelt, M. (2020). Why Process. [Video]. Embedded under the Week 2 course study of Introduction to Sofware Product Management. Taken November 2020.

Patzelt, M. (2020). Why Requirements. [Video]. Embedded under the Week 2 course study of Introduction to Sofware Product Management. Taken November 2020.

Patzelt, M. (2020). Why Planning. [Video]. Embedded under the Week 2 course study of Introduction to Sofware Product Management. Taken November 2020.

Patzelt, M. (2020). Why Monitoring. [Video]. Embedded under the Week 2 course study of Introduction to Sofware Product Management. Taken November 2020.