-Develop and test software to meet consumers' and clients' needs.
-Recommend and develop upgrades for existing applications.
-Create models and diagrams to show programmers the code needed for applications.
-Monitor quality and performance of applications through testing and maintenance.
-Document all work for future reference.