Intentionally Building Your Product Stack
This post was originally shared on April 2, 2024 on Medium. I'm experimenting with Substack, and figured a good start would be to migrate my earlier content here.
On software teams, there is often a lot of energy involved early on in setting up your technology stack. You choose programming languages, frameworks, platforms, and even specific productivity tools to support both the product you plan to build and your team.
Why bother with tools for product management?
In discussing helpful tools for product management, there is occasionally resistance from product managers to even classify this as something worthy of consideration. As a founder or PM responsible for both a product and team, you might prefer to prioritize your teammates’ requests over your own ideas. In this case, you might defer to developers and designers on what their ideal tools are, or just agree to whatever project management tool your CTO or Engineering Manager suggests. While this is often well-intended, the result can be a mismatch between the tools chosen by individuals and the product management processes that best serve the team, speeding you all up and providing sufficient support.
Maybe you leverage a service like Superhuman to be faster on email (I certainly do), but the thought of trying to add tools to your workflow to make product management or product-related responsibilities such as quality assurance and testing more productive seems counterintuitive.
What happens to the product stack when AI is more widely used to build software?
In a future where software developers and other team members are increasingly adopting AI to increase their productivity and output, building more software products and features faster, Product Managers and product-oriented founders must adapt.
While the desire to be a good collaborator and supportive of the tools requested by your team is a strong and useful urge for founders and Product Managers, you need to also consider how you’re interacting with those tools and your team. Are you able to make decisions efficiently and proactively? Or are you reacting to fire-drills, bugs and breaking changes? The latter might indicate that you either have outgrown your product stack or have not sufficiently invested in it and as a result are stuck in fire-fighting mode.
Leveling up the product stack is critical if product leaders want to be empowered decision-makers, productive contributors, and effective collaborators. Yet when compared to the quality and quantity of tools available to software developers, those targeting the software product life cycle are lacking.
Today, the majority of tools I am aware of seem to focus on project management, data analysis, user research, experimentation, communication, and manual testing.
How do you start to build your product stack?
Today, building your product stack should directly relate to your skills, your team’s needs, and your product and scale.
When you are pre-product or working on your first pre-product-market fit product and a small team with a couple of developers at most, Google Documents and Sheets or a GitHub tasklist is likely sufficient for prioritization and task management. You likely are testing changes in production, which is reasonable when you have no users, speed is of the essence, and there is a low likelihood of changes colliding as different developers push changes to production.
In the early stages, resist the temptation to add process or tooling prematurely. Leverage lightweight techniques and processes, primarily stand up meetings, designs in Figma, and lightweight to do list tracking, to make sure the team is on the same page around priorities and what needs to get done.
Once you’ve grown the product to something slightly more complex, have external users, and grown the team to more than a couple of contributors, maybe you’re now in your project management era. As long as you’re prepared for the overhead of making sure your projects, stories, and tasks stay updated, this is a great time to adopt a tool like Linear or Asana to help everyone understand priorities and track progress.
Update your product stack as needed
You will likely add and drop processes as requirements change, systems break, and graduate from one approach or task management tool to another to accommodate your growing product and team. Leaning on communication supplements project management tooling, and relying on regular cadences for check-ins on your product can help.
Our team, which is remote and distributed, uses two meeting formats: lightning-fast daily stand ups that are followed by a more free-form forum immediately afterwards for topics requiring a deeper dive, and weekly retrospectives. As asynchronous communication in a tool like Slack or Discord increases along with your workstreams, messaging will become harder to follow as channels proliferate so using threads or having a system for managing communication to help team members understand as they come online where to start and what to focus on is essential.
As you start to feel your product stack breaking, either because the team, user base, and/or your product have grown, look for solutions to address specific pain points. For example, if you are spending a lot of time in stand ups discussing priorities and it is no longer a quick meeting, consider adding tooling or rotating the meeting host and empowering them to manage the clock. If testing and QA is a struggle, look into tools that enable non-developers to preview and test changes in a staging environment.
Today, this is a little bit of a jigsaw puzzle, but with creativity and ingenuity you can create a product stack that is highly composable and achieves its purpose of flexing with you, your product, and team.
How will the product stack evolve in the future?
For people to make fast, smart product decisions in a future where AI is a potent part of the software development process, the product stack needs to evolve to support more complex projects and dynamic teams.
Project management platforms like Linear are already exploring leveraging AI to improve and expand their product’s capabilities, making it useful for product planning as well as project management.
Developer tools like GitHub’s Copilot are making writing code faster and easier than ever.
However, the part of the product stack that excites me the most is the tooling around in-development work. This is where there is the greatest opportunity both because there is a gap in tools available to product leaders and their teams today, and because in the future this gap will become increasingly painful as teams are able to more efficiently ship, and must then manage, more products and features.
We are working on a new product that compliments existing products for product planning and project management by focusing on improving the experience for all members of software product teams when a feature is in-development.
You can read earlier thoughts about how AI will impact software development, products, and teams in my previous post. I’ll also continue to open-source my observations, ideas, and learning in this ongoing writing experiment.
We’re also conducting a survey to learn about how others are building their product stack: https://bit.ly/2024-software-survey . Don’t be intimidated by its length; all questions are optional so you can skip anything as needed.
If you have feedback, please reach out at nadia [at] ethoswallet [dot] xyz .