Consults and coordinates with programmers to design and develop requirements and analyze the feasibility of new systems and enhancements to existing systems; ensures the system design fits the needs of the users