Skip to content

How to look at the software from a different angle?

We are counting the time for development

Now back to the back-end. In the classic version, I used ruby on rails. Just because I know how to program on it and know how to make a clear application, and I will be able to assemble it quickly.

An ROR application requires either its own server or hosting, for example, digital ocean (DO) or Heroku. It doesn’t matter, everything is to your taste.

Since the time resource is limited for creating pet projects, it is important to calculate how much time it will take to make such a service:

You need two objects: “City” and “Place/Location” — 30 minutes.

I take out the use of uploaded images separately, since if you just use storage on DO servers, then we will quickly go beyond free access. It’s not worth it, but we’ll do it quickly — 10-15 minutes. If you need to store it in Google or amazon servers, then it will be a little more to do integration with them, we estimate it in 30 minutes.

The layout is a little depressing for me, to correctly throw it with simple views — it will take 10 minutes. But it’s important to me that content managers are comfortable to use, so we need to connect bootstrap or material-UI – we’ll estimate it in 20-30 minutes. I don’t consider a version with a separate front and writing in react at all, because I don’t have enough experience to do everything quickly, and the project is not so cool to invest so many resources in it.

Configuring the API for transmitting data to the mobile app. In version 5 of RAILS gem rails-api became part of the core. Quickly throw a controller on each object, build additional routes for the API — 30-40 minutes.

If you write tests on top of objects and APIs, then you can safely double it all the time.

Throw it on github and in DO or Heroku for another 20 minutes.

Bottom line: for a classic back-end application, at best I will spend at least 130 minutes (with 250 minutes of tests), pure time! But since I make a mobile application in my free time, it is almost impossible to find one and a half to two hours, so most likely a week of physical time will be spent.

It turned out to be somehow difficult and dreary. So much effort and time to launch an application that may not fire and will gather dust in the vastness of Google Play? And if it does, then I will have to spend the same amount of hours on finalizing the application, improvements, collecting statistics, new pages in the admin panel in which I need to look at statistics and published articles?

Development based on the Service Management Platform

I started looking for what solutions there are on the network to speed up writing back-end’a, and also to be able to use the API. It turns out that there is such a thing as BaaS — Backend-as-a-Service. I found several popular options:

  • Firebase,
  • AWS,
  • Parse,
  • Back4App.

At that moment, I wondered if it was possible to look at our company’s SMP product as BaaS. Usually SMP is used to organize service, process applications and build all kinds of reports, but why not try to build an application based on it?

I also sat down to count how much time I would need:

It takes 5 minutes to create two objects with the necessary attributes.

Display attributes on the creation form and on the cards — 5 minutes. Without exaggeration, we just take and specify which attribute groups to show us on a particular page.

And that’s it, the points are over. The API, working with images and storing them come out of the box. There is no need to write tests. Card setup is instant.

Of course, there are also disadvantages:

  • We are limited by the current visual component.
  • We can’t specify our own routes for the API.
  • To display graphs, you need to connect an additional paid module “Dashboards”.
  • They don’t bother me, as they fully cover my saved hours of work now and in the future.

Summing up the results

Since the main problem was the time resource, I decided on the second option. I put together the application in one evening and was satisfied: everything started quickly and the hypothesis of the relevance of the application can be checked in 1 click.

The platform is quite flexible, so in the future it is possible to increase the functionality of the mobile application by authorization, adding places to favorites, ratings from users, connecting interactive maps to the object page, and commenting is also possible. All this can be done within the framework of SMP.

If we consider my application as a commercial project, the platform will provide opportunities to get statistics on the level of service and support, automate control over the work of content managers: allocate resources, manage labor costs and coordinate edits, as well as automate work with financiers and lawyers, if necessary.

View the app on Google Play

In my case, SMP covers two of the three main tasks that BaaS solves: speed of development and multiplatformity. In the comments, I suggest we talk: do you agree with my conclusions? Also share which systems you are not using for their intended purpose and what tangible effect you get from it.