Skip to content

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 / SRESpecifikacije servera, cloud servisi, umrežavanje, alati za monitoring
Backend inženjeriZahtevi za baze podataka, verzije runtime-a, ograničenja zavisnosti
Bezbednosni timStandardi šifrovanja, kontrola pristupa, compliance zahtevi
NabavkaSpecifikacije hardvera, troškovi licenci, zahtevi za vendore
Projektni menadžeriTehnološ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:

  1. Uvod — svrha dokumenta, opseg sistema, odnos sa drugim dokumentima (PRD, SRD, arhitekturna dokumentacija) i definicije tehničkih pojmova.

  2. 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.

    KomponentaSpecifikacijaKoličinaNamena
    Aplikativni server16 vCPU, 64GB RAM, 500GB SSD3Primarni aplikativni sloj
    Server baze podataka32 vCPU, 128GB RAM, 2TB NVMe2Primarni + replika
    Load balancerF5 Big-IP ili ekvivalent1Distribucija saobraćaja
  3. 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.

    SoftverVerzijaLicencaNamena
    Ubuntu Server24.04 LTSOpen sourceOS za aplikativne servere
    PostgreSQL16.xOpen sourcePrimarna baza podataka
    Redis7.xOpen sourceSession keš i ograničavanje brzine
    Node.js22 LTSOpen sourceApplication runtime
    Nginx1.27+Open sourceReverse proxy
  4. 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:

    ServisProvajderKonfiguracijaNamena
    ComputeAWS EC2 / GCP GCEc6i.4xlarge ili ekvivalentAplikativni serveri
    Baza podatakaAWS RDS / GCP Cloud SQLMulti-AZ, automatski backup-iManaged PostgreSQL
    Object storageS3 / GCSStandard tier, verzionisanje uključenoUpload fajlova, backup-i
    CDNCloudFront / CloudflareGlobalno edge keširanjeIsporuka statičkih resursa
  5. 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.

  6. 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)
DokumentDefinišePrimer
SRDŠta softver radi i koliko dobro„Sistem odgovara u roku od 200ms na P95”
TRDKoja infrastruktura ga podržava„Potrebna su 3 app servera sa 16 vCPU svaki iza load balancer-a”
FRDKako 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