I hope that after you read this post you will think about the type of company culture and team mindset you want when faced with your next job / software career and lifestyle choice. I have found that in professional software development projects, teams look at the following key project trade offs when planning and executing a project :
1. Cost ($ amount)
2. Time (calendar days)
3. Quality (stability)
4. Complexity (features)
Cost Bound Software Cultures: Bootstrapped/ freelancer teams think Angel.co stage companies.
First, lets treat the Cost dimension of a software project. One could mistakenly assume that all software companies would have to manage Cost equally, meaning keep it as low as possible. But the reality of boot strapping a project (think most companies listed on Angel list's site) and being in a Venture Backed company thats generating millions in revenue are two significantly different realities. In my experience most boot strapped projects are primarily Cost- Bound, paying only for coding, hosting, design (the bare bones in infrastructure and implementation to pull off a Minimum Viable Product version), VC backed companies may not necessarily belong in this category.
Time Bound Software Cultures: VC backed companies
Now for the readers that are in VC backed environments, see if this seems to be true: VC backed start ups tend to be Time-Bound in my experience. It comes from having a significantly higher overhead of project duration. Since the company is incurring salary costs from sales, marketing, bus dev, ops, and management. Whereas bootstrapped companies usually only pay for engineering and design , and founders or those same engineers and designers to everything else to get the product into market and revenue growing.
Quality Bound Software Cultures: Giant tech companies (tend to be public)
The third type of software companies are primarily quality bound. Immediately Apple, Google (some products), Microsoft (some products) and other tech giants come to mind. These companies and teams have built their billion dollar empires on a mantra of releasing only the best quality code and products possible. Anything short of perfect is unacceptable (ok ok i am mainly referring to apple here, but you get the picture of giant tech companies being able to bank roll / support perfectionist activities of designers and product managers)
Complexity Bound Software Cultures :(all software companies have to effectively manage)
The last and 4th dimensions of a software project , Complexity, or the feature requirements the team is tasked with. I believe this is where a product person is supposed to add the most value. An effective product manager is responsible for achieving the following two key things on behalf of the team:
1. Defining a feature set that insures Product / Market fit (see Marc Andreesen's post on Product/Market Fit to have the same definition).
2. Plotting an execution sequence / prioritization path that insures that the above mentioned project dimension , Complexity , is as minimal as possible.