I was once a tech lead of a team where the architect had been berating and criticizing a team member for weeks over something he thought should take a day.
I suggested he should take over and complete it. It took him weeks to complete.
If berate is truly the appropriate word (upon investigation), and I had any say in the matter, I would fire his toxic ass immediately.
As I've gotten more experience as a developer, I've realized that most tasks take longer than I used to estimate..usually because I want to come up with a long-term solution and not just hack something together with no testing.
If you need a line in a document to tell you that exposing privileged information to the outside world is a bad idea, or that you should make sure the solution you are designing has a reasonable chance of servicing the expected load then you probably shouldn't be a developer.
The last time I seen explicit non-functional requirements the had something like "the solution should have a 99.99% uptime." I realised that our down time for releases (old school I know) was more than that and promptly ignored them.
Based on my own experience with NFRs, these are perfectly reasonable questions.
> I asked them about [the non-functional requirements for this project] and they had to ask [please give me details on those requirements]
or is it
> I asked them about [non-functional requirements as a general concept] and they had to ask [what are these new things you speak of, I have never heard of such a thing]
?
The former is reasonable, the latter less so.
Requirements like "The system must be secure.", "The system must not go down.", or "The system must not have performance issues."
I'm lost as to what the purpose of such statements are as they don't let me know where real focus needs to be given. Not every system is mission critical and deserves equal resources devoted to ensure uptime.
It's like saying mobile devices must be supported. Does that mean only top of the line recent releases? Does that mean 8 year old smartphones? Does that mean the internet browser on the Nintendo DS?
I've also seen teams where the Defintion of Done doesn't include any steps at all towards deployment. Done is when someone approves the pull request.
Not surprisingly, it takes longer for those teams to 'complete' a change. In the former case, they are continuously surprised, and angered, by 'requirements' that 'no one' told them about. In the later, they stop halfway, and wonder why everyone is waiting on them, because it's 'development complete'.