Tranzitie point-of-sale app spre self-service kiosk app

În urmă cu doi ani am creat o aplicație (destul de basic) de tipul point-of-sale, bazată pe Next.js, Express.js, Prisma + Apollo (Graphql) și PostgreSQL. A funcționat relativ fară probleme până acum când sunt pus în fața unei decizii, fie fac o actualizare a versiunilor folosite (noul nextjs, prisma 2, apollo 3) și pe baza acesteia extind codul astfel încât să poată fi folosită și ca aplicație de self-service pe kiosk-uri (în genul celor de preluare și plată a comenziilor la KFC sau McDonalds), fie mă îndrept spre o altă combinație de headless CMS (strapi, sanity) + nextjs.

Structura aplicației tip POS este destul de simplă, fiecare user este atașat unui store, iar fiecare store are propriile categorii de produse.

Ca argumente pentru continuarea și extinderea aplicației existente ar fi doar faptul că am codat-o de la zero și am control asupra fiecărei componente. Pe de altă parte ar dura mai mult timpul de development pentru că e nevoie de refactor și abia apoi de adăugat features.

Dacă mă îndrept spre ceva nou, am impresia că aș scurta timpul de development.

Orice părere e binevenită :smile:

Dacă ai ocazia să facturezi timpul “pierdut” cu refactoring-ul aplicației existente, eu aș face-o :slight_smile: Nu e chiar pierdut dar înțelegi ideea.

Îi explici clientului că e necesară și astfel chiar dacă durează mai mult, nu lucrezi degeaba.

Să faci aplicație nouă sună fain, știu, dar gândește-te peste 2-3 ani. Vei avea de întreținut 2 aplicații separate, una foarte învechită, alta semi-învechită.

Așa dacă rezolvi acum technical debt-ul, vei avea o singură aplicație de întreținut și de extins.

Gândește-te și dacă clientul îți cere un feature nou și acela trebuie implementat în ambele aplicații. Trebuie să implementezi aceeași chestie pe 2 versiuni de framework/librării/etc diferite, orice chestie nouă îți va lua dublu. Ce să mai zic de testare și restul.

4 Likes