Who is responsible for identification of non-functional requirements?
I always thought the answer is obvious until I've seen 2 big companies thinking "business forms requirements, so product owners should identify NFRs".
Both of them are struggling with quality of NFRs POs produce.
Imagine we develop online book shop. Unavailable book shop means we lose our money, so availability is very important for us.
So what does product owner do? He says "Our online book shop should be 100% available".
Devs spend years to achieve it and still cannot. The system becomes very expensive to maintain.
What does architect do in this case?
He asks PO how long book delivery is and finds out it's about 7 days.
He asks PO in what time zone our customers live and finds out that our system is almost not used 5 hours per day.
An architect states the following availability NFR - Order management should be available 79% of time.
- We don't care about other parts, 7 days delivery overlap any hours of downtime for end users.
- Remember 5 hours of inactive time per day?
Identification of NFRs requires not only deep technical expertise but also wide knowledge that usually only an architect has.
NFRs are often called architecture characteristics. Maybe with such naming it's harder to confuse their ownership.


