Job description
Computer Programmers
Job purpose
To write, test, correct and maintain the code and scripts that allow computer applications to run, working from specifications drawn up by software and web developers, so that programs produce the results intended and continue to meet changing operational requirements.
Skills
- Command of computer hardware and software, applications and programming languages, together with symbolic logic and the workflow charting used to describe input, output and logical operation; applied mathematics; engineering and technology; and written English of a standard sufficient for development documentation and end-user manuals. Understanding of the subject matter the code serves — inventory tracking, data storage and retrieval, equipment control. A bachelor's degree is the norm, with a small minority holding an associate's degree, together with several years of related experience and on-the-job training.
- Consults managerial, engineering and technical personnel to clarify the intent of a program, identify problems and suggest changes, and works with computer operators and systems analysts to define and resolve problems in running programs. Contributes instructions and manuals to guide end users and trains users in the function of the programs supplied, translating logical and technical matter for people who do not share the specialism. Contact is by e-mail, telephone and face-to-face discussion, largely inside a development team.
- Analyses, reviews and rewrites existing code, and corrects errors by making the appropriate change and rechecking that the intended result is produced. Determines whether networks, workstations, the central processing unit or peripheral equipment are responding to a program's instructions, and revises, repairs or expands existing programs to raise operating efficiency or meet new requirements. Problems are technical and are tested against a determinable correct outcome, with precedent available in the existing code, documentation and specification; the judgement lies in locating the fault and choosing between rewriting and adapting.
- Converts charts and diagrams into coded instructions and conducts trial runs on a planned basis to confirm that instructions are correct before release. Priorities are framed by specifications set by developers and by requests from technical colleagues, within which there is latitude to determine own tasks and sequence, and delivery is under time pressure.
- Keyboard-based work at a workstation using development tools, involving sustained sitting and repeated hand movements. No manual handling or lifting demands.
Responsibilities
- Assigns, coordinates and reviews the work and activities of programming personnel and trains subordinates in programming and coding, without holding general line management. Advises technical and managerial colleagues on what a change to a program will and will not achieve.
- No budget is held and no spend committed. Estimates the time, resources and materials a piece of development work will need, which informs planning decisions taken above the role.
- Ordinary care of a workstation and development software. Tests whether workstations, networks, the central processing unit and peripheral equipment respond correctly to a program's instructions.
- Owns program source code, workflow charts and diagrams, development and revision documentation, and the comments inserted in coded instructions so that others can follow the logic. Writes and maintains programs that store, locate and retrieve specific documents, data and information. Accuracy is central: a defect carried into a working program affects co-workers and company results.
Effort required
- Sustained close concentration converting logical operations into exact coded instructions and reading existing code to locate the cause of an incorrect result, where a single wrong character produces the wrong output. The work is delivered under time pressure.
- Personal accountability for code that others depend on, in a field where technical currency must be maintained and where comparison with others' technical performance is a feature of the work. Much of the coding and rechecking is repetitive in character. The source records no exposure to conflict, hostility or distressing material.
- Seated at a workstation for the greater part of the working day, with repeated hand and keyboard movements. No lifting or exertion.
Working conditions
- Indoor, environmentally controlled office work, with no exposure to weather, noise, hazardous conditions or equipment, and no protective equipment required. A substantial volume of contact by e-mail, telephone and face-to-face discussion within a work group.
- Almost all incumbents work a regular established schedule; shift, rota, on-call and unsocial-hours working are not features of the role. Delivery is under time pressure, and the work carries a degree of freedom to make decisions and to determine own tasks, priorities and goals within specifications drawn up by others. Decisions and errors have consequences for co-workers and for company results.