The largest hotel chain in the world (Airbnb) has no hotels, and the largest taxi company in the world (Uber) has no taxis. How did this come about? How did these and other so-called “gig economy” companies impose massive disruption on billion-dollar industries in such a short time?
Part of the answer, of course, involves their novel business strategies. But also at play are the apps that drive these gig-economy companies. Uber, Airbnb and the like would be nothing without well-designed apps that deliver an excellent user experience.
In this regard, there is a lot that developers can learn from the gig economy. Traditionally, programmers haven’t spent much time thinking about how to develop the type of app that powers a company like Uber. But as the gig economy grows more and more important, that will likely change.
Toward that end, let’s take a look at what developers should be thinking about if they’re building a gig-economy app. The lessons below apply whether you’re creating such an app from scratch, or improving one that already exists (and yes, while gig-economy apps like the ones I’ve mentioned above may be great, there is always room for improvement).
Scaling the stack
To be competitive and relevant in today’s gig economy market, where customer expectations are basically going through the roof, scalability is key. It doesn’t matter whether there is just one user on your app or 100,000 — They all expect your app to perform like Netflix. Accounting for spikes in usage is an important part of scaling and you need to be ready to handle the traffic before you start advertising or giving out discounts. The key here is to scale horizontally and automate the process of adding and removing containers or virtual machines based on demand.
Automated scaling isn’t just about adding more nodes based on a preset threshold. It’s also about automatically rebalancing the workload among the servers and hosting virtual machines in multiple regions. Load balancers monitor nodes and distribute traffic efficiently among them so no one node takes on too much work. However, this process must be repeated every time there’s a significant change in workload, or some servers may be overworked while others just waste away. That’s why it’s a good idea to automate the process with a tool like Elastic Load Balancer from AWS or Cloud Load Balancer from Google.
Location and architecture
Location is important, too, and multi-region hosting offers much better latency for end users. This is because apps deployed across multiple regions can not only serve users from more data centers, but also from data centers that are in closer proximity to them. It’s good to not have all your eggs in one basket, especially in case of a DDoS attack. Multi-region hosting is critical with regards to disaster management, as it not only keeps your data safe, but also allows for a backup cloud to pick up the load if one cloud service is attacked or compromised.
Scaling out is different from scaling up, and it’s where you add more nodes as opposed to upgrading them. Without the proper application architecture, however, scaling out can lead to a drop in performance as the nodes struggle to communicate with each other. This is especially true for microservice architecture where services communicate with each other in more ways than we ever thought possible. A microservice service mesh like Istio facilitates this inter-service communication by acting as a communication layer for your services. Istio provides a way for developers to seamlessly connect, manage and secure networks of different microservices, regardless of platform.
Simplicity and security
Local services apps like TaskRabbit, Handy, and Thumbtack have numerous service options like plumbing, moving and packing, home improvement, and more. The secret to managing this complexity, however, is to keep it all as simple and organized as possible. The more complex your application, the harder it is to scale, so the secret lies in masking all that complexity behind an extremely well thought-out and simple user interface. It’s also important to keep app size down to a minimum. A smaller app not only makes your life as a developer easier, it also takes into account the limited storage capabilities of most mobile phone users.
Online payments are a great way to make the app experience convenient, and more payment options mean a higher conversion rate. Where there’s money involved, the risks of a breach are always higher, so be proactive about security. Encourage users to change passwords frequently, especially when there are digital wallets linked to your app. You also need to be quick to disclose when a data breach happens and keep all user data encrypted to the maximum level.
Cloud vendors follow the model of shared responsibility where they are responsible for the security “of” their cloud platform, but you are responsible for security “in” their cloud. Key management services that can encrypt data at various levels both in transit and at rest can give you more control over data access and better security.
Lastly, future-proof your app to take into account your industry and the technology you are currently using. Your app will never stop needing enhancements, so don’t get comfortable, or you’ll be a sitting duck for the next startup thinking about “disruption.”
Software is eating the world, and the gig economy is no exception. While the innovative business models of gig-economy companies may be part of the reason for these companies’ success, the apps that gig-economy companies build are also key — and can be the deciding factor between a successful gig-economy company and a failure. Winning in the gig economy requires an app designed for scalability, security, performance and future-proofing by following the tips outlined above.