How do you build something piece by piece?

I love how everything has a fancy name now. We’ve been doing StartInTheMiddle / MinimumViableProduct / Prototyping / GetSomethingOut / StepwiseRefinement for years: 

Customer: I must have anything I want from the database without asking you. 

Me, 1 hour later: No problem, here’s your screen. 

Customer: This only does does Customers. I want to pick “any” table. 

Me, 1 hour later: No problem, now you can pick your table. 

Customer: This dumps every column. I want to pick my own. 

Me, 1 hour later: No problem. Now you can pick your columns. 

Customer: This doesn’t sort. I want it to sort. 

Me, 1 hour later: No problem. Now you can sort. 

Customer: But I want multiple sorts, some ascending, some descending. 

Me, 1 hour later: No problem. Sort any way you want. 

Customer: It dumps the whole table. I want to filter. 

Me, 1 hour later: No problem. Now you can filter. 

Customer: It only give me local columns. I want columns from other tables, too. 

Me, 5 mins later: Give me an example. 

Customer: Here. Give me these linked columns and accumulators, too. 

Me, 2 days later: OK. I figured out how to give you all this data too. 

Customer: OK. This will work. Why didn’t you do all this in the first place? 

Stepwise Refinement Method: Time to beta: 1 hour. Time to production: 3 days. 

Waterfall Method: Time to beta: not applicable. Time to production: who knows?