Job description
Software Developers
Job purpose
To research, design, develop and modify computer and network software and specialised utility applications, analysing user needs against time and cost constraints and setting the performance standards systems must meet, so that the organisation's software works reliably as needs and hardware change.
Skills
- Deep knowledge of computers and electronics — hardware, operating environments, applications and programming — applied through software design, systems analysis, systems evaluation and technology design, and supported by mathematics used to model design outcomes; customer requirement analysis and clear written English turn a stated need into a workable specification. A bachelor's degree is held by the large majority, with a small minority entering from a two-year degree, plus several years of related experience and on-the-job training.
- Confers with systems analysts, engineers, programmers and project managers to establish project limitations, performance requirements and interfaces, and consults customers and other departments on project status, proposals and technical issues. Technical matter has to be interpreted for non-specialists, and users trained on new systems. May supervise and assign work to programmers, designers, technologists and technicians.
- Analyses user needs and software requirements to determine whether a design is feasible within time and cost, and whether to recommend a new system or modify an existing one, then designs and modifies systems using scientific analysis and mathematical models to predict outcomes. Corrects errors in existing software, adapts it to new hardware and upgrades interfaces. Problems are frequently novel and under-specified; precedent lies in established engineering method rather than a prescribed answer, and a design settled now constrains the system for years.
- Determines system performance standards, develops or directs testing, validation and documentation procedures, and organises own work across concurrent projects and delivery dates, coordinating installation with other technical staff. Priorities are largely self-set within the scope agreed with project management.
- Work is carried out seated at a workstation, with continuous keyboard and screen use and routine handling of computer equipment. No lifting or manual handling demands.
Responsibilities
- No general line management. May supervise and assign work to programmers, designers, technologists and technicians, and coordinates others on project work. The work of other technical staff depends on the specifications set here.
- Holds no budget. Assesses design feasibility against cost as well as time, and weighs cost, reporting format and security needs when determining hardware configuration; recommendations shape what the organisation spends, but authority to commit rests above the role.
- Ordinary care of a workstation and the development environments used. Monitors equipment to confirm the system runs in conformance with specifications, coordinates software installation, and specifies hardware configuration.
- Accountable for the software itself and for the record of it: stores, retrieves and manipulates data for analysis of system capabilities, may maintain databases within an application area, and produces the specifications, performance standards and status reports others depend on. Exactness is critical, since a defect passes into live operation, and the structure of the technical record is largely set by the postholder.
Effort required
- Sustained analytical concentration: holding a system's structure in mind while writing and modifying code, and reasoning about how a change propagates across interfaces and hardware. Attention switches between design, correction, consultation and reporting, to a standard of exactness where a small error is consequential, under deadline pressure on concurrent projects.
- Little exposure to distress or hostility. Demand arises from personal accountability for work whose failures are visible and traceable, and from reconciling conflicting requirements between users, engineers and managers in a competitive setting.
- Almost entirely seated, with continuous keyboard and screen work and repeated use of the hands to handle and control computer equipment. No lifting or exertion.
Working conditions
- Indoor, environmentally controlled office accommodation, with no exposure to hazardous conditions, contaminants, noise or weather. Contact is with colleagues, project managers and customers by e-mail, telephone and face-to-face discussion, with no dealing with unpleasant or aggressive people recorded. Psychological demand comes from exacting accuracy and deadlines.
- Almost all incumbents work a regular established schedule, and a working week of about forty hours is the norm, with only a small minority exceeding it. Delivery dates generate genuine time pressure, and stretches of repetitive detailed work sit alongside original design work. Autonomy is considerable, with tasks, priorities and goals largely self-determined within an assigned project.