What I’m Reading: What business leaders need to know about software development
One of the main reasons I got into Product Management is that “I speak dev”. I have enough computer science background to grasp the concepts and more importantly, I inherently understand developer culture. I realized very early on in life that there are a lot of people that are totally mystified by engineers and therefore there is a huge communication gulf that develops between the two worlds. Providing this translation as one of the core competencies & functions of the Product Manager. And now, as the world progresses, every company becomes a ‘tech company’ and every business leader needs to understand more about software development so this skill is increasingly needed.
The first key principle I want EVERY manager to understand is that adding 3x more developers to a product will NOT increase productivity 3x. Maybe you will laugh thinking that’s so obvious now, yet I still routinely see managers thinking that “adding more developers” to a project that is at risk of running behind schedule will guarantee on-time delivery. *facepalm* This is called the ‘pregnant woman’ mistake because:
“Just because one woman can have a baby in nine months does not mean that nine women can have a baby in one month”
Fred Brooks
But that’s enough from me. Below are a few articles with a quick “What you will learn” guide that I think are helpful for business people who fundamentally don’t ‘get’ software development. It’s basically a nice “Here let me Google that for you” that I recently had to do for my management. Saving it here for future use and in case anyone else wants some copy/paste resources to send to business folks who ‘just don’t get it’.
Most business people I know, treat McKinsey with hero worhsip. So if you really want to convince them you need a CI/CD pipline, don’t just let them take your word for it. Once they read that McKinsey says all world-class companies excel because they have API based architecture and DevOps they’ll be knocking on your door insisting that “we need DevOps & TDD!” (and hey, they may even know what TDD stands for!). This article nicely explains the 15 key practices across the five stages that define a successful software-development life cycle:
- Setup decisions (Cloud, platform choice, microservices/container architecture)
- Product Management practices (PM excellence, human-centric design)
- Product delivery practices (Analytics, A/B Testing, Community Driven Dev)
- Product Development practices (DevOps, test automation & TDD, API based architecture, Productivity and quality)
- Enabling elements (Portfolio management, talent & governance, product security & risk management)
2. A Note to Business Leaders on Software Engineering by Nick Tune on Medium
In this artile you will find:
- The difference between good quality & mediocre quality software and the costs to your business (why producing good code is more complex than you think)
- How to create a culture of high quality code (Purpose, Autonomy, and Mastery. Include engineers in the business and give them freedom to find solutions)
- How to measure software engineering teams (Lines of code, story points, and hours worked are terrible techniques which you should not even consider using as measurements for software engineering teams)
- Costs of outsourcing and whip-cracking vs Trusting In-house teams (High pressure and tight deadlines reduces the quality and ultimate output of code, creates a culture of fear and zero innovation)