Yagni originally is an acronym that stands for "You Aren't Gonna Need It". It is a mantra from Extreme Programming that's often used generally in agile software teams. It's a statement that some capability we presume our software needs in the future should not be built now because "you aren't gonna need it".
On the surface, the world of agile software development is bright, since it is now mainstream. But the reality is troubling, because much of what is done is faux-agile, disregarding agile's values and principles. The three main challenges we should focus on are: fighting the Agile Industrial Complex and its habit of imposing process upon teams, raising the importance of technical excellence, and organizing our teams around products (rather than projects).
Picture a blind man probing his way with a cane. While he is alert to the feelings in the hand holding the cane, the crucial distinction may be defined by saying that these feelings are not watched in themselves, but that he watches something else by way of them, that is, by keeping aware of them. He has a subsidiary awareness of the feelings in his hand, feelings which are merged into a focal awareness at the end of the cane, constituting two kinds of awareness that are mutually exclusive — "from awareness" and "focal awareness".
There is here a particularly interesting phenomenal transformation. The sensations of the cane on his hand (the surface of the cane as it touches the palm of his hand, etc.) are lost. Instead, he feels the end of the cane as it touches an object...If our blind man shifts his attention from the tip of his cane to his hand, the meaning on the end of the cane disappears.