------------------------------------------------------------------
Programmer/Analyst

UCI Series Concepts

Class Specifications - F.15
Programmer/Analyst I - 7278
Programmer/Analyst II - 7277
Programmer/Analyst II - Supervisor - 7276
Programmer/Analyst III - 7275
Programmer/Analyst III - Supervisor - 7274
Programmer/Analyst IV - 7273
Programmer/Analyst IV - Supervisor - 7272
Programmer/Analyst V - 7271
Programmer/Analyst V - Supervisor - 7270

April, 1986

******************************************************************

SERIES CONCEPT


This series encompasses computer programming and/or systems analysis. Because
the duties of programmers and analysts almost always overlap, the broad scope
of this series is intended to reasonably accommodate both types of work.

NOTE: This series is NOT intended for positions that use computers as a tool,
e.g., for data analysis, data retrieval, report writing.  Such positions
should be classified according to their primary functional responsibilities.

Computing specialities may include, but are not limited to: systems software;
administrative applications; scientific applications; research, instructional,
or administrative user services/consulting; databases; data communications/
networks. It is recognized that these specialties differ in terms of required
technical knowledge and complexity; therefore, positions at the operational
level of each specialty may vary in classification.

Programmers/Analysts: Define and analyze problems to effect computer-oriented
solutions; gather information, prepare charts and documents describing what
needs to be done and how it is to be done; analyze existing systems; design
new systems; develop new forms, reports, and screens; confer with users
(management, instructional, research, medical, or administrative); design and
code; develop test data; test and debug programs; document all procedures
utilized by programs; evaluate and/or modify computer programs; select
precoded program elements; develop special and general or multi-purpose
programs to facilitate interface with a computer; install, document and
maintain compilers, programming and other software packages, and database
systems; monitor systems performance; plan, design and implement data
communications networks, including computer-to-computer links, terminal to
mainframe links, and microcomputer-to-microcomputer links; provide assistance
to users on how to use computing facilities; provide one-on-one consulting;
teach courses; prepare documentation, evaluate hardware and software; and
specialize in programming languages, use of microcomputers, or graphics,
depending on the needs of the unit or campus.

Reference attached "Definition of Terms" for the accepted definitions of the
complexity of tasks for the positions classified as Programmers/Analysts.

Skills range from those needed at the entry level up to those used to develop
major systems. Actual positions may use different working titles appropriate
to the office, campus, or situation, as determined by local management.

The Programmer/Analyst series specifically recognizes supervisory
responsibility in four of its five levels (II - V). Positions allocated to
the supervisory titles in this series must meet the criteria for supervision
as defined in the Supplemental Guidelines for Supervisor Classes (SAM 12).

                         CLASS CONCEPTS


Programmer/Analyst I

Under close supervision, incumbents perform programming and/or systems
analysis tasks for routine application programs. Incumbents may assist in
programming and analysis of systems in a trainee capacity. This is normally
considered the entry level for the series for incumbents who have had some
exposure to the fundamentals of programming or analysis.


Examples of duties typically include:

1.   Assist with design, analysis, maintenance, documentation, and testing of
     software.

2.   Code, debug, test, and document routine application programs.

3.   Install and test routine software packages.

4.   Assist users with procedural or minor technical problems.

5.   Advise or train users regarding the technical aspects and use of standard
     software packages.

6.   Assist in maintaining program libraries, users' manuals, or technical
     documentation.

Programmer/Analyst II
Programmer/Analyst II-Supervisor


Under supervision, incumbents perform operational-level programming and 
systems analysis functions for routine application systems or for portions of
moderately complex or complex systems. A position at this level may be the
sole computing professional in a department. A position at this level may
supervise lower level computing or other support staff.

Examples of duties typically include:

1.  Design new systems or enhancements to existing systems.

2.  Determine source data (input), processing requirements (output), output
    formats, timing and cost estimates.

3.  Verify that system meets performance criteria.

4.  Design, implement, and document procedures.

5.  Design/modify, code, debug, test, and document moderately complex
    application systems.

6.  Install and test moderately complex software packages.

7.  Install and maintain operating systems software in a small computing
    center or assist in installing and maintaining operating systems software
    in a medium to large computing center, e.g., operating systems, data base
    software, data communication/network software, and utility software.

8.  Develop and/or teach seminars, workshops, or classes to users or other
    Programmer/Analysts on the technical aspects or use of computer hardware,
    software packages or application systems.

9.  Consult on the use of moderately complex software packages.

10.  Advise users regarding program techniques and design.

11.  Maintain program libraries, users' manuals, or technical documentation.

Programmer/Analyst III
Programmer/Analyst III-Supervisor


Under general supervision, incumbents perform programming and/or systems
analysis for moderately complex or complex application system.  Assignments
typically require either advanced knowledge of hardware, software, or systems
analysis techniques and standards, or specialized knowledge of a subject
matter, discipline, or administrative function.  Positions in this class may
have project leadership or supervisory responsibility over several
Programmer/Analysts with responsibility for more than one portion of a system,
or be responsible for a portion of a complex system with no supervisory
responsibilities.  Incumbents work on multiple tasks that are not necessarily
well defined; make recommendations that may have an impact on an entire
project or system, or on a medium-to-large-scale computing facility.
Incumbents may provide on a continuing basis advanced technical guidance to
others at the same or lower level.

In addition to performing work described at Level II, examples of duties
typically include:

1.   Work with users in designing moderately complex application systems or
     portions of complex application systems.

2.   Prepare cost/benefit analysis of alternative solutions.

3.   Specify alternate program design approaches.

4.   Install or maintain complex applications systems or complex software
     packages, which require knowledge of interfaces and of the impact on
     users.

5.   Install and maintain operating systems software in a medium to large
     computing center, e.g., operating systems, database software, data
     communication/network software, and utility software.

6.   Provide consulting service in specialized programming languages and
     software.

Programmer/Analyst IV
Programmer/Analyst IV-Supervisor


Under direction, incumbents work as functional leader or as technical experts.

FUNCTIONAL LEADER

As a functional leader, incumbents provide leadership for planning,
development, implementation, maintenance, and documentation of large systems
using multiple functions and crossing organizational lines:  

.   Supervise Programmer/Analyst staff working on multiple projects affecting
    several departments;

.   Select and train staff in systems analysis and design techniques, machine
    approach, programming, time estimation, and scheduling;

.   Provide technical review and direction;

.   Plan and develop processing systems by conferring with high-level
    management to determine problems and feasibility of departmental
    requests;

.   Analyze proposed new systems or changes to existing systems in terms of
    cost, benefit, timeliness, and effectiveness.

TECHNICAL EXPERT

As a technical expert, incumbents function as top-level technical contributors
in a computing speciality.  Exhibits full technical mastery of system
internals and operating systems software and hardware interrelationships.
This is the advanced operational level for complex software support typically
in a large or multiple-CPU computing environment.

.    Design, evaluate programs, or provide advanced technical direction for
     systems with multiple tasks or interfaces, including responsibility for
     system integrity, recoverability, and controls.

.    In a large or multi-CPU computing environment with campus-wide impact,
     install, maintain, administer, monitor, or consult on  operating systems
     software with responsibility for performance and reliability.  This
     includes operating systems, databases, data communications/networks,
     teleprocessing monitors, or similar software.

Programmer/Analyst V
Programmer/Analyst V-Supervisor


Under general direction, incumbents work as functional leaders or as creative
technical experts.

FUNCTIONAL LEADER

As a functional leader, incumbents perform Level IV functional leader duties,
supervise two or more Level IV programmer/analysts, and perform one of the
following:

.   Manage small, highly technical software groups, e.g., network
    programming, systems software, or database systems in a large-scale
    mainframe environment.

                                     OR

.   Manage multiple projects or teams having campus-wide impact or
    involvement; formulate policy; determine priorities and resource
    requirements, typically in a large-scale mainframe environment.

TECHNICAL EXPERT

As a creative technical expert, incumbents:

.   Design or develop state-of-the-art operating software systems in a
    large-scale or linked multiple CPU environment, usually with multiple
    vendor systems software or control programs.  The technical systems
    contributions are original, innovative, and significant.  Typically,
    design is for teleprocessing monitors, database software, compilers,
    networks, multiple-user interactive systems, operating system, or
    similarly complex products.

                     MINIMUM QUALIFICATIONS

Minimum qualifications:  Incumbents are expected to possess the skills,
knowledge, and abilities essential to the successful performance of the duties
assigned to the positions.

NOTE:  Special qualification requirements are approved by the Personnel
       Manager in accordance with the provisions of Staff Personnel Policies
       210.8 and 210.9.

                        DEFINITION OF TERMS

The accepted definition of terms describing the size of the computing
environment and the complexity of tasks for positions classified as Computing
Resource Managers and Programmer/Analysts are as follows:

COMPUTER CENTER - SMALL              An organization responsible
                                     for operating at least one
                                     minicomputer, for operating
                                     computers supporting up to
                                     100 workstations con-
                                     currently, or for support
                                     of more than 50
                                     microcomputers.

COMPUTER CENTER - MEDIUM             An organization responsible
                                     for operating at least two
                                     minicomputers with
                                     different operating
                                     systems supporting 100-300
                                     work stations, one
                                     mainframe computer
                                     supporting 100-300 work
                                     stations concurrently, or
                                     more than one mainframe
                                     computer.

COMPUTER CENTER  -  LARGE            An organization responsible
                                     for operating at least
                                     three mainframe computers
                                     or one mainframe computer
                                     supporting more than 300
                                     work stations concurrently.

ROUTINE APPLICATIONS PROGRAMS        An application program
                                     using compiled language
                                     which reads up to two
                                     files, performs processing
                                     involving arithmetic
                                     operations, character
                                     search or sorting, and
                                     creates output.

MODERATELY COMPLEX APPLICATIONS SYSTEM    An integrated set of up to
                                          five user written programs
                                          using compiled language
                                          which read from multiple
                                          files or Data Base
                                          Management System (DBMS)
                                          based data base; processes
                                          intermediate files using
                                          arithmetic functions,
                                          character manipulation, and
                                          sorting; writes the
                                          processed data to one of
                                          several output files based
                                          on processing results; and
                                          produces multiple outputs.

COMPLEX APPLICATIONS SYSTEMS              A highly integrated set of
                                          programs with the
                                          following: each program
                                          using compiled language may
                                          read multiple files or a
                                          DBMS based data base;
                                          process intermediate files
                                          using the full range of
                                          software functions
                                          available; write the
                                          processed data to multiple
                                          output files based on
                                          processing results; update
                                          the master files, if any,
                                          with a capability for full
                                          error recovery; and produce
                                          multiple output.

ROUTINE SOFTWARE PACKAGES                 Vendor supplied and
                                          maintained sets of programs
                                          which do not require
                                          modification of the
                                          operating system (systems
                                          software) to install nor
                                          user configuration.

SOFTWARE PACKAGES OF MODERATE COMPLEXITY  Vendor supplied and
                                          maintained sets of programs
                                          which do not require
                                          modification of the
                                          operating system to
                                          install, but do require
                                          user configuration during
                                          the installation process.

COMPLEX SOFTWARE PACKAGES                 Vendor supplied and
                                          maintained sets of programs
                                          which require modification
                                          of the operating system
                                          (systems software) to
                                          install.

OPERATING SYSTEMS SOFTWARE                Software that is
                                          fundamental to the
                                          operation and maintenance
                                          of a computer system, often
                                          vendor-supplied. It serves
                                          as an interface between the
                                          hardware and programs
                                          written to support
                                          applications.

******************************************************************