3 Fundamentals of Software Product Development

3 Fundamentals of Software Product Development

Whether you are a product manager, software engineer, or engineering manager, you will inevitably find yourself starting from scratch on a development project at several points. Sometimes that stage can be confusing or overwhelming, which is why we put together a simple three-step framework for planning and rolling out any development project.

Below you’ll find a brief overview of three key fundamentals: budgeting, skateboarding, and tools/services.

Budgeting

One of the core functions of product management is budgeting, both in time and dollars. Time is money, and it becomes very important when you’re working through sprints and determining a product roadmap.

Budgeting for payroll is easier to do when team members are in-house but gets more difficult with external freelancers and contractors who bill by the hour. When it comes to budgeting these resources, one guideline we use is the 2x Rule: an individual’s annual salary (in thousands) is roughly 2x their hourly rate. For example, if you are working with a contractor that is $75/hour, you can multiply that by 2x and quickly know that that is a ~$150k salary. It’s a nice quick math trick product managers can use when budgeting out a project.

Another budgeting guideline we use is the 10x rule of software development. The concept is simple: each new phase of software development (design, development, etc) multiplies the cost by 10x the prior phase. For example, code cost 10x what design cost. Design cost 10x what wireframes/ideas cost. There are certainly exceptions to the rule, but in general, it’s helpful for triangulating into a quick overall budget for a development project.

Skateboarding

Another core fundamental is the concept of skateboarding, which was first popularized by product managers at Spotify. Skateboarding refers to the process of skipping past unnecessary or future features and working on what matters most first. Building Uber? Make it easy for a passenger to open their phone, press a button, get a ride. Airbnb? Open the app, get a room.

To get from point A to point B, you often don’t need to build a car. Rather, you begin with a skateboard and figure out what you’ll need once you can see around the corner.

It’s easy to get lost in long-term specifications, but planning too long-term is riskier than it may seem. Building in small, contained cycles lets the product team learn from what they build first, and keep building on top of that.

Tools & Services

Having a focused toolkit is critical for an effective software engineer or product manager. The overwhelming abundance of product development tools and services today make it easy to get lost on what you should be using. While there is no prescriptive formula, keep in mind that what works best for you and your team is what you should be using. Nothing more.

There are many tradeoffs between common tools, from idea/design stages (eg: Balsamiq, Sketch, Zeplin) to backend/database development (eg: IDEs, Heroku, AWS, Postgres, Mongo, FireBase). If you’re feeling overwhelmed by how many new tools are out there, we dive into some of the most popular software development tools to highlight how we think about it in our projects.