Understanding client requirements and how they translate to new application features Collaborating with development team and other IT staff to set specifications for new applications writing high-quality code to program complete applications on schedule