No one is expecting you to build the entire thing in 2-4 weeks (1-4 weeks to be accurate if we're talking Scrum). The intent is to have a potentially shippable increment at the end of 1-4 weeks which you can demo to a customer (or someone who can credibly speak for them) and get feedback.
The idea is that when you combine software, markets, and people's opinions, you're now in a complex adaptive system, where you acting within the system changes the system, and where you can never know enough about it to make long-term plans any more than you can forecast what the weather will be on management's "due date." So you use fast feedback loops to learn as you go and build the right thing as it's needed now, not two years ago.
The idea is that when you combine software, markets, and people's opinions, you're now in a complex adaptive system, where you acting within the system changes the system, and where you can never know enough about it to make long-term plans any more than you can forecast what the weather will be on management's "due date." So you use fast feedback loops to learn as you go and build the right thing as it's needed now, not two years ago.