Analyses user requirements, procedures, and problems to automate processing or to improve existing computer system: Confers with personnel of organizational units involved to analyse current operational procedures, identify problems, and learn specific input and output requirements, such as forms of data input, how data is to be summarized, and formats for reports. Writes detailed description of user needs, program functions, and steps required to develop or modify computer program. Reviews computer system capabilities, work-flow, and scheduling limitations to determine if requested program or program change is possible within existing system. Studies existing information processing systems to evaluate effectiveness and develops new systems to improve production or work-flow as required. Prepares work-flow charts and diagrams to specify in detail operations to be performed by equipment and computer programs and operations to be performed by personnel in system. Conducts studies pertaining to development of new information systems to meet current and projected needs. Plans and prepares technical reports, memoranda, and instructional manuals as documentation of program development. Upgrades system and corrects errors to maintain system after implementation. May assist COMPUTER PROGRAMMER (profess. & kin.) 030.162-010 in resolution of work problems related to flow charts, project specifications, or programming. May prepare time and cost estimates for completing projects. May direct and coordinate work of others to develop, test, install, and modify programs.
Plans, develops, tests, and documents computer programs, applying knowledge of programming techniques and computer systems: Evaluates user request for new or modified program, such as for financial or human resource management system, clinical research trial results, statistical study of traffic patterns, or analysing and developing specifications for bridge design, to determine feasibility, cost and time required, compatibility with current system, and computer capabilities. Consults with user to identify current operating procedures and clarify program objectives. Reads manuals, periodicals, and technical reports to learn ways to develop programs that meet user requirements. Formulates plan outlining steps required to develop program, using structured analysis and design. Submits plans to user for approval. Prepares flowcharts and diagrams to illustrate sequence of steps program must follow and to describe logical operations involved. Designs computer terminal screen displays to accomplish goals of user request. Converts project specifications, using flowcharts and diagrams, into sequence of detailed instructions and logical steps for coding into language processable by computer, applying knowledge of computer programming techniques and computer languages. Enters program codes into computer system. Enters commands into computer to run and test program. Reads computer printouts or observes display screen to detect syntax or logic errors during program test, or uses diagnostic software to detect errors. Replaces, deletes, or modifies codes to correct errors. Analyses, reviews, and alters program to increase operating efficiency or adapt to new requirements. Writes documentation to describe program development, logic, coding, and corrections. Writes manual for users to describe installation and operating procedures. Assists users to solve operating problems. Recreates steps taken by user to locate source of problem and rewrites program to correct errors. May use computer-aided software tools, such as flowchart design and code generation, in each stage of system development. May train users to use program. May oversee installation of hardware and software. May provide technical assistance to program users. May install and test program at user site. May monitor performance of program after implementation. May specialize in developing programs for business or technical applications.