When you are an Appreneur, it’s easy to get ahead of yourself. You’re an idea person. A money person. A vision person. You’re looking ahead, anticipating your success, and planning for the next phase. If you are savvy about the industry, you’re thinking about marketing. Promotions. Events. Commercials. Anything and everything you can do to let the public know about your app. You know an app will die on the vine without good marketing, so you’re talking to marketing agencies and preparing a suitably epic rollout plan. You’re looking into popular websites or magazines that might feature your app.
You’re looking at the calendar and you’re thinking about the best time to launch. You see a great opportunity around the middle of year. Your marketing team is talking about synergy. You craft a kick-ass press release and put together a short, pithy video extolling the virtues of your upcoming app. Your promotional team made a great suggestion for a new feature that you were able to work into the press release. You can see all the pieces falling into place. You commit to the date you want, because it’s just too perfect. You just know that if you launch on that date, it will be smooth sailing. All of these are good things and that is exactly where your head should. There’s just one big issue: your app is not done yet. It’s still in development. Maybe it’s even still in the design phase. In your fervor for chasing the perfect release date and rollout plan, you have neglected the most important thing about the whole affair: Will the app be ready for the public? Chances are, you are not a developer. Maybe you’ve dabbled in HTML or maybe you’ve used a wordpress site before, but you likely aren’t a coder by trade. The process of actually making the app doesn’t dominate your thoughts because you’ve hired a development house for that. They are working diligently to bring your vision to life. They are the experts, and you are paying them, so if you say that it has to be done by a certain date then it’s up to them to find a way to get it done. The problem is that software development just doesn’t work that way. People who aren’t coders tend to have a very idealistic view of how software is made. They assume that since computers are involved, it is mostly an easy or automatic process. They equate to something tangible and clearly defined like the manufacturing of physical goods. This assumption could not be more misguided. The truth is that software is much more art than science. The software ecosystem is a haphazard miasma of competing technologies that are constantly updating. It takes enormous human effort to maintain expertise in any aspect of the field and stay ahead of the curve. Any given web page you visit will be a stack of multiple programming languages on top of each other, and each language could easily require a lifetime of study to master. Even in the slightly more controlled environment of mobile design, where developers are typically sticking inside either the Google or Apple sandboxes, there is still enormous overlap with various 3rd Party technologies. I think people tend to view software bugs as evidence that someone screwed up. The common thinking goes that if a programmer is an expert who is doing their job well, there won’t be any bugs. This assumption is also misguided. If you have worked in software, then you know that expertise is the ability to minimize bugs or fix them quickly because it is literally impossible to avoid them all together.
The main reason for this is that no developer works in a vacuum. Every piece of code that one developer writes is in a language that developer did not create, and it relies on hardware the developer has no control over. A perfect piece of code written to precise specifications can still fail when it attempts to interface with other systems or encounters a faulty internet connection. This messy reality comes with an implication that is very challenging for budgets and release dates: Every piece of software, no matter how well designed or how expertly programmed, will contain an unknown number of bugs and those bugs will take an unknown amount of time to resolve. An app can work perfectly in a controlled testing environment and then break the second it goes live without any one person being specifically at fault. In a world where an app is expected to work on a huge variety of mobile devices that each have their own specifications and customized user settings, there can be literally thousands of individual configurations that will affect the app’s performance in ways no one could have anticipated.
(Do you have an idea for an amazing app? EX Squared wants to hear from you!)