la distanță·trei întreprinzători individuali·împreună din 2012

Ceea ce ține
munca dumneavoastrăSoftware la comandă: aplicații web și sisteme interne

Lucrăm la distanță, pentru clienți din orice țară. Conturi, date, drepturi de acces, rapoarte. Sistemul în care stau zilnic oamenii dumneavoastră — automatizarea acelei munci de care depinde cât timp se duce pe lucruri care puteau să nu fie făcute de mână.

02 — cum funcționează

Arhitectura o pune un om cu 19 ani de experiență

Andrei stabilește arhitectura, Dumitru scrie backend-ul, Emilian tot ce atinge utilizatorul.

La un site, o greșeală costă o vizită. La un sistem intern costă o zi de lucru, iar uneori date care nu mai există. De aceea ordinea aici este alta: mai întâi se decide cum este alcătuit și abia apoi se scrie. Andrei este CTO din 2009 în două companii, iar discuția despre sistemul dumneavoastră începe cu el.

cât durează dezvoltarea unui sistem

De la trei luni până la prima versiune în care se poate deja lucra. Mai departe, un sistem crește de obicei ani de zile — și acesta este regimul normal al vieții lui, nu un semn că ceva a mers prost.

Un sistem intern aproape niciodată nu se face întreg și dintr-odată: mai întâi iese partea fără de care nu se poate, restul se adaugă pe măsură ce devine limpede ce folosesc oamenii de fapt. Socotim orele pentru prima versiune după caietul de sarcini, iar mai departe lucrăm lunar.

de ce ne puteți încredința asta

Un sistem intern trăiește ani de zile și îi supraviețuiește celui care l-a scris. Acesta este exact locul unde o singură pereche de mâini devine un risc.

Suntem trei, iar doi lucrează pe același teritoriu de backend: dacă unul cade, celălalt preia fără a porni de la zero. Știm cine la ce lucrează pentru că vorbim tot timpul.

03 — conținutul lucrării

Ce cuprinde lucrarea la un sistem

Conturi și drepturi. Fiecare cu spațiul lui: cine ce vede și cine ce poate — și ce se întâmplă când un om pleacă sau își schimbă rolul. Drepturile se pun în temelie, nu se înșurubează după aceea peste ce este gata.

Datele. Un model în care nu se împrăștie și o bază care suportă încărcarea dumneavoastră, nu una de demonstrație. Plus ceea ce aproape întotdeauna se uită: copiile de siguranță și posibilitatea de a reveni la o stare anterioară.

Rapoarte și panou de control. Nu un export în tabel o dată pe lună, ci cifre la care se poate uita atunci când este nevoie de ele. Exportul în tabel — și el, când este necesar: cu el lucrează contabilitatea.

Legătura cu ce aveți deja. Contabilitate și 1C, depozit, poștă, plăți, CRM sau ERP — integrările sunt aici o specializare vecină în aceeași echipă.

Istoricul acțiunilor. Cine ce a schimbat și când. La un sistem intern acesta nu este un lux: fără jurnal, disputa „s-a făcut singur” nu are cum să fie lămurită.

Server și punere în producție. Andrei se ocupă de infrastructură: unde funcționează sistemul, cum se actualizează și ce se întâmplă când o actualizare a ieșit prost.

04 — dovezi

Aplicații web și sisteme pe care le ducem

iTicket — platforma de bilete pe care o ducem de zece ani iTicket — catalogul de evenimente cu filtre după categorie, dată, locație și preț iTicket — pagina unui eveniment cu date, locație, preț și cumpărarea biletului iTicket — magazinul de vouchere cadou ale partenerilor iTicket — aplicația cumpărătorului, ecranul principal iTicket — aplicația cumpărătorului: lista evenimentelor cu date și locații iTicket — aplicația cumpărătorului: pagina unui eveniment cu data, sala, prețul și cumpărarea biletului iTicket — aplicația cumpărătorului: filtre după categorie, locație, preț și ordinea de sortare

iTicket

Platforma de bilete a Moldovei și a României — nu un site, ci un sistem: vânzări, mai multe orașe, portal pentru organizator, casă de bilete, personalul locațiilor, acces prin turnicheți. Site public, aplicația cumpărătorului, aplicația de scanare. Proiectul nu l-am început noi; îl ducem de zece ani, în dezvoltare și mentenanță activă până azi.

webaplicația cumpărătoruluiaplicația de scanareturnichețio ducem de 10 ani
servicii.immromania.eu — catalogul de servicii pentru firmele membre servicii.immromania.eu — verificarea calității de membru a firmei după codul CUI

CNIPMMR — portalul confederației patronale

Portalul structurii patronale a întreprinderilor mici și mijlocii din România, pe trei niveluri: confederație → patronate → firme membre. Dificultatea nu stă în conținut, ci în cine ce vede: patronatul — doar firmele lui, federația — doar structurile din subordine. Regula de acces este scrisă o singură dată și se aplică în interogarea către bază, așa că nu poate fi ocolită nici prin listă, nici prin filtru, nici prin export. Plus un serviciu de consultanță și o arhivă de rapoarte pe comitete.

registrul membriloracces pe niveluriconsultanțărapoarte pe comiteteimport din Excel
dezvoltare în cadrul echipei partenerului, în consorțiu cu Blue Twin Bit
Foi de parcurs — pagina publică a aplicației de foi de parcurs Foi de parcurs — ghidul pas cu pas cu capturi din aplicație

Foi de parcurs

Foi de parcurs care se închid singure. Suma deplasărilor este exact egală cu diferența dintre indicațiile odometrului, distanțele vin dintr-un serviciu de rutare, nu „din ochi”, iar traseele nu se repetă de la lună la lună. Un document finalizat nu se modifică retroactiv: o corectură creează o versiune nouă, fiecare cifră are o sursă, fiecare acțiune are urmă în audit.

generare de documenterutareauditmai multe firme și roluriDOCX și PDF
dezvoltare în cadrul echipei Blue Twin Bit
Ecranul casei: căutarea produsului, coșul, alegerea clientului, totalul Autentificarea în sistemul de casă al magazinului, cu sigla lui

Sistem de casă pentru retail

O soluție deschisă de punct de vânzare, dusă până la magazinele mici din Moldova: bon fiscal cu tipul corect de plată, cântare electronice al căror nomenclator nu se desparte de cel al casei, recepția mărfii prin import în loc de introducere manuală, etichete de preț din aceeași notă de recepție. Am completat-o după ce au cerut casierii și contabilii. Patru magazine, fiecare cu copia lui — le instalăm și le întreținem noi.

imprimantă fiscalăcântare și coduri de barerecepție din XML4 magazine

O parte însemnată din lucrările noastre este sub acorduri de confidențialitate ale agențiilor. Exemple, la cerere.

05 — proces

Cum decurge dezvoltarea unei aplicații web

  1. 01Veniți cu un caiet de sarcini.Ce fel de sistem, cine lucrează în el, ce trebuie să facă. Aceasta este partea dumneavoastră: fără ea nu avem ce socoti.
  2. 02Îl analizăm.Îl aducem la un document în care nu mai rămân întrebări și citiri duble: ce anume construim și ce nu. Pentru un sistem, asta înseamnă în primul rând rolurile: cine ce vede, cine ce poate și cine răspunde de ceea ce nu poate nimeni.
  3. 03Estimare în ore — după caietul de sarcini finalizat.Cifrele se socotesc după un document pe care l-ați citit și l-ați aprobat. A socoti orele după descrierea unei idei înseamnă ghicit, plătit de dumneavoastră. Aici se socotește prima versiune funcțională, nu sistemul întreg: ce va crește de-a lungul anilor nu poate fi socotit dinainte în mod cinstit.
  4. 04Vedeți devreme ceva care funcționează.Nu un raport de stare, ci un sistem în care se poate intra și încerca. Să vă răzgândiți în etapa aceasta este ieftin — la un sistem intern, mai ieftin decât oriunde altundeva.
  5. 05Vedeți unde se duce timpul.Evidență în Toggl, raportul vă este deschis: o dată pe lună — ore pe sarcini, ce s-a făcut, ce urmează. Factura este pentru orele lucrate, nu în avans.
  6. 06Lansare — apoi mentenanță sau predare.Sistemul poate rămâne la noi pe mentenanță lunară sau poate trece la echipa dumneavoastră. Repozitoriul și accesele sunt oricum ale dumneavoastră.
06 — sincer

Ce nu facem la sistemele interne

Nu ne apucăm de un sistem pe care nu va avea cine să-l ducă. Dacă după lansare nu îl deschide și nu îl actualizează nimeni, aceasta nu este o economie, ci o defecțiune amânată.

Nu dăm un preț înainte de caietul de sarcini. O sumă bazată pe descrierea unei idei nu este o estimare, ci un număr care oricum se va schimba. Preferăm să-l schimbăm înainte să contați pe el.

Rezerva intră în estimare, dar nu în factură: plătiți orele lucrate. Dacă lucrarea a durat mai puțin, plătiți mai puțin. Mai multe despre modul în care se socotesc orele — pe pagina principală.

07 — întrebări frecvente

Întrebări frecvente despre dezvoltarea aplicațiilor web

Cât costă un astfel de sistem?

Prețul se calculează în ore, iar numărul lor vi-l spunem dinainte, după caietul de sarcini. Fără acest document nu dăm nicio cifră: o sumă „din ochi”, după descrierea unei idei, ar fi o ghicitoare.

Cât durează dezvoltarea?

De la trei luni până la prima versiune în care se poate lucra. Termenul exact — după caietul de sarcini finalizat.

Prin ce se deosebește o aplicație web de un site?

Un site povestește, o aplicație lucrează. Pe un site omul citește și pleacă; într-o aplicație intră cu contul lui și face ceva — întocmește, calculează, ține evidența, aprobă. De aici vine tot restul: drepturi de acces, stări, istoricul acțiunilor, încărcare. Și tot de aici vine și diferența de preț, care uneori surprinde.

Faceți CRM sau ERP la comandă?

Facem, dar mai întâi merită întrebat dacă vă trebuie unul propriu. Un CRM gata făcut este mai ieftin și mai rapid exact până în clipa în care procesul dumneavoastră încetează să se potrivească cu ideea lui despre el. Un sistem propriu se justifică atunci când procesul este avantajul dumneavoastră, nu un loc comun. Tot aici intră un portal sau un cont pentru clienții dumneavoastră: acolo o soluție gata făcută se lovește aproape întotdeauna de faptul că clientul dumneavoastră nu face același lucru ca al vecinului. Spunem ce vedem înainte de începerea lucrului.

Se poate dezvolta mai departe ce avem deja?

Da, și cel mai adesea este mai ieftin decât să scriem de la capăt. Începe nu cu o estimare, ci cu citirea codului — pagina despre preluare. Privirea de ansamblu este gratuită.

Unde va funcționa sistemul?

Acolo unde vă trebuie: pe serverul dumneavoastră, pe unul închiriat sau pe echipamentele dumneavoastră din birou, dacă datele nu trebuie să iasă de acolo. De infrastructură se ocupă Andrei — este teritoriul lui, nu o sarcină dată în afară.

În ce scrieți asta?

Backend-ul — cel mai des PHP cu Laravel sau Node.js cu NestJS, baza — MySQL sau MongoDB, totul în Docker pe Linux. Lista completă a tehnologiilor cu care lucrăm este la subsolul paginii. Dacă sistemul dumneavoastră stă pe o tehnologie care nu se află pe listă, este mai cinstit să spunem de la început că nu suntem noi oamenii potriviți.

Ce se întâmplă dacă unul dintre dumneavoastră dispare?

Lucrul îl preia celălalt: același teritoriu de backend îl țin la noi doi oameni, iar amândoi sunt mereu la curent cu sarcinile celuilalt.

Cui îi aparține codul?

Dumneavoastră. Lucrăm lunar și facturăm ceea ce este deja făcut, așa că accesul la repozitoriu poate fi predat de la început, nu la final — nu avem niciun motiv să ținem codul la noi până la ultima plată.

Semnați un acord de confidențialitate?

Da. O parte însemnată din lucrările noastre curente este deja sub un astfel de acord.

În ce fus orar și în ce limbi lucrați?

Lucrăm la distanță cu clienți de oriunde, fus orar EET. Vorbim și scriem română, rusă, engleză și bulgară.

08 — mai departe

Spuneți-ne ce vreți să construiți

Veniți cu un caiet de sarcini. Îl vom reface astfel încât să nu mai rămână întrebări, și abia după el socotim orele.

o singură adresă, toți trei

[email protected]

Aceasta este intrarea. La sistemele interne discuția începe cu Andrei: mai întâi arhitectura, apoi tot restul.

Pentru a-i scrie direct unuia dintre noi — contactele de pe pagina principală.

Dacă aveți altă nevoie: API, integrări și plăți, o aplicație pentru iOS și Android, un magazin online, un site sau un landing page, preluarea unui proiect existent, adaptarea unui site existent pentru telefon.

Dacă vreți mai întâi să vedeți cine suntem — pagina principală: noi trei, cu ce se ocupă fiecare, cum socotim orele și ce am făcut până acum.