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.

Concepts in SPM (Agile Software Development)

In any project, there are parameters for measuring success:

  • on-time delivery
  • completion of project within budget
  • delivery of complete features or requirements

In software product management, it is the same. However, there are added items:

  • The number of post-release bugs
  • The technical support needed after a software release
  • The software product’s customer rating
  • The revenue generated
  • The client’s satisfaction

It is basically a lot, huh? Well, a software product manager will help identify the product and project success by checking the above parameters for and make sure that the development efforts are directed towards the delivery of a quality product.

Agile Software Development

Agile, from the definition of Miriam-Webster dictionary, is having a quick resourceful and adaptable character. So when we say agile software development, it is the set of software development principles created for effective and adaptive software development where it prioritizes 4 core values:

  • Individuals and interactions
  • Working software
  • Customer collaboration
  • Response to change

Below are the 12 Agile principles from the http://www.agilemanifesto.org, with infographics designed by the University of Alberta for the Coursera Course: Introduction to Software Product Management:

Intro to Software Product Management

Pardon me if I am now using my blog as my online notes, but I am now on a learning journey! I have realized a lot this 2020, in terms of career, lovelife (that’s for another blog post ;-)) and finances. Now, I am taking one step at a time to improve myself, and the series of blogs I am writing are records of my learning journey. So if you are okay with learning more about my world, feel free to read and follow. 🙂

See the source image
screenshot about product management from https://geobrava.wordpress.com/

To start, what is software product management? Well, for one, software product management is different from project management. Though there are common features for both; however, the difference lies on the application. Project management is a broad field that can be applied in any development scenario (like preparing for a wedding, building a house, etc) whereas software product management describes practices for project management but particularly aimed for creating software products.

To achieve a better software, just like in learning, you must have a goal to accomplish. In software product management, there are three goals, particular for each member of the team:

  • Client – the goal of the client is to make sure that the software product meets their needs and solves their problem. If a client is happy with the product, the software is validated.
  • Developer – the goal of the developer is to make sure that the software they are developing are done right — meaning the design and the implementation frontend and backend satisfies the needs of the client. Here, the developers conducts reviews and tests to make sure the software is verified.
  • Product Manager – the goal of the product manager is to manage the development process of the software and organize the work of everyone involved. Here, the project manager makes sure there is clear communication, clear objectives and clear feedback so both the developers and the clients are happy.

In short, the goals in software product management are: clients ensures they have the right product, the developers verifies they have done the right product, and the product manager confirms that the requirements and process for both are managed right.

So, the role of the software product manager is important in any software development (which is basically what I do for a new project). A software product manager is in charge of the success of a software product. This role involves understanding the product from the client’s point of view and requires effective communication and motivation of the development team members.

So, am I ready to start learning and taking the Software Product Management Specialization, a Coursera course offered by University of Alberta? Well, yeah, that’s for sure!!

Please bear with me as I post more and more blogs on my learning journey, but if you are also interested in this field, feel free to read and follow. 🙂