What does an analyst do? What results is an analyst accountable for?

Size: px
Start display at page:

Download "What does an analyst do? What results is an analyst accountable for?"

Transcription

1 Session 1a: The Role of the Systems Analyst What does an analyst do? What results is an analyst accountable for? COMP 320/488 Fall, 2013 Conrad Weisert Preliminary Questions to think about What does a systems analyst do? How does that differ from programming? Should our best programmers become systems analysts? Is that a career path? Who are the developers? Why do we need systems analysts? What kinds of project do they contribute to? Taxonomy of system (or software) development projects 1. Application for an organization. a. Using custom developed software b. Using packaged application program products 2. Software product to be marketed 3. Software component(s) to be distributed in a component library. This course is mainly about type 1 What distinguishes such projects? Typical application (type 1) system projects Have one or more sponsoring user organizations that will: pay for the project Examples? specify (how?) and approve requirements for the application use the application after it has been delivered. The end product either: replaces (or heavily modifies) an old application system that's considered obsolete or unsatisfactory or provides some entirely new capability COMP 320 / copyright 2013 Conrad Weisert

2 Specifying a new (or heavily modified) application End-user organizations usually have the needed knowledge of their application area. But very few of them have the skills or experience needed to organize and rigorously state their requirements. Therefore, we need systems analysts as skilled intermediaries to elicit requirements from the sponsoring user organization and convey them precisely to implementors. Who are they? Taxonomy reconsidered 1. Application for an organization. a. Using custom developed software b. Using packaged application program products 2. Software product to be marketed 3. Software component(s) to be distributed in a component library. This course is mainly about type 1 Why not also types 2 & 3? Roles versus jobs Job (or position) relatively permanent individual occupies exactly one at a time recognized and administered by H.R.; tied to salary, rank, status, etc., Role exists for duration of an activity (Project roles are always temporary.) Individual may take on multiple roles at once needn't be official -- a management tool at any level Which is Systems Analyst? Some Project Roles Who else? Project manager Project sponsor (user, customer) Systems analyst Designer / Chief programmer Programmer Database manager Quality reviewer Who are the project team members? Whom does the P.M. have control over? Who are the "developers"? COMP 320 / copyright 2013 Conrad Weisert

3 Project Role Categories Project team members Project manager (or project leader) Systems analyst (or business/engineering analyst) System designer (or chief programmer or architect) Programmer Project consultants / advisors Database manager (DBA) Quality reviewer (QA) Methodology administrator Systems integrator Project sponsors Manager / funding authority Prospective end user (or actor) Defining a role To successfully manage people in the various project roles, the project manager (or whoever is in charge of the effort) must understand exactly what each role does. The incumbent should understand his or her own role in exactly the same way as the project manager does. The role definition, then, is like a contract between the incumbent and his or her boss. Therefore... An organization needs rigorous written role definitions. But what if the organization doesn't already have any role definitions? Then it's up to the project manager to define them for his or her project. Formal Role Definition Much more concrete than typical job (or position) descriptions Avoids vague activity terms, such as: participates in... assists with... contributes to... advises on... concurs in... Why not? COMP 320 / copyright 2013 Conrad Weisert

4 Are these consistent? Howard comes to work early every day and stays late. He keeps busy most of the day doing assigned tasks that the organization wants to be done. He does most of those tasks well. When he goes home, Howard feels satisfaction in what he accomplished that day. His boss just rated Howard's performance poor! What's a likely explanation? Accountability for results More important than the activities an individual engages in are the results he or she is accountable for producing. Therefore a rigorous (and useful) role definition must specify measures of accountability. 5 Role Definition structure One respected form of role definition is the so-called RAA structure, consisting of three sections: Responsibility -- The activities the incumbent performs Accountability -- The results the incumbent is expected to produce (also called "measures of performance") Authority -- What the incumbent may do without specific higher approval. Accountability versus annual objectives Many organizations require a list of goals an individual commits to accomplish during the coming year. An accountability list is a list of results the individual commits to produce continually. How are they different? Let's look at an example: Systems Analyst COMP 320 / copyright 2013 Conrad Weisert

5 The bottom line on project roles You can call the roles anything you like, as long as: Every result that must be produced (in a project or in an organization) is on the accountability list of some project role Every incumbent has both the resources and the authority to produce the results he or she is accountable for. No two roles have conflicting authority. Historical background How did the principal roles evolve to their present status? Are they likely to remain that way? The beginning: pseudo analysis The 1960s systems analyst (usually a former programmer) would draw detailed flow charts, design file formats, and write detailed narratives, and give parts of those documents to a programmer to develop. The programmer role was therefore reduced to coder. What's the difference? That division of skills and work rarely led to successful outcomes. Why not? 1970's maturing The "structured revolution" (~ ) established the clear distinction between programming and systems analysis. The systems analyst rigorously defines the problem to be solved The programmer solves a well-defined problem, usually using computers. That distinction remains valid today. However, some organizations have recently tried to merge and analyst and programmer roles back into a single developer role! Why? How is that working out? COMP 320 / copyright 2013 Conrad Weisert

6 The role of the modern programmer Given a well-defined problem, to design and implement a computer-based solution. That solution may or may not require writing new software (programming) A competent professional programmer is aware of alternatives and tries to avoid writing programs. Programming = design + coding + testing what about documenting? The systems analyst role The main role of the analyst is to determine and document specifications for a new (or modified) computer application system. Other names for system specifications: detailed user requirements external system design (ESD) functional specifications Whatever you call it, this is the principal end product of systems analysis. What else does a systems analyst do? Is this a common career path? It it a desirable one? Programmer Systems analyst Project manager Common 2013 confusions Some "experts" still refer (in articles, textbooks, courses, etc.) to: analysis-and-design as a single discipline user requirements and system specifications as separate sets of documents non-functional requirements instead of constraints developer instead of programmer architect instead of designer or chief programmer A mature professional should comply with the terminology used in his/her organization, provided that it's clearly defined. Which of those are just terminology? COMP 320 / copyright 2013 Conrad Weisert

7 "Analysis & Design" There is no such single discipline or activity, despite many book titles, etc. They are two separate activities: done at different times during a project done (usually) by different people requiring different skills The analyst specifies WHAT the proposed new application will do. The designer determines HOW the proposed application will do it. This course is about systems analysis. The systems analyst is often an agent of change in an organization Some people in the user organization may perceive the analyst as a threat! They're proud of their mastery of routine aspects of their job. But the new system may eliminate or radically change those aspects. What we may think of as repetitve error-prone drudgery, an employee may think of as job security! How can the systems analyst deal with such attitudes? A role definition for Systems Analyst Why does it violate the criteria we stated for role definitions in general? Avoids vague activity terms, such as: participates in... assists with... contributes to... advises on... concurs in... The analyst is an intermediary, who does what a self-sufficient user representative could do if he or she knew how. Some analysts belong to the user organization, others to an I.T. organization. COMP 320 / copyright 2013 Conrad Weisert