Recentment hem heretat un projecte d’un client on el backend està desenvolupat en Firebase. Això ha fet que hagi tornat a aparèixer a l’empresa la discussió sobre què és millor per a un projecte d’app mòbil (o app en general): un backend a mida o fer servir una solució BaaS (Backend as a Service) com Firebase o Supabase. En aquest article, explorarem cada opció amb els seus avantatges i inconvenients, i compartirem el nostre punt de vista sobre quan optar per una o altra opció.

Què és un BaaS (Backend as a Service)?

Un BaaS (Backend as a Service) és un servei al núvol que proporciona infraestructura, eines i serveis backend preconstruïts per a aplicacions mòbils i web. Les funcionalitats habituals que ofereixen les plataformes BaaS inclouen:

  • Emmagatzematge de dades: Bases de dades NoSQL o SQL, emmagatzematge d’arxius i gestió d’objectes.
  • Autenticació i autorització: Sistemes de registre, inici de sessió, gestió de perfils d’usuari i integració amb proveïdors d’identitat (com Google, Facebook o Apple).
  • Notificacions push: Enviament de notificacions als dispositius mòbils o navegadors web.
  • Funcions en el núvol (Serverless): Execució de codi personalitzat sense necessitat de gestionar servidors.
  • API Management: Creació automàtica d’APIs REST o GraphQL per accedir a les dades.
  • Anàlisis i monitoratge: Eines per fer un seguiment de l’ús de l’aplicació, mètriques de rendiment i comportament dels usuaris.
  • Integració amb altres serveis: Connexió amb serveis externs mitjançant APIs o eines d’automatització.

Alguns dels BaaS més populars són:

  • Firebase: Proporcionat per Google, destaca per les seves bases de dades en temps real (Firestore i Realtime Database) i la seva integració amb Google Analytics i Crashlytics.
  • Supabase: Una alternativa de codi obert a Firebase que utilitza PostgreSQL com a base de dades, oferint major flexibilitat per a consultes complexes i integracions.
  • AWS Amplify: Una solució d’Amazon Web Services que permet construir i desplegar aplicacions escalables.
  • Backendless: Una altra opció amb funcionalitats similars, incloent bases de dades, autenticació i funcions de núvol.

Avantatges dels BaaS

1. Barrera d’entrada baixa

Permet començar projectes amb una inversió inicial reduïda, reduint la necessitat de coneixements tècnics avançats i eliminant la complexitat de gestionar la infraestructura, la qual cosa facilita la validació ràpida d’idees i el llançament de productes.

2. Implementació ràpida

Un dels avantatges principals dels BaaS és la velocitat d’implementació. Amb poques línies de codi es poden tenir funcionalitats bàsiques com autenticació, bases de dades en temps real o notificacions push. 

3. Costos inicials baixos

Com que el backend està preconstruït, no cal contractar un equip de desenvolupament complet des del principi, invertir en desenvolupar funcionalitats desde zero, ni dedicar recursos al manteniment de la infraestructura. A més, el model de preus basat en ús permet escalar els costos a mesura que el projecte creix.

4. Escalabilitat automàtica

Els serveis BaaS gestionen automàticament l’escalabilitat de l’aplicació, adaptant-se a pics de tràfic o creixement d’usuaris. Aquesta flexibilitat permet mantenir el rendiment sense necessitat d’intervenció manual o d’ampliacions d’infraestructura.

5. SDKs per a múltiples llenguatges

Els BaaS proporcionen SDKs (Software Development Kits) per a diversos llenguatges de programació i plataformes tant mòbils com web. Això facilita la integració i permet als desenvolupadors utilitzar el llenguatge amb el qual se senten més còmodes o el que millor s’adapta a les necessitats del projecte.

6. Eines integrades

Plataformes com Firebase no només ofereixen funcionalitats pròpies d’un backend, sinó també eines complementàries com Crashlytics (per al seguiment d’errors) i Google Analytics (per a l’anàlisi de l’ús de l’aplicació). Aquesta combinació d’eines en un únic servei simplifica molt la gestió de l’aplicació.

Inconvenients dels BaaS

1. Limitacions de personalització

Els serveis BaaS solen oferir funcionalitats predefinides per a tasques comunes, però poden no permetre implementar lògica de negoci complexa. Això pot forçar-te a adaptar la teva aplicació als límits del servei o a buscar solucions alternatives.

2. Escalabilitat limitada

Tot i que molts serveis BaaS prometen escalabilitat, poden existir limitacions tècniques o econòmiques a mesura que el teu projecte creix, especialment en aplicacions amb necessitats específiques o molt grans.

3. Dependència del proveïdor (vendor lock-in)

Estàs subjecte als canvis i tarifes del proveïdor. Un canvi de preus o de polítiques pot afectar significativament el projecte. Un exemple clar és el tancament de Parse per part de Facebook, que va deixar molts projectes sense suport, obligant-los a migrar de plataforma.

A més, si en algun moment vols migrar de plataforma o anar cap a un backend a mida la migració pot ser molt costosa, ja que les dades i la lògica de negoci poden estar molt integrades amb el BaaS utilitzat.

4. Problemes de seguretat i privacitat

Emmagatzemar dades sensibles en un proveïdor extern pot comportar riscos de seguretat i problemes de compliment normatiu, especialment en sectors amb requisits estrictes (com el sanitari o financer).

5. Costos variables

Si el projecte creix o es fan servir molts recursos, el cost del servei pot augmentar de manera inesperada. Els preus es poden disparar especialment en funció del nombre de API calls o de l’espai d’emmagatzematge utilitzat.

6. Debugging i control del codi

En cas de problemes amb l’API del proveïdor, les opcions de depuració poden ser limitades i dependre completament del suport tècnic del servei. A més, la documentació pot no estar sempre actualitzada, fent difícil identificar i solucionar problemes.

Què és un backend a mida?

Un backend a mida és una solució desenvolupada específicament per a les necessitats d’una aplicació o empresa. Les tecnologies més utilitzades en el desenvolupament de backends a mida són:

  • Python: Utilitzant Django o Flask.
  • Java: Amb Spring Boot
  • JavaScript/TypeScript: Amb frameworks com Express.js o NestJS
  • C#: Principalment amb ASP.NET Core
  • PHP: Amb frameworks com Laravel o Symfony.
  • Ruby: Amb Ruby on Rails.

Aquesta opció ofereix un control total sobre l’arquitectura, la lògica de negoci, la seguretat i la integració amb altres sistemes.

Avantatges d’un backend a mida

1. Personalització i adaptabilitat

Un backend a mida permet adaptar cada detall de la infraestructura i les funcionalitats a les necessitats de l’empresa. Aquesta personalització assegura que tots els processos, fluxos de treball i funcionalitats encaixin perfectament amb els requeriments del projecte. 

2. Escalabilitat i creixement

Facilita l’evolució de la solució a mesura que el negoci creix, permetent afegir noves funcionalitats, gestionar un volum més gran d’usuaris o dades o adaptar-se a noves necessitats sense haver de redissenyar completament el sistema. Aquesta escalabilitat assegura la inversió a llarg termini, evitant haver de fer canvis radicals en el futur.

3. Seguretat avançada i personalitzada

Ofereix la possibilitat d’implementar mesures de seguretat adaptades al projecte, com xifrat de dades, sistemes d’autenticació particulars o altres mesures de seguretat pròpies del sistema desenvolupat.

4. Optimització del rendiment i eficiència

El backend a mida es pot dissenyar per maximitzar l’eficiència dels recursos disponibles fins al límit permès per la pròpia tecnologia, assegurant temps de resposta mínims i un bon rendiment fins i tot en situacions de càrrega elevada.

5. Control total i manteniment simplificat

En disposar d’un codi net i específicament desenvolupat per al projecte, o un sistema de logging a mida, és molt més senzill identificar l’origen d’un error, analitzar-ne la causa i solucionar-lo. Això redueix els temps d’inactivitat i minimitza l’impacte dels errors en el funcionament del sistema.

Inconvenients d’un backend a mida

1. Cost inicial

El desenvolupament d’un backend a mida acostuma a implicar una inversió econòmica significativa, ja que es requereix un equip tècnic especialitzat i desenvolupar les funcionalitats necessàries. Això pot ser un obstacle per a projectes amb pressupostos limitats.

2. Temps de Desenvolupament 

Crear un backend a mida pot requerir setmanes o fins i tot mesos, depenent de la complexitat del projecte. A diferència de les solucions estàndard o prefabricades, el temps necessari per dissenyar, desenvolupar, provar i implementar és considerablement superior.

3. Dependència del Proveïdor 

Si el backend és desenvolupat per una empresa externa, l’empresa pot dependre d’aquest proveïdor per al manteniment, la resolució de problemes i les actualitzacions. Això pot generar costos recurrents i possibles dificultats si el proveïdor no està disponible.

Si en algun moment vols canviar de proveïdor hauràs de trobar algú que treballi amb les mateixes tecnologies, cosa que no sempre és així.

4. Risc d’errors

El desenvolupament a mida implica escriure nou codi, cosa que augmenta la probabilitat d’introduir errors. Aquests problemes poden afectar el rendiment del sistema i requerir més temps per identificar-los i solucionar-los.

5. Manteniment i Actualitzacions 

Un backend a mida necessita un manteniment continuat per assegurar el seu funcionament, seguretat, rendiment i compatibilitat amb altres sistemes. Això implica dedicar recursos tècnics periòdicament per adaptar-lo a noves necessitats o a canvis tecnològics.

Quan optar per cada opció?

Ara que hem repassat els avantatges i inconvenients de cada una de les possibilitats, la següent pregunta que ens hem de fer és en quins casos val la pena fer servir un BaaS i en quines cal desenvolupar un backend a mida.

Quan optar per un BaaS:

  • Prototips i MVPs (Minimum Viable Product): Si necessites llançar ràpidament un producte al mercat per provar una idea.
  • Aplicacions senzilles o amb funcionalitats estàndard: Per exemple, xats, aplicacions socials bàsiques, formularis de dades o aplicacions internes simples.
  • Projectes amb un pressupost reduït: Estalvies temps i costos de desenvolupament del backend.
  • En aplicacions amb una durada temporal limitada: si tens clar que en el futur no inclourà noves funcionalitats

Quan optar per un backend a mida:

  • Aplicacions amb lògica de negoci complexa: Quan necessites processos complexos, regles de negoci personalitzades o integracions a mida.
  • Requisits de seguretat elevats: Quan tens necessitats específiques en matèria de seguretat o regulacions (per exemple, dades sensibles, GDPR, HIPAA…).
  • Necessitat de control total sobre la infraestructura: Si vols personalitzar la base de dades, l’estructura del servidor o optimitzar el rendiment.
  • Evitar dependències de tercers: Especialment per a projectes a llarg termini on vols minimitzar riscos de dependència tecnològica.

Té sentit una solució híbrida?

En alguns casos, pot ser interessant utilitzar una combinació de les dues solucions. Per exemple, es pot desenvolupar un backend a mida per gestionar la lògica de negoci i les dades sensibles, mentre s’utilitza un BaaS per a funcionalitats més estàndard com podrien ser:

  • L’autenticació d’usuaris i social login
  • L’enviament de notificacions push
  • L’obtenció d’analítiques d’us

Aquesta estratègia permet aprofitar la rapidesa i senzillesa dels BaaS sense sacrificar la flexibilitat i control d’un backend personalitzat.

Conclusions

Amb l’experiència que tenim a app2U, recomanem utilitzar un backend a mida com a opció predeterminada per a projectes que busquin estabilitat i creixement a llarg termini. Un backend a mida permet tenir tot el sistema centralitzat i ben estructurat per capes, oferint una base sòlida per al desenvolupament continuat.

Per nosaltres també té sentit dur a terme algunes funcionalitats directament amb el BaaS com les que es plantegen en la solució híbrida, però tenint sempre present que la base ha de ser el backend a mida.

Dit això, com podem minimitzar l’impacte dels inconvenients de desenvolupar un backend a mida? Alguns consells que nosaltres apliquem a cada projecte:

  1. Tenir definits clarament els requeriments: Abans de començar el desenvolupament, assegura’t de tenir molt clares les funcionalitats i necessitats del projecte. Una bona documentació inicial ajuda a evitar canvis no previstos que poden incrementar costos i temps.
  2. Selecciona un proveïdor de confiança: busca empreses amb experiència demostrable, un bon historial de projectes similars i capacitat per oferir manteniment i suport a llarg termini. Temes claus a tenir en compte:
    1. Confiança, com hem dit t’ha de transmetre confiança. No només com a empresa, també personal.
    2. Desenvolupament iteratiu: és important poder anar veient el resultat del projecte a mesura que avança.
    3. Testing automàtic: el desenvolupament de testos ha de formar part del propi desenvolupament de la solució per assegurar que aquesta creix sense trencar res.
    4. Documentació: demana incloure documentació tècnica dins de l’abast del projecte, no sempre es fa per defecte.
    5. Propietat del codi: assegura’t que el codi desenvolupat és teu per evitar el vendor lock-in.

A curt termini potser farà el projecte més car, a la llarga aquests punts et poden estalviar molts diners.

  1. Preveure manteniment i actualitzacions: El software a mida requereix dedicar recursos de forma recurrent a manteniment, com a mínim adaptatiu, per assegurar que segueix funcionant. Tingue-ho en compte.

Al principi de l’article parlàvem del projecte heretat del client. La situació actual és que hem migrat tota la capa de negoci cap a un backend a mida i el resultat és que ara tenim molt més control del que està passant a la solució. La lògica de negoci està centralitzada en un punt, les dades són més consistents (firebase permetia tenir dades incoherents) i amb això el número de problemes s’ha reduït dràsticament 🙂

Recentment hem heretat un projecte d’un client on el backend està desenvolupat en Firebase. Això ha fet que hagi tornat a aparèixer a l’empresa la discussió sobre què és millor per a un projecte d’app mòbil (o app en general): un backend a mida o fer servir una solució BaaS (Backend as a Service) com Firebase o Supabase. En aquest article, explorarem cada opció amb els seus avantatges i inconvenients, i compartirem el nostre punt de vista sobre quan optar per una o altra opció.

Què és un BaaS (Backend as a Service)?

Un BaaS (Backend as a Service) és un servei al núvol que proporciona infraestructura, eines i serveis backend preconstruïts per a aplicacions mòbils i web. Les funcionalitats habituals que ofereixen les plataformes BaaS inclouen:

  • Emmagatzematge de dades: Bases de dades NoSQL o SQL, emmagatzematge d’arxius i gestió d’objectes.
  • Autenticació i autorització: Sistemes de registre, inici de sessió, gestió de perfils d’usuari i integració amb proveïdors d’identitat (com Google, Facebook o Apple).
  • Notificacions push: Enviament de notificacions als dispositius mòbils o navegadors web.
  • Funcions en el núvol (Serverless): Execució de codi personalitzat sense necessitat de gestionar servidors.
  • API Management: Creació automàtica d’APIs REST o GraphQL per accedir a les dades.
  • Anàlisis i monitoratge: Eines per fer un seguiment de l’ús de l’aplicació, mètriques de rendiment i comportament dels usuaris.
  • Integració amb altres serveis: Connexió amb serveis externs mitjançant APIs o eines d’automatització.

Alguns dels BaaS més populars són:

  • Firebase: Proporcionat per Google, destaca per les seves bases de dades en temps real (Firestore i Realtime Database) i la seva integració amb Google Analytics i Crashlytics.
  • Supabase: Una alternativa de codi obert a Firebase que utilitza PostgreSQL com a base de dades, oferint major flexibilitat per a consultes complexes i integracions.
  • AWS Amplify: Una solució d’Amazon Web Services que permet construir i desplegar aplicacions escalables.
  • Backendless: Una altra opció amb funcionalitats similars, incloent bases de dades, autenticació i funcions de núvol.

Avantatges dels BaaS

1. Barrera d’entrada baixa

Permet començar projectes amb una inversió inicial reduïda, reduint la necessitat de coneixements tècnics avançats i eliminant la complexitat de gestionar la infraestructura, la qual cosa facilita la validació ràpida d’idees i el llançament de productes.

2. Implementació ràpida

Un dels avantatges principals dels BaaS és la velocitat d’implementació. Amb poques línies de codi es poden tenir funcionalitats bàsiques com autenticació, bases de dades en temps real o notificacions push. 

3. Costos inicials baixos

Com que el backend està preconstruït, no cal contractar un equip de desenvolupament complet des del principi, invertir en desenvolupar funcionalitats desde zero, ni dedicar recursos al manteniment de la infraestructura. A més, el model de preus basat en ús permet escalar els costos a mesura que el projecte creix.

4. Escalabilitat automàtica

Els serveis BaaS gestionen automàticament l’escalabilitat de l’aplicació, adaptant-se a pics de tràfic o creixement d’usuaris. Aquesta flexibilitat permet mantenir el rendiment sense necessitat d’intervenció manual o d’ampliacions d’infraestructura.

5. SDKs per a múltiples llenguatjes

Els BaaS proporcionen SDKs (Software Development Kits) per a diversos llenguatges de programació i plataformes tant mòbils com web. Això facilita la integració i permet als desenvolupadors utilitzar el llenguatge amb el qual se senten més còmodes o el que millor s’adapta a les necessitats del projecte.

6. Eines integrades

Plataformes com Firebase no només ofereixen funcionalitats pròpies d’un backend, sinó també eines complementàries com Crashlytics (per al seguiment d’errors) i Google Analytics (per a l’anàlisi de l’ús de l’aplicació). Aquesta combinació d’eines en un únic servei simplifica molt la gestió de l’aplicació.

Inconvenients dels BaaS

1. Limitacions de personalització

Els serveis BaaS solen oferir funcionalitats predefinides per a tasques comunes, però poden no permetre implementar lògica de negoci complexa. Això pot forçar-te a adaptar la teva aplicació als límits del servei o a buscar solucions alternatives.

2. Escalabilitat limitada

Tot i que molts serveis BaaS prometen escalabilitat, poden existir limitacions tècniques o econòmiques a mesura que el teu projecte creix, especialment en aplicacions amb necessitats específiques o molt grans.

3. Dependència del proveïdor (vendor lock-in)

Estàs subjecte als canvis i tarifes del proveïdor. Un canvi de preus o de polítiques pot afectar significativament el projecte. Un exemple clar és el tancament de Parse per part de Facebook, que va deixar molts projectes sense suport, obligant-los a migrar de plataforma.

A més, si en algun moment vols migrar de plataforma o anar cap a un backend a mida la migració pot ser molt costosa, ja que les dades i la lògica de negoci poden estar molt integrades amb el BaaS utilitzat.

4. Problemes de seguretat i privacitat

Emmagatzemar dades sensibles en un proveïdor extern pot comportar riscos de seguretat i problemes de compliment normatiu, especialment en sectors amb requisits estrictes (com el sanitari o financer).

5. Costos variables

Si el projecte creix o es fan servir molts recursos, el cost del servei pot augmentar de manera inesperada. Els preus es poden disparar especialment en funció del nombre de API calls o de l’espai d’emmagatzematge utilitzat.

6. Debugging i control del codi

En cas de problemes amb l’API del proveïdor, les opcions de depuració poden ser limitades i dependre completament del suport tècnic del servei. A més, la documentació pot no estar sempre actualitzada, fent difícil identificar i solucionar problemes.

¿Què és un backend a mida?

Un backend a mida és una solució desenvolupada específicament per a les necessitats d’una aplicació o empresa. Les tecnologies més utilitzades en el desenvolupament de backends a mida són:

  • Python: Utilitzant Django o Flask.
  • Java: Amb Spring Boot
  • JavaScript/TypeScript: Amb frameworks com Express.js o NestJS
  • C#: Principalment amb ASP.NET Core
  • PHP: Amb frameworks com Laravel o Symfony.
  • Ruby: Amb Ruby on Rails.

Aquesta opció ofereix un control total sobre l’arquitectura, la lògica de negoci, la seguretat i la integració amb altres sistemes.

Avantatges d’un backend a mida

1. Personalització i adaptabilitat

Un backend a mida permet adaptar cada detall de la infraestructura i les funcionalitats a les necessitats de l’empresa. Aquesta personalització assegura que tots els processos, fluxos de treball i funcionalitats encaixin perfectament amb els requeriments del projecte. 

2. Escalabilitat i creixement

Facilita l’evolució de la solució a mesura que el negoci creix, permetent afegir noves funcionalitats, gestionar un volum més gran d’usuaris o dades o adaptar-se a noves necessitats sense haver de redissenyar completament el sistema. Aquesta escalabilitat assegura la inversió a llarg termini, evitant haver de fer canvis radicals en el futur.

3. Seguretat avançada i personalitzada

Ofereix la possibilitat d’implementar mesures de seguretat adaptades al projecte, com xifrat de dades, sistemes d’autenticació particulars o altres mesures de seguretat pròpies del sistema desenvolupat.

4. Optimització del rendiment i eficiència

El backend a mida es pot dissenyar per maximitzar l’eficiència dels recursos disponibles fins al límit permès per la pròpia tecnologia, assegurant temps de resposta mínims i un bon rendiment fins i tot en situacions de càrrega elevada.

5. Control total i manteniment simplificat

En disposar d’un codi net i específicament desenvolupat per al projecte, o un sistema de logging a mida, és molt més senzill identificar l’origen d’un error, analitzar-ne la causa i solucionar-lo. Això redueix els temps d’inactivitat i minimitza l’impacte dels errors en el funcionament del sistema.

Inconvenients d’un backend a mida

1. Cost inicial 

El desenvolupament d’un backend a mida acostuma a implicar una inversió econòmica significativa, ja que es requereix un equip tècnic especialitzat i desenvolupar les funcionalitats necessàries. Això pot ser un obstacle per a projectes amb pressupostos limitats.

2. Temps de Desenvolupament 

Crear un backend a mida pot requerir setmanes o fins i tot mesos, depenent de la complexitat del projecte. A diferència de les solucions estàndard o prefabricades, el temps necessari per dissenyar, desenvolupar, provar i implementar és considerablement superior.

3. Dependència del Proveïdor 

Si el backend és desenvolupat per una empresa externa, l’empresa pot dependre d’aquest proveïdor per al manteniment, la resolució de problemes i les actualitzacions. Això pot generar costos recurrents i possibles dificultats si el proveïdor no està disponible.

Si en algun moment vols canviar de proveïdor hauràs de trobar algú que treballi amb les mateixes tecnologies, cosa que no sempre és així.

4. Risc d’errors

El desenvolupament a mida implica escriure nou codi, cosa que augmenta la probabilitat d’introduir errors. Aquests problemes poden afectar el rendiment del sistema i requerir més temps per identificar-los i solucionar-los.

5. Manteniment i Actualitzacions 

Un backend a mida necessita un manteniment continuat per assegurar el seu funcionament, seguretat, rendiment i compatibilitat amb altres sistemes. Això implica dedicar recursos tècnics periòdicament per adaptar-lo a noves necessitats o a canvis tecnològics.

Quan optar per cada opció?

Ara que hem repassat els avantatges i inconvenients de cada una de les possibilitats, la següent pregunta que ens hem de fer és en quins casos val la pena fer servir un BaaS i en quines cal desenvolupar un backend a mida.

Quan optar per un BaaS:

  • Prototips i MVPs (Minimum Viable Product): Si necessites llançar ràpidament un producte al mercat per provar una idea.
  • Aplicacions senzilles o amb funcionalitats estàndard: Per exemple, xats, aplicacions socials bàsiques, formularis de dades o aplicacions internes simples.
  • Projectes amb un pressupost reduït: Estalvies temps i costos de desenvolupament del backend.
  • En aplicacions amb una durada temporal limitada: si tens clar que en el futur no inclourà noves funcionalitats

Quan optar per un backend a mida:

  • Aplicacions amb lògica de negoci complexa: Quan necessites processos complexos, regles de negoci personalitzades o integracions a mida.
  • Requisits de seguretat elevats: Quan tens necessitats específiques en matèria de seguretat o regulacions (per exemple, dades sensibles, GDPR, HIPAA…).
  • Necessitat de control total sobre la infraestructura: Si vols personalitzar la base de dades, l’estructura del servidor o optimitzar el rendiment.
  • Evitar dependències de tercers: Especialment per a projectes a llarg termini on vols minimitzar riscos de dependència tecnològica.

Té sentit una solució híbrida?

En alguns casos, pot ser interessant utilitzar una combinació de les dues solucions. Per exemple, es pot desenvolupar un backend a mida per gestionar la lògica de negoci i les dades sensibles, mentre s’utilitza un BaaS per a funcionalitats més estàndard com podrien ser:

  • L’autenticació d’usuaris i social login
  • L’enviament de notificacions push
  • L’obtenció d’analítiques d’us

Aquesta estratègia permet aprofitar la rapidesa i senzillesa dels BaaS sense sacrificar la flexibilitat i control d’un backend personalitzat.

Conclusions

Amb l’experiència que tenim a app2U, recomanem utilitzar un backend a mida com a opció predeterminada per a projectes que busquin estabilitat i creixement a llarg termini. Un backend a mida permet tenir tot el sistema centralitzat i ben estructurat per capes, oferint una base sòlida per al desenvolupament continuat.

Per nosaltres també té sentit dur a terme algunes funcionalitats directament amb el BaaS com les que es plantegen en la solució híbrida, però tenint sempre present que la base ha de ser el backend a mida.

Dit això, com podem minimitzar l’impacte dels inconvenients de desenvolupar un backend a mida? Alguns consells que nosaltres apliquem a cada projecte:

  1. Tenir definits clarament els requeriments: Abans de començar el desenvolupament, assegura’t de tenir molt clares les funcionalitats i necessitats del projecte. Una bona documentació inicial ajuda a evitar canvis no previstos que poden incrementar costos i temps.
  2. Selecciona un proveïdor de confiança: busca empreses amb experiència demostrable, un bon historial de projectes similars i capacitat per oferir manteniment i suport a llarg termini. Temes claus a tenir en compte:
    1. Confiança, com hem dit t’ha de transmetre confiança. No només com a empresa, també personal.
    2. Desenvolupament iteratiu: és important poder anar veient el resultat del projecte a mesura que avança.
    3. Testing automàtic: el desenvolupament de testos ha de formar part del propi desenvolupament de la solució per assegurar que aquesta creix sense trencar res.
    4. Documentació: demana incloure documentació tècnica dins de l’abast del projecte, no sempre es fa per defecte.
    5. Propietat del codi: assegura’t que el codi desenvolupat és teu per evitar el vendor lock-in.

A curt termini potser farà el projecte més car, a la llarga aquests punts et poden estalviar molts diners.

  1. Preveure manteniment i actualitzacions: El software a mida requereix dedicar recursos de forma recurrent a manteniment, com a mínim adaptatiu, per assegurar que segueix funcionant. Tingue-ho en compte.

Al principi de l’article parlàvem del projecte heretat del client. La situació actual és que hem migrat tota la capa de negoci cap a un backend a mida i el resultat és que ara tenim molt més control del que està passant a la solució. La lògica de negoci està centralitzada en un punt, les dades són més consistents (firebase permetia tenir dades incoherents) i amb això el número de problemes s’ha reduït dràsticament 🙂