Analyze users’ needs and then design, test, and develop software to meet those needs
Recommend software upgrades for customers’ existing programs and systems
Design each piece of an application or a system and plan how the pieces will work together
Create a variety of models and diagrams (such as flowcharts) that instruct programmers how to write software code
Ensure that a program continues to function normally through software maintenance and testing
Document every aspect of an application or a system as a reference for future maintenance and upgrades
Collaborate with other computer specialists to create optimum software