Introduction


As a software engineer I spend a lot of my time learning and improving my technical skills. Working at a startup that is focused a lot on feature delivery I don’t have a lot of time to improve my non-technical skills in a structured way. Product development has always been intriguing to me. In product development there is an ongoing challenge of trying to understand the human element. Learning more about product development will give me insights into how feature requirements are truly tied back to users and their problems. A well rounded engineer should understand their end-user’s problems and be able to build the proper solution for them.

I approach learning about product development with the same methodology I use to learn a new technology: Research the field, learn about the best practices, find a few implementation examples, apply my problem, and build something. This will be part of a multipart series going through the product development of an application I am working on for a side project.

Background


My hobby is golf. I try to play as often as possible and I am constantly reading articles and watching videos about golfing techniques, golf course architecture, and golf tournaments. I would rate my interest level in golf as a healthy obsession to say the least.

One of my weekend rituals is to play golf with a large group of 6-12 people. The way we keep it interesting for the whole group is we play a game called skins. This is how we play:

Every player buys-in a predetermined amount to make a “pot” or prize pool. Each hole is considered a point or “skin”. The way a player can win a point is they must have the lowest net score on the hole with no ties among the each player in the game. Net score is your true score (gross score) on the hole that is adjusted per the player’s handicap. Each hole a player wins corresponds to a portion of the prize pool. The more holes (skins) you win the more of the prize pool you get.

At the end of everyone's round we all compare scorecards to determine what player won which hole. Going through every player’s score on each hole and adjusting their gross score with their handicap to determine a tie or win for the lowest scores. It gets everyone involved in the game and keeps you interested in other player’s scores, not just yours. This game is great but I’ve always wondered if there was a better way to do this. Let's explore.

Product Discovery Part 1


During my research I learned about the continuous product discovery lifecycle. It really resonated with me on how it connected with agile software development principles of continuous iteration and delivery. It gave me a broader understanding of how a product should be crafted to solve a user’s problem in a more methodical approach. This is what I think each step of product discovery means:

  • Product Alignment - Buy in from all levels of the desired outcome of the product, not the solution to the problem
  • Research - Define and explore the problem space, truly understand the user’s problems
  • Solution Iteration - focus on the solution to your well defined problem, best to come up with multiple solutions
  • Developing Prototypes - Prototype potential solutions to gather feedback early, even just a shell of desired outcome will suffice
  • Validation - Using your solutioned prototypes confirm your hypotheses on a small scale before you start development
  • Refine - Putting together the results from each stage of product discovery to start the delivery stage


A common pitfall is not spending enough time on alignment and research and spending too much time on the solution. Many times teams work backwards starting with solutions and trying to fit them to problems, this is something I have experienced myself. Without truly understanding your user’s problems you will waste a lot of time building a product that never satisfies your users. If the whole team (C-suite, engineering, sales, etc) is aligned and involved in the early steps of product discovery the team will be more confident in the end solution and help accelerate delivery.

For part one of the series I will be focusing my efforts on the first step of product alignment.

Product Alignment


Another name could be problem alignment rather than product alignment. The team's alignment is critically important to moving forward in product discovery. It gives everyone confidence that the product is moving in the right direction. This saves a lot of time from convincing stakeholders of the desired outcome later in the life cycle or during delivery stages. Calling out the high level problems we want to solve is the first step, then aligning the stakeholders.

For the skins game these are main problems:

  • Scores have to be calculated after the round is over by hand between multiple playing groups. This takes too long, is tedious, and error prone.
  • Net score needs to be calculated on an individual level for each hole, keeping track of everyone's handicap is difficult.
  • Players do not know where they stand in the game as they are playing. It takes away from the experience of the game.
  • Accuracy of scoring is the responsibility of a few people. Mistakes can be made and not caught in time.
  • Paying players at the end of the round is difficult as all the money needs to be collected then paid out to the group while everyone is still present


Most players I have interacted with agree these parts of the game are not great and can be improved. The most frustrating part is the scoring at the end of the round since it is error prone and there is money involved. Most of the frustration arises from not being able to quickly determine who has the lowest net score on a hole when going through 12 or more player scores. The way most groups play includes another rule: A player with a gross low score wins a hole if a player with a net score of the same ties them. Essentially a handicap stroke is applied as a half stroke rather than a full stroke. This rule adds even more complexity to the scoring calculation.

Some players have also brought up not knowing where you stand as you play. Golf is a huge mental game and not knowing where you stand takes away from the added confidence or pressure as you play. You can have what you think is a great score on a hole but then come to find out later that other players tied that score, or vice versa a not so good score won you that hole. Players agree knowing your score is a key piece of information that influences your performance.

An MVP for the product should look to solve these problems by reducing the work and time it takes to score the game, while making it more accurate. With future iterations focused on scoring information mid-round and player payments. In this case the stakeholders are a few golfing friends and I, but we are all aligned on the current problems in the game we play.


Sources & Resources