Capturing the “user requirement” has always been the most critical phase in systems engineering. The problem becomes even more complicated in software engineering where uncertainty of the functions to implement and volatility of the user needs are the rule. In the past, this initial difficulty of the software production phase was tackled by the requirement engineers using formal methods to structure the dialogue with the user. The solutions offered by this discipline are controversial. Agile methods put once again the human factor at the center of the user needs capture phase, using the intrinsic nonlinearity of the human mind to translate the user stories into software development. Although this practice has a positive outcome, the built-in ambiguity of the natural language is a consistent limit. An attempt to structure this dialogue without disturbing the “Agile” approach is presented, and some considerations on the possibility of using semantic tools are made.