The Truth About Software Development (It’s Non-linear And Imperfect)
I’m sitting in my favorite seat at a Lakers game, mowing a pretzel and a paloma, watching Lebron James and Anthony Davis work their magic.
Bill Macdonald and Stu Lantz are bantering back and forth, I just spotted Adele sitting a few rows ahead of me, and we’re winning – life is good.
But then something happens – someone stumbles and twists an ankle, someone gets distracted by Adele and misses the pass. Shit happens.
Then we’re down to the buzzer and it’s up to LeBron to sink that 3 pointer and win this.
And even though LeBron has been playing basketball for 25+ years, even though he’s one of the best players basketball has ever seen, even though he makes the basket MUCH MORE OFTEN than he doesn’t … this time he misses.
Is it a bit disappointing? Yes. Is it also the reality of the game? Also yes.
And I’d like to take this moment to draw a parallel between my beloved Lakers and developing software.
Hard Truth 1: Scaling isn’t just a matter of multiplying your code
Wouldn’t it be cool if the Lakers could clone LeBron and just have 26 LeBrons running around the court? Regrettably for all of us, that’s not possible.
Similarly, it seems like if an app works well for 100 users, it should work equally well for 1,000 people. Shouldn’t it just be a matter of scaling up the lambdas? It’s not.
And often, the only way to discover if an app is truly scalable is to … scale it. We make our best bet, draw on our years of experience, call in our top 1% Master Builders – and sometimes we discover that we need a different approach to solve your use case.
And to be clear, these scaling issues aren’t necessarily because your development team doesn’t know what they’re doing. It might be because your specific product, in your specific market, needs to scale in a different way.
For example, if you’re a medical company,? something may not scale correctly because the HIPAA compliant Medicare API has a rate limiter. So you can’t ingest data as quickly because of how a HIPAA compliant API may behave.
Or another company may have millions of records in a database that need to be scanned through and your development team needs to create a solution to ingest and present data really fast. In either of these cases, your development team might approach these issues the first time using “the usual” approaches – things that work 90% of the time! – only to discover they need to try something new.
Just because “the usual” approach didn’t work doesn’t mean you have a “bad” development team.
Hard Truth 2: Coding isn’t “one and done”
Can you imagine Darvin Ham (RIP) telling Rui Hachimura to practice his hook shot ONE TIME and then being like “Looks good”??!
Of course not.
Starting a software company is a journey; it’s an ongoing process that will require tweaks and changes as your company changes. You will have to get comfortable continuously investing in your code, and growing your code base and feature set in line with discovering and expanding product market fit.
When you bring your MVSP to market, you’ll probably discover that users particularly love a specific feature – so you’ll need new code to expand that feature.
And when you launch the new version after you’ve expanded that feature, you might find hundreds of thousands of new users. And you’ll need new code to scale to meet the needs of all those new users.
And when your app has been on the market for a few years and you get a bit of competition – competition who has a bunch of flashy updates you don’t have – well, you’ll need new code for that, too.
The same way the Lakers are regularly practicing, conditioning, upgrading their gear to stay on top of their game, any successful software company should expect to invest in code in an ongoing way.
Hard Truth 3: Better direction = better results
I’ve used this meme before, but it bears repeating:
Can you imagine a world where LeBron huddled with his teammates and said “Why don’t y’all go score more points than the other team” and then that half-assed instruction resulted in a win?
Of course not.
领英推荐
The same thing goes for software development. Clear direction helps us make a roadmap to your goals in the most direct route possible.
Bad direction: “Can you make the font more … Gen Z-y?”
Good direction: “Could you switch screens 2 and 3? We’d like to swap in Montserrat for the headline font on all the screens and make the green a bit darker. We like hex code #135127.”?
We’ve worked with hundreds of clients and we’ll do our best to tell you when we need clearer direction and show you how to give it to us. That said, direction is ultimately up to you.
Hard Truth 4: A “Bad” Development Team Isn’t What You Think It Is
It’s easy to believe that a “bad” development team is one that doesn’t get the design direction 100% perfect on the first draft or misses a bug. Lots of people think that if a development team doesn’t deliver 100% of the project and all of the bells and whistles by the first deadline, they’re a “bad” development team.
Here’s the truth:
What a bad development team REALLY looks like…
Things will get missed – a typo in the copy, a bug deep on screen 7, or font that looks weird on mobile. This is simply the nature of the business.
Hard truth 5: Tech entrepreneurship is difficult and expensive
The average cost of developing an app is $170,000. 75% of venture-backed startups fail. I don’t share these statistics to dissuade anyone from entering the world of entrepreneurship. I share them because I want us all to be patient with ourselves when the going gets tough.
(It’s also true that only 16% of NBA players ever get a championship ring, but that doesn’t dissuade anyone from trying to play for the NBA, right?)?
The reason that startup founders can make a lot of money is because they’re taking enormous risks – financially and emotionally. When you’re working with the right team, they’ll do everything in their power to help you mitigate that risk but they can’t change the fact that entrepreneurship is inheritably risky.
Hard truth 6: Your mindset is just as important as how many investors you have
Cultivating a collaborative, solutions-oriented mindset is one of the healthiest things you can do when you’re launching something in the tech space.
Rather than getting frustrated when you encounter the inevitable bumps in the road of launching something that’s – quite literally – never existed before, have patience and know that this is part of the process. For everyone. Every app that’s currently on your phone went through this.
Rather than getting blame-y about the bugs, tweeks, or edits, focus on solving the solution alongside your team of experts. You will find a solution faster and it will be a more pleasant process for everyone involved.
If Anthony Davis misses a pass, LeBron isn’t going to get in his head and let it ruin the game. He’s going to huddle up, recommit, and get back to it.
Hard truth 7: This gets easier with each company + it might take you a few times to get it right
Jeff Bezos had an online auction site called zShops before he launched Amazon. Reid Hoffman founded a company called SocialNet before he launched LinkedIn. Evan Williams, co-founder of Twitter, had a podcasting platform called Odeo that failed.?
There’s a reason that multi-time entrepreneurs are often more successful in their second and third businesses, and more successful, faster. They know how to navigate those waters that they’ve already learned from their past experiences.
And investors know this! When an investor meets an entrepreneur who’s exited three companies, they’re much more likely to invest. They know that entrepreneur won’t repeat newbie mistakes and cost them millions.?
Honestly, this is the article I wish someone had sent me as a bright-eyed, bushy-tailed 20-something, throwing myself into the world of tech entrepreneurship.
If you know someone who’s interested in launching their very first app – please consider forwarding this to them and take a look at the way we do MV(S)P’s differently with the Neutech Wave. You could save them so much stress and time! And if you’re ready to get your app developed, we’d love to help! You can grab a spot on my calendar here.