Logistică: Drumul minim
TARA Interactive a dezvoltat un sistem multi-agent gestionat printr-o aplicație web. Acesta ajută analiștii de date să creeze algoritmi modelați pe probleme legate de lanțul de aprovizionare.
Tehnologii:
Vue.js & Bootstrap, Azure Kubernetes,
Couchbase, streaming data provenit
din SQL, NoSQL, CSV, JSON,
Go Python, R, C++, Tableau
Doi antreprenori din California au avut ideea de a găsi o soluție pentru a asigura optimizarea lanțului de aprovizionare cu alimente și, în același timp, de a oferi o modalitate simplă pentru oamenii de afaceri de a modela și rezolva provocările cheie de optimizare pentru economii de milioane de dolari. Ei au definit problema și au început să construiască un MVP (produs minim viabil, care poate demonstra utilizatorilor capacitățile aplicației). Cu toate acestea, din cauza tehnologiei folosite, care era atât de nouă, și a situației pieței de muncă în IT, au întâmpinat dificultăți în a găsi candidații potriviți în SUA.
Echipa nu dorea să construiască o echipă de dezvoltare, conștientă fiind de costurile ridicate implicate, așa că dorea să lucreze cu un furnizor de software personalizat. Au contactat un partener vechi de la TARA pentru a-i ajuta să construiască o extensie a echipei de experți în software la un cost eficient.
TARA a fost aleasă datorită experienței de peste 20 de ani în dezvoltarea de software personalizat pentru clienți din Europa și SUA. Clientul știa că TARA a lucrat la proiecte similare în trecut și avea încredere în contribuția echipei la dezvoltarea experienței utilizatorului și a soluției backend.
Soluţia
Aplicația utilizează probleme combinatoriale printr-un sistem multi-agent implementat în cloud și gestionat printr-o aplicație web. Echipa dorește să creeze un algoritm pentru a utiliza resursele mai eficient. Interfața aplicației trebuie să fie intuitivă și ușor de utilizat, astfel încât utilizatorii să-și poată planifica nevoile lanțului lor de aprovizionare și să continue să utilizeze aplicația.
Experții din industria lanțului de aprovizionare pot modela problema lor și apoi pot primi soluții dintr-o bibliotecă de algoritmi extensibilă. În mod alternativ, aceștia pot fi construiți personalizat de către specialiști în știința datelor, în cazul în care biblioteca nu conține un model potrivit. Utilizatorul poate apoi efectua benchmark-uri asupra datelor istorice, simula rezultatele optimizării și le poate pune în producție.
Output-ul unei optimizări este adesea un plan de execuție: lista călătoriilor și încărcăturilor camioanelor, o secvență de instrucțiuni pentru amestec, și așa mai departe. Utilizatorii pot vizualiza datele în portalul web, le pot pasa către o altă aplicație sau pot produce un raport detaliat pentru a le împărtăși cu oricine.
Dată fiind că ideea este încă în stadiile sale incipiente, apar nevoi și direcții noi, în loc să existe un brief clar de la început. Acest lucru a adăugat straturi de complexitate la arhitectura proiectului și a fost nevoie să se armonizeze diferitele domenii ale software-ului.
Tehnologii
Aplicația este o aplicație containerizată care rulează pe Microsoft Azure Kubernetes. În plus, poate scala atât în sus, cât și în lateral pentru cerințele de clasă enterprise. Atunci când clienții doresc să-și gestioneze propria infrastructură cloud, aplicația oferă fie o implementare SaaS gestionată, fie o opțiune privată. Meta-datele și stocarea temporară sunt ținute într-un sistem Couchbase pe platforma Azure și sunt conectate la datele live (batch sau în flux) prin intermediul SQL, NoSQL, CSV, JSON, etc.
TARA a ales să lucreze cu VueJS/Bootstrap pentru implementarea front-end-ului datorită flexibilității și scalabilității sale, și poate fi utilizat pentru aplicații cu o singură pagină (SPA) imense și modulare. Platforma este compusă din multe aplicații front-end care sunt aduse împreună prin intermediul framework-ului Single-spa.
Pentru partea de autentificare, am folosit Okta ca furnizor de soluție Security Assertion Markup Language Single Sign-On (SAML SSO) pentru o experiență sigură și fără probleme. Modul în care funcționează Okta permite utilizatorilor să acceseze mai multe aplicații cu informații de încredere și, prin implementarea autentificării unice, să se autentifice o singură dată.
Pentru microserviciile din backend, am folosit limbajul de programare Go datorită performanței și securității pe care le oferă. Algoritmii de învățare automată sunt de obicei scriși în Python, R sau C++.
Arhitectura microserviciilor și microfrontend-urilor și tehnologiile folosite ne-au permis să oferim clienților un flux de lucru rapid pentru construirea și configurarea soluției. Acest lucru a făcut ușor pentru fiecare participant să adauge valoare, utilizându-și abilitățile și cunoștințele unice, în timp ce treceau de la testare la producție în mai puțin de o lună, cu versionare și flux de lucru încorporate.
De asemenea, am contribuit la construirea unei biblioteci de algoritmi de optimizare și învățare automată, care pot fi adăugați de către clienți, parteneri sau prin legături către biblioteci open source. Aceștia pot fi implementați împotriva diferitelor probleme și testați între ei pentru eficacitate, pentru a menține procesele în continuă îmbunătățire, astfel încât să performeze în partea de sus a percentilelor.
Procesul
Pentru a face progrese rapide, organizăm întâlniri săptămânale cu cofondatorul start-up-ului și liderul tehnic. La momentul redactării acestui studiu de caz (februarie 2022), cofondatorul întâlnește noi potențiali clienți și investitori, ceea ce aduce noi cerințe care sunt integrate în revizuirile săptămânale pe care le avem împreună.
Proiectul este dezvoltat urmând metodologia Agile Scrum, folosind cele mai recente tehnologii. Acest lucru aduce unele provocări în găsirea și pregătirea dezvoltatorilor în aceste tehnologii în continuă schimbare. Echipa trebuie să fie la curent cu ultimele versiuni ale framework-urilor utilizate și să se asigure că se abordează corespunzător securitatea și performanța necesare.
Cerințele provin de la investitori și de la clienții actuali și potențiali, prin urmare, metodologia Agile Scrum a fost adoptată pentru a putea adapta dezvoltarea pentru a răspunde nevoilor lor. Membrii noi ai echipei au fost instruiți de cei mai vechi pentru a netezi curba de învățare a platformei, aspectele tehnice și toate detaliile acestor tehnologii de ultimă oră.
Procesul de dezvoltare are loc în sprinturi de 2 săptămâni, astfel că de două ori pe lună prezentăm actualizări noi clienților. Orice modificări care au loc în software sunt mai întâi implementate în mediul TARA, apoi, după teste riguroase, sunt mutate în mediul clientului. În plus, de două ori pe săptămână, echipa de proiect TARA și echipa tehnică se întâlnesc pentru a discuta despre dezvoltări, schimbări care pot apărea, deblocarea blocajelor și planificarea pașilor viitori.
Rezultate
Proiectul și-a atins obiectivele și a finalizat următoarea rundă de investiții. Feedback-ul de la clienți este foarte pozitiv, atât din partea companiei care a solicitat ajutorul TARA, cât și din partea potențialilor clienți viitori.
Echipa de clienți a livrat cu succes zeci de prezentări pentru clienții noi, conștientizare pentru investitori pentru următoarea rundă de finanțare, inclusiv companii de consultanță de clasă mondială. În plus, versiunea aplicației a ajutat cei doi fondatori să atragă investiții ulterioare, care au fost importante pentru dezvoltarea ulterioară a proiectului.
Echipa internă a învățat multe din acest proiect, având în vedere complexitatea software-ului și modul în care noile dezvoltări au trebuit integrate cu cele mai vechi.