I'm in R&D working on a new software product.
Management understandably focuses on the primary features that most obviously give a customer an advantage. But there are many requirements that can be seen as important as well (ex. performance, future extensibility, data traceability, security, smooth UI). These implicit requirements are probably the larger in number for any product, and if unfulfilled can lead to an unhappy customer.
I'm afraid that it is somehow expected that during development these things will become automatically implemented. For me though, everything is an atomic aspect that requires it's own attention and development effort.
I have a feeling that management may be too busy to pay too much attention to such aspects. For the sake my own developer pride, quality control, and being able to account the effort I spend, when and how should I document and communicate implicit requirements?
(i.e. features that exist in a product, but which haven't been explicitly talked about with either the customer or management)
Thanks for the interest in the question, the main gist of the answers up to now seems to be:
"You need to make implicit requirements explicit."
Rats... that didn't occur to me.
The requirements I mean can be of the following types:
- The customer can't hear about these requirements, because I will be presenting a long list of ways in which the product can fail, instead of talking about how it will make them happy.
- Busy management feels that I'm wasting their time, when I talk about "obvious" features.
- I will only be able to describe some of these requirements during implementation. During planning I may just have a gut feeling that a particular issue might require focused effort during development.
- I'm not at the necessary height in the company totem-pole to dictate my working conditions.
I'm asking for guidelines how to semi-formalize [implicit] requirements, while putting in less effort than for full-blown requirements, but keeping me prepared for judgement day, so that I'm not caught empty handed.