When you are working in non-IT company, then as an IT staff, you will be assigned to make program to support operational in the company. You will have meeting with end users. This is the first step you will undergo before programming. The quality of program you create, will depend on how you understand user need. You need to translate user statement into system design. The design need to be translated into program specification. In small application, user requirement could be directly transformed into programming. but in medium up to large application, the system design and program spec needs to be created first. After system design created, then you need to meet end user again, to confirm whether the design match with user need. End user might change his mind, and he ask a different with previous one. you need to accommodate the change. Grasping requirement change as early as possible will avoid redundant tasks, and to speed up programming.