• Establishing a detailed program specification through discussion with clients; • Clarifying what actions the program is intended to perform; • Breaking down program specification into its simplest elements and translating this logic into a programming language; • Improves operations by conducting systems analysis; recommending changes in policies and procedures. • Develops software solutions by studying information needs; conferring with users; studying systems flow, data usage, and work processes; investigating problem areas; following the software development lifecycle.