Let’s face it, at one point everybody has thought they have a killer new app idea, and that it’s going to be the next big thing. Unfortunately, they don’t take into account how difficult it is to develop a new software platform and then market it. Most non-technical people who are familiar with business, finance, marketing, and other fields have never encountered a situation where they had to build a technological marvel out of thin air. That’s why I typically explain technology development using analogies about houses or cars, and in most cases the persons’ most recent or current job.
You can build a mud hut, wooden house, or big mansion.
In development, you can hire a junior, intermediate, or expert programmer. With houses, you can find someone to build you a simple mud hut, a bigger wooden house, or an intricately detailed mansion. In order for you to build a custom house, you first need to hire an architect to design a blueprint, and then a construction crew to build a foundation for the house. Then the frame is built, and eventually you build the kitchen, bathrooms, and bedrooms. Of course finally you have to install lighting, plumbing, windows, doors and everything else that goes into the house. You could say the same about a car.
You can buy a cheap car, a Lexus, or a Ferrari.
No matter which car you buy, someone still has to design the car, and tooling for a refresh (new body) can be $200MM or $600MM for a full redesign. Let’s not forget about the engine. Well in the world of development the “body” can be what people see, such as the front-end design, graphical interface, typography, icons, style, and colors. The “frame” could be quite literally a “framework” that you can build on such as Objective C for iPhone, PHP-MySQL or Node.js/MongoDB for web, or cross platform frameworks like Facebooks’ React Native or Microsoft’s’ Xamarin. Lastly, the “engine” could be compared to the main algorithms, functions, database, backend servers, and the overall infrastructure that powers the platform.
While humans have been building houses for millennia, and cars since the mid 1880’s, developing software is a relatively new endeavor. Even when NASA was sending astronauts to space in the 1960s, we were using a very basic programming language, and massive clunky computer systems. Even smart phones are only a decade old.
The Internet created a major paradigm shift that has caused a huge urgency and need for programmers, of which the world is in short supply of. Not only that, but the number of available expert programmers is very low. Most work at the big tech companies in Silicon Valley and other parts of the world. Often times, they are running their own startups.
If you are lucky enough to land one as a CTO (Chief Technical Officer) for your startup, then you were able to avoid 100 mediocre programmers and find that 1 expert.
That number might even be 1,000 to 1.
The good news is, because there are so many programmers worldwide, just as you can hire someone to fix something at your house or fix your car, you can also get someone to build you a simple website. Also, with the invention of WordPress and learning how to use it through YouTube tutorials, anybody can realistically build their own website.
But here is where the disconnect lies.
Building a simple website or a simple mobile app is extremely different from building a highly complicated mobile platform with superior functionality, infrastructure and scalable servers. It’s the difference between heating up a frozen dinner and learning how to cook an entire 7 course dinner that is served in a restaurant with three Michelin stars.
I’ve personally built a minimum of a hundred websites both personally and professionally, along with almost a dozen mobile apps. Through building them all I have had to hire several companies around the world to help me. I can safely say I’ve worked with a minimum of twenty software development companies in at least eight countries. One thing has been made clear to me over the past twenty years building software platforms:
Most software development companies hit a wall when it comes to skillset.
Most non-expert programmers can build the basics of your platform, maybe even the backend, and tie it all together. But they can’t build the difficult pieces your app needs, and they get stuck. Then you have to find someone to help them. Things start to break. Your app doesn’t work properly and you can’t market a broken product. You’ve spent twice the money you originally thought, and it took twice the amount of time you planned for. You are behind schedule, and running out of money fast. To top it off, you don’t even have a good product.
If you are an aspiring singer, who would you rather get to produce your new album: your friend down the street who has a podcast sound studio, or Grammy award winning Jay-Z?
Or who would you rather get to help you learn how to paint: your high school art teacher, or Vincent Van Gogh?
That’s the difference in quality and skill in development as well. You can find a ton of junior, or even intermediate developers, but not that many experts. When building a complicated platform, here are some of the things you may experience with most non-expert outsourced developers:
- They won’t work with you in your timezone.
- Their level of English is basic at best, communication will be tough.
- Certain features don’t work that well, if at all.
- There is no creativity when building your platform (what you ask for is what you get).
- Difficult pieces of your platform take forever to build, if at all.
- There is no sense of “team”, it’s more of a job to them.
- They are probably multitasking other projects and not dedicated to yours.
- They could care less about your business or marketing objectives.
- They might just disappear for a few weeks with excuses when they return.
- Your platform will not be scalable, and will be prone to crashing often.
- You will end up wasting your time and your money.
- You will become frustrated, stressed out, and sad.
- You will be back at square one, and looking for an expert.
The question you should be asking yourself is: How do I avoid this nightmare?
If you are a non-technical entrepreneur, the answer is simple. You find someone who is not only technical, but extremely well versed in running a startup. This person will be your product manager, and potentially your cofounder (usually with the title of COO). If you can find a software development company who knows the ins and outs of a startup AND has the expert level skills you are looking for, then you will be in even better shape. These are some of the things you should be looking for in a software development partner:
- When and if they hit a wall, they break through it quickly.
- They offer functionality suggestions.
- They offer UI (User Interface) and UX (User Experience) suggestions.
- They know which frameworks or codebases would best suit your platform.
- They know their way around backend infrastructure and scalability.
- Your platform will rarely crash, if at all.
- They will be on top of any bugs and fix them immediately.
- They want to know your business and marketing objectives.
- They care about what they are building, and want to be on your “team”.
- They have normally built something similar, which saves you time.
- They are available in the mornings to have a scrum and speak proper English.
- They will use tools you choose (in my case Slack, Trello, Google Drive, video chat).
- They rarely take days off, and if they do, it’s typically not during an important time.
- They don’t give you excuses, and instead they give you solutions to challenges.
There are many other things you get with an expert development company. These are just the highlights. The main thing you want to look for is a team who wants to help you get down to the nuts and bolts of your idea while understanding your target market. They should be helping you make good technology and business decisions, which ultimately affect your UX. Same goes for UI, web and digital assets, and social media. Your marketing and business development objectives should go hand in hand with the technology your team is building.
Finding a capable partner is difficult, but worth it.
Most of the clients I acquired over the years hired me to fix the problems other companies caused. For example, a client once told me they hired an outsourced dev shop on the other side of the world to build an app. For $10,000 they were given a boilerplate mobile app that had barely any features and crashed repeatedly. I then explained what $10,000 would have gotten him if he’d come to me first. I was hired on the spot. I might normally be the product manager / project lead in most cases, but I can’t lead anything without an expert development team.
Now of course partnering with an expert level company will also cost you expert level rates. As the old adage goes, ‘you get what you pay for’. Do you want a mud hut, a wooden house or a mansion? Do you want a cheap car, an SUV, or a luxury sports car? Once you decide on the quality you want (or can afford), then it’s time for you to do the research needed in order to make a decision on who you’re going to hire.
Over the course of 20 years in the world of development, both web and mobile, I am fortunate to have found my software partner. No other company comes close to this brilliant and diverse team of top tier developers. The bullet list I wrote above, of what you should look for in a partner, that is my description of them. Keep in mind, they also admit their shortcomings and work toward improving on them.
To find a company that can build a platform with the highest level of technical difficulty, is akin to having my record produced by Jay-Z, or Van Gogh himself helping me paint a masterpiece. The most impressive part is their ability to do it with such ease and without limitations. I am thrilled to work with them on my platforms now, and in the future. I suggest you do the same to avoid the pitfalls and nightmares described above.
If you need help choosing the right partner, shoot me a message and I’ll be happy to help you navigate the world of development.