* assist systems analysts and/or designers in researching and documenting computer users' requirements
* analyse objectives and problems specified by analysts and/or designers
* translate the solutions provided by systems designers into detailed program specifications
* prepare documentation for other programmers, users of the system and other support services workers
* undertake program design activities including definition of data and error message arrangements
* supervise and report on work of more junior programmers
* modify and document program code to correct errors or to enhance a program's capabilities
* test the programs and make amendments
* prepare reports on the status, operation and maintenance of system software for use by computer equipment suppliers, systems designers, other programmers and computer operators.