Ai o aplicație critică construită acum 8-15 ani. Încă funcționează, dar fiecare modificare devine mai greu de făcut, developerii care o știu pleacă sau cer mărire, iar securitatea e o întrebare deschisă. Primul pas rațional nu e să înlocuiești — e să faci un audit. Iată ce înseamnă un audit de calitate, structurat pe 7 dimensiuni.
De ce un audit înainte de orice altceva
Fără audit, decizia de „înlocuim” se ia pe impresii. 40% din proiectele de rewrite au fost pornite pe bază de frustrare cu codul vechi și s-au încheiat cu un produs nou la fel de problematic — pentru că problema reală nu era codul, ci procesul, documentația, sau o singură componentă putredă din 20.
Cele 7 dimensiuni ale unui audit serios
1. Arhitectură și dependențe
- Maparea componentelor majore și relațiile între ele
- Identificarea single points of failure
- Versiunile framework-urilor și bibliotecilor folosite — câte sunt abandoned sau end-of-life
- Dependențele hard (DB engine, OS, middleware) — mai sunt suportate
2. Securitate
- Vulnerabilități cunoscute în dependențe (CVE scanning)
- Autentificare și autorizare — RBAC, storage parole, sesiuni
- Validare input, SQL injection, XSS, CSRF — testat pe componente reprezentative
- Configurări expuse (secrets în cod, log-uri verbose, endpoint-uri admin publice)
- Log-uri și monitorizare a securității
3. Calitatea codului
- Metrici: cyclomatic complexity, duplicare cod, coverage teste
- Convenții de cod — există, sunt respectate
- Tests — există, rulează, care procent din cod acoperă
- Zone „necunoscute” unde nimeni nu se atinge de 3+ ani
4. Date și migrație
- Schema bazei de date — documentată, normalizată, sau „crescută organic”
- Calitatea datelor — duplicate, inconsistențe, câmpuri neutilizate
- Volumul datelor și trend — cât de repede crește, planuri de arhivare
- Backup-uri — frecvența, testarea restore-ului
5. Operațional
- Deployment — manual, CI/CD, rollback ușor sau greu
- Monitorizare — uptime, erori, performanță
- Documentație — există, e actuală, e accesibilă
- Runbook-uri pentru incidente comune
6. Performanță
- Timp de răspuns pe fluxurile critice — măsurat, nu presupus
- Scalabilitate — ce se întâmplă la dublarea utilizatorilor
- Queries SQL lente identificate
- Front-end — timp de încărcare, Core Web Vitals (dacă e web)
7. Oameni și cunoștințe
- Câți developeri știu sistemul suficient ca să-l mențină
- Risc de plecare — knowledge concentrat în 1-2 oameni
- Documentație tribală vs. documentație scrisă
- Onboarding-ul unui dev nou — câte săptămâni, ce include
Cum arată un raport de audit bun
Raportul final are tipic 40-80 pagini și conține:
- Executive summary 2-3 pagini — pentru non-tehnici, cu verdict clar și 3 recomandări prioritare
- Heat map vizual — dimensiuni × criticitate
- Top 10 riscuri ordonate, fiecare cu: descriere, impact potențial, efort remediere, prioritate
- Detalii pe fiecare dimensiune — findings concrete, nu generalități
- Plan de remediere pe 3 etape: quick wins (1-3 luni), medium-term (3-12 luni), strategic (12-24 luni)
- Buget estimativ pentru fiecare etapă
- Anexe cu detalii tehnice pentru echipa de dev
Red flags într-un audit prost
Semnal | De ce e problemă |
Raport doar PDF, fără findings tehnice detaliate | Auditorul nu a intrat în cod real |
Recomandă „rewrite complet” ca unică soluție | Probabil vine cu agenda de sales |
Nu măsoară nimic, doar descrie | E o părere, nu un audit |
Nu intervievează echipa tehnică internă | Lipsește contextul critic |
Durată de 1 săptămână pentru sistem complex | Superficial — e imposibil de făcut serios în timp atât de scurt |
Cât durează și cât costă un audit realist
Pentru o aplicație medie (500k-2M linii cod, 5-15 servicii), un audit serios durează 4-8 săptămâni și costă între 12.000 și 35.000 EUR. Sub 10.000 EUR înseamnă că cineva analizează superficial. Peste 40.000 EUR fără justificare clară înseamnă că se adaugă marje mari.
Ce facem la Skyvertex
Oferim audit legacy software ca serviciu separat, fără obligația de a lucra cu noi pe remediere. În aproximativ 30% din audituri, recomandarea finală e „păstrează sistemul și aplică aceste 5-7 remedieri focalizate” — pentru că înlocuirea completă nu se justifică. În altele, recomandăm strangler pattern (vezi articolul dedicat) sau rewrite selectiv. Raportul e al tău și poți lucra cu orice echipă vrei ulterior.
Ai un sistem vechi care te neliniștește și vrei un audit obiectiv în 4-6 săptămâni? Hai să vorbim fără obligație. → skyvertex.ro/contact
Întrebări frecvente (FAQ)
Am nevoie de cod pentru a face audit?
Da, accesul la cod e esențial. Un audit fără cod e audit de documentație, care acoperă poate 20% din dimensiuni.
Dacă aplicația e în producție, auditul o poate afecta?
Nu — majoritatea analizei e pe cod și schema DB. Testele de penetrare active se fac în medii dedicate sau cu fereastră de mentenanță.
Cât e valabil un audit?
6-12 luni. După aceea, dependențele se învechesc, codul se schimbă, findings-urile nu mai sunt actuale.
Pot face auditul cu echipa internă?
Pe 2-3 dimensiuni (operațional, documentație, oameni) — da. Pe securitate și arhitectură — perspectiva externă e valoroasă, echipa internă are blind spots normale.