Programming: The Art of Helping a Client Discern Their Needs