Kako napisati TRD: vodič za tehničke zahteve
TRD, ili Technical Requirements Document, specificira tehnološko okruženje koje je sistemu potrebno da radi. Dok PRD definiše šta graditi, a FRD definiše kako sistem treba da se ponaša, TRD definiše infrastrukturu, hardver, softver i platformske zahteve od kojih sistem zavisi. On odgovara na pitanje: koja tehnička osnova je ovom sistemu potrebna da ispravno funkcioniše?
TRD je posebno važan kada sistem ima specifične hardverske zavisnosti, mora da radi na određenoj cloud platformi, treba da se integriše sa nasleđenom infrastrukturom ili mora da ispuni compliance zahteve koji diktiraju tehnološke izbore.
Key insight
TRD ne govori o tome šta softver radi (to je FRD) niti o tome koliko dobro funkcioniše (to je NFR sekcija SRD-a). TRD specificira tehnički ekosistem — servere, mreže, baze podataka, operativne sisteme, alate trećih strana i platformske servise koji su sistemu potrebni.
Ko piše i za koga
Vlasnik TRD-a je obično sistemski arhitekta, inženjer infrastrukture, DevOps lider ili tehnički projektni menadžer — neko ko razume ceo tehnološki stek od hardvera do aplikativnog sloja.
| Čitalac | Šta traži u dokumentu |
|---|---|
| DevOps / SRE | Specifikacije servera, cloud servisi, umrežavanje, alati za monitoring |
| Backend inženjeri | Zahtevi za baze podataka, verzije runtime-a, ograničenja zavisnosti |
| Bezbednosni tim | Standardi šifrovanja, kontrola pristupa, compliance zahtevi |
| Nabavka | Specifikacije hardvera, troškovi licenci, zahtevi za vendore |
| Projektni menadžeri | Tehnološki rizici, zavisnosti, rokovi za pripremu infrastrukture |
Kada je TRD potreban — a kada nije
TRD je potreban kada:
- Projekat uključuje nabavku specifičnog hardvera (on-premise serveri, IoT uređaji, specijalizovana oprema)
- Odluke o cloud infrastrukturi moraju biti dokumentovane i odobrene pre provisioninga
- Više timova ili vendora treba da se usaglasi oko zajedničkog tehnološkog steka
- Compliance ili bezbednosni zahtevi diktiraju specifične tehnološke izbore (standardi šifrovanja, rezidencija podataka, sertifikovane platforme)
- Migrirate sa jedne platforme na drugu i morate da dokumentujete i trenutno i ciljno okruženje
TRD nije potreban kada:
- Tim ima punu autonomiju nad tehnološkim odlukama i infrastruktura je već obezbeđena
- Projekat radi na standardizovanoj platformi gde je infrastruktura zajednički servis
- PRD ili SRD već pokrivaju tehnološka ograničenja dovoljno detaljno
- Projekat je prototip ili eksperiment bez infrastrukturnih obaveza
Šta TRD sadrži
Osnovne sekcije
TRD obično uključuje šest sekcija:
-
Uvod — svrha dokumenta, opseg sistema, odnos sa drugim dokumentima (PRD, SRD, arhitekturna dokumentacija) i definicije tehničkih pojmova.
-
Hardverski zahtevi — specifikacije fizičkih servera, mrežne opreme, sistema za skladištenje, IoT uređaja ili krajnjih korisničkih uređaja koji su sistemu potrebni.
Komponenta Specifikacija Količina Namena Aplikativni server 16 vCPU, 64GB RAM, 500GB SSD 3 Primarni aplikativni sloj Server baze podataka 32 vCPU, 128GB RAM, 2TB NVMe 2 Primarni + replika Load balancer F5 Big-IP ili ekvivalent 1 Distribucija saobraćaja -
Softverski zahtevi — operativni sistemi, runtime okruženja, baze podataka, message brokeri, slojevi za keširanje i sav softver trećih strana od koga sistem zavisi.
Softver Verzija Licenca Namena Ubuntu Server 24.04 LTS Open source OS za aplikativne servere PostgreSQL 16.x Open source Primarna baza podataka Redis 7.x Open source Session keš i ograničavanje brzine Node.js 22 LTS Open source Application runtime Nginx 1.27+ Open source Reverse proxy -
Zahtevi za platformu i infrastrukturu — servisi cloud provajdera, konfiguracija mreže, DNS, CDN, orkestracija kontejnera, zahtevi za CI/CD pipeline i specifikacije okruženja (development, staging, production).
Za cloud deployovanje:
Servis Provajder Konfiguracija Namena Compute AWS EC2 / GCP GCE c6i.4xlarge ili ekvivalent Aplikativni serveri Baza podataka AWS RDS / GCP Cloud SQL Multi-AZ, automatski backup-i Managed PostgreSQL Object storage S3 / GCS Standard tier, verzionisanje uključeno Upload fajlova, backup-i CDN CloudFront / Cloudflare Globalno edge keširanje Isporuka statičkih resursa -
Zahtevi za bezbednost i compliance — standardi šifrovanja (u mirovanju, u prenosu), infrastruktura za autentifikaciju i autorizaciju, segmentacija mreže, alati za skeniranje ranjivosti, compliance okviri (SOC 2, HIPAA, GDPR, PCI-DSS) i njihove tehnološke implikacije.
-
Dodaci — mrežni dijagrami, dijagrami arhitekture okruženja, matrice za poređenje vendora, proračuni kapaciteta, rečnik pojmova i dnevnik promena.
Key insight
TRD treba da specificira zahteve, a ne detalje implementacije. „Sistemu je potrebna relaciona baza podataka sa ACID garancijama, point-in-time oporavkom i read replikama” je zahtev. „Koristiti PostgreSQL 16 na AWS RDS” je odluka o implementaciji koja može da se pojavi u TRD-u kada je tehnološki izbor napravljen i odobren.
TRD i drugi dokumenti zahteva
TRD radi uz SRD, a ne u sekvenci:
MRD → BRD → PRD → FRD → SRD
↑
TRD (infrastrukturni sloj)
| Dokument | Definiše | Primer |
|---|---|---|
| SRD | Šta softver radi i koliko dobro | „Sistem odgovara u roku od 200ms na P95” |
| TRD | Koja infrastruktura ga podržava | „Potrebna su 3 app servera sa 16 vCPU svaki iza load balancer-a” |
| FRD | Kako se sistem ponaša | „Korisnik klikne reset → prima email u roku od 60s” |
SRD kaže „sistem mora da podrži 10.000 istovremenih korisnika”. TRD kaže „da bi podržao 10.000 istovremenih korisnika, sistemu su potrebne tri c6i.4xlarge instance sa auto-skaliranjem konfigurisanim da doda kapacitet na 70% CPU”.
Tipične greške
1. Mešanje funkcionalnih zahteva sa tehničkim zahtevima. „Sistem mora da dozvoli korisnicima upload fajlova do 100MB” je funkcionalni zahtev (FRD). „Sistemu je potrebno S3-kompatibilno object skladište sa ograničenjem upload-a od 100MB konfigurisanim na reverse proxy-ju” je tehnički zahtev (TRD).
2. Specificiranje tehnologije bez obrazloženja. „Koristiti Kafka” nije zahtev. „Sistemu je potreban distribuirani message broker sa at-least-once isporukom, mogućnošću ponavljanja poruka i propusnošću od 50.000 poruka/sekundi” jeste zahtev. Da li se to prevodi u Kafka, Pulsar ili Redpanda je odluka o implementaciji.
3. Ignorisanje pariteta okruženja. TRD treba da specificira zahteve za sva okruženja — development, staging i production. Ako developeri pokreću sistem na jednom Docker kontejneru, ali produkcija zahteva Kubernetes klaster sa 12 čvorova, TRD dokumentuje oboje.
4. Bez planiranja kapaciteta. TRD bez projekcija kapaciteta postaje zastareo čim saobraćaj poraste. Uključite očekivano opterećenje pri lansiranju, projektovani rast (6 meseci, 12 meseci) i infrastrukturne promene potrebne u svakoj fazi.
5. Zaboravljanje licenci. Licence komercijalnog softvera, SaaS pretplate i troškovi cloud servisa pripadaju u TRD. Otkrivanje da database engine zahteva licencu od 50.000$/godišnje nakon što je arhitektura finalizovana je problem koji se mogao sprečiti.
Resursi
- TRD šabloni — spremni za korišćenje
- TRD generator prompt — napravite TRD koristeći AI
- SRD — kompletan vodič — specifikacija softverskih zahteva
- FRD — kompletan vodič — specifikacija funkcionalnog ponašanja
- Navigator prompt — pronađite pravi tip dokumenta