Like you, I’ve heard it all.
“The backend has errors and they can’t fix it fast enough.”
“The server is programmed in XXXX and there aren’t many people who know how to work on it.”
“Adding all those features will take a lot of time and effort, so we’ll need extra funding.”
I’ve worked as an independent, international, remote Tech Consultant for startups, for my whole career, counting 15 years now, and during that time we’ve made a lot of progress on the process of building a software product for the mass market. Years ago, you had to do everything by yourself, but now this is hardly necessary, and the people who stick to the view of getting everything done in-house are honestly wasting money.
Let’s review a basic premise: A startup IS a business, en entity that intends to solve its clients problems, in exchange for money, and whose managers believe they can accomplish this for a cost below that which they are charging. Right? Is this correct?
So, unless your startup is in the business of inventing new technology, actually inventing new technology is a waste of your resources, at least when you’re starting out. Maybe when you reach Apple-like cash-flow level, you can open your own R&D department and invent away to your heart’s content, but right now, your first priority in life is to get your product out the door as soon as possible, for as little money as possible, and have it work correctly.
Now, the problem is that, your developers, specially young, talented ones, will try to convince you to go with X o Y super magical new system to program this or that feature; well, they do that, because they are programmers, not business managers, ok? They are good at making machines work, but running a company has other considerations besides following glitzy techy trends.
“Running a company has other considerations besides following glitzy techy trends."
So, instead, I’m going to convince you to use Firebase, by Google.
Firebase is a cloud-database/managed backend geared towards startups and mobile apps. And the reasons why I believe is a solid choice for new products are the following:
-
Firestore is not only a nosql database, it’s a complete backend managed system for general purpose development. But, in particular, the nosql db is useful for us, because it allows us to store changing data. A normal RDBMS requires data to be standardized and normalized, whereas Firestore, the Firebase database, allows us to store “documents”, which are unestructured collections of fields. This means that one document can be completely different from the next. For startups, the implication is, that you can have your first customers using feature set A, co-existing in the same data store with your N-th customers using feature set D. As easy as can be.
-
Firebase is free to start, and it’s free up to a very high level, then is quite affordable. Nothing to add here, can’t beat free, and well, they’re running a business too, so at some point they need to make money, right?
-
It’s MANAGED. I cannot stress enough the importance of this. It’s not your problem to secure or maintain the system, as it would be if you’d roll out your own solution. There are always clever, but inexperienced people, who think they can do a better job at securing/encrypting/managing their own solution. No, unless you’re more capable than the Google’s engineers, in which case why don’t you go and get a job there?
-
It auto-scales, meaning, it’s not our problem to plan for capacity, or purchase or roll or sync additional servers, or care for memory or disk. This is all taken care for us. Just this little fact is a huge time and money saver generating benefits over the lifecycle of the product.
-
It’s packed with useful features, like managed authentication with different providers, mobile push notifications, analytics, file storage, and others. Any one of these will reduce the development costs significantly, and will make it a lot easier to prevent errors and fixing them when they are found. Not only because the Firebase programming model is accesible, but also, because there is talent out there that we can engage to produce an app with this system.
-
It has clients for web, and mobile, so we can develop the user interface we need and share the same backend.
At the end of the day, a startup’s purpose is to serve its clients needs as efficiently as possible, and I think it’s a commonly shared misconception that succesful startups need to have/use the latest and greatest tech trend. No, we don’t. We need to have solid operational processes like every other business in town, and we need to be able to execute those processes at a profit.
Firebase contributes to the company’s profitability by:
- Reducing errors.
- Reducing uncertainty.
- Standardizing development initiatives.
- Outsourcing infrastructure to experts (i.e. Google).
- Giving us flexibility to accommodate design changes, and
- Incrementing programmer productivity with ready-made functionality.
“We need to have solid operational processes like every other business in town, and we need to be able to execute those processes at a profit."
Now, I know what you’re thinking. It sounds too good to be true. There must be a downside! And well, you are right, there are. I don’t think they are deal breakers, though you be the judge:
-
Web apps can be perceived to be a bit slow when using cloud functions to obtain data. That’s because, in principle, Firebase hosting serves essentially static websites, so you feel the initial page load to be very fast, but then client side javascript needs to call Firebase functions to actually load the page’s data, and that can feel a bit slow. The client side Firebase SDK does have caching, but it comes at the cost of exposing more of your internal structure to the world.
-
To enable various “advanced” functions like crashalytics and A/B Testing, you need to enroll in Google’s data analytics. This may be an issue for some projects, though most will be fine.
-
You need to add a credit card to enable various things, even if you don’t actually have to pay anything.
So, there you go, my list of pros and cons, and why I still think is a great choice for startups.
Are you convinced, yet? Take a look at their website: Google Firebase
Are you interested in learning more about this technology or explore how could it be applied to your particular needs? Please send us a message using the form below, for a no-commitment, exploratory talk about your problem.