Agile Modeling and Prototyping Ch. 6

Four conceptions that may be usefully applied in a particular situation

Prototype

Constructing a system that works but it patched up or patched together

Patched-Up Prototype

A non-working scale model that is set up to test certain aspects of the design;
produced when the coding required by the applications is too extensive to prototype but when a useful idea can be gained

Non-Operational Prototype

Creating a first full-scale model of a system, called a pilot; useful when many installations of the same information system are planned

First-of-a-Series Prototype

Building an operational model that includes some, but not all, of the features that the final system will have;
accomplished in modules so that if the features that are prototyped are evaluated by users as successful

Selected Features Prototype

1. Work in manageable modules
2. Build the prototype rapidly
3. Modify the prototype in successive iterations
4. Stress the user interface

Guidelines for Developing a Prototype

A manageable module is one that allows users to interact with its key features but can be built separately from other system modules

Working in Manageable Modules

Creating it in modules that are not highly interdependent

Modifying A Prototype

Get users to further articulate their information requirements, so they must be able to interact easily with the system's prototype;
must be well developed enough to enable users to pick up the system quickly

Stressing the User Interface

1. Difficult to manage prototyping as a project in the larger systems effort
2. Users and analysts may adopt a prototype as a completed system when it is in fact inadequate and was never intended to serve as a finished system

Disadvantages of Prototyping

1. Potential for changing the system early in its development
2. Opportunity to stop development on a system that is not working
3. Possibility of developing a system that more closely addresses users' needs and expectations

Advantages of Prototyping

1. Experimenting with the prototype
2. Giving open reactions
3. Suggesting additions to or deletions

User Involvement

Collection of innovative, user-centered approaches to systems development

Agile Methods

1. Communication
2. Simplicity
3. Feedback
4. Courage

Values of Agile Modeling

Reflections and specifications of agile values; serve as guidelines for developers to follow when developing systems; serve to set agile methodologies apartment from traditional

Principles of Agile Modeling

1. Coding
2. Testing
3. Listening
4. Designing

Basic Activities of Agile Development

1. Time
2. Cost
3. Quality
4. Scope

Resource Control Variables of Agile Modeling

1. Short Releases
2. Forty-Hour Workweek
3. On-Site Customer
4. Pair Programming

Core Agile Practices

Development team compresses the time between releases of the product

Short Releases

Agile development teams purposely endorse a cultural core practice in which the team works intensely together

Forty-Hour Workweek

A user who is an expert in the business aspect of the systems development work is on-site during the development process

On-Site Customer

Emphasis is on spoken interaction between developers and users, not written communication;
a developer is seeking first and foremost to identify valuable business user requirements

User Stories

1. Product Backlog: list derived from product specifications
2. Sprint Backlog: dynamically change list of tasks
3. Sprint: 30-day period to transform into software
4. Daily Scrum: brief meeting
5. Demo: working software

Scrum Methodology

A systems development approach that has values, principles, and practices useful for systems analysts who desire a flexible, interactive, and participative approach

Agile Modeling

A systems development approach that accepts what we know as good systems development practices and takes them to the extreme

Extremem Programming (XP)

The last phase of the systems development life cycle, in which an analyst ensures that the system is in operation and then allows users to take over its operation and evaluation

Implementation

A core practice of the agile approach in which two programmers choose to work together

Pair Programming

1. User reactions
2. Suggestions
3. Innovations
4. Revision plans

What four kinds of information is an analyst seeking through prototyping?

A concept model of a car. The exact design of the car is built with all the specs available, but only one model is created. This is in order to show off the design and quality of the car to represent to investors without creating an entire line of vehicle

Give an example of a prototype that is a first full-scale method.

Selected features prototype: the system is created by modules and features can be evaluated, changed, or axed as the progress continues

Define what is meant by a prototype that is a model with some, but not all, essential features.

An analyst effectively shortens the time between ascertainment of human information requirements and delivery of a workable system. Also, ability to overcome some of the problems of accurately identifying user information requirements.

Describe how prototyping can be used to augment the traditional SDLC.

Estimate the costs involved in building a module of the system; if the costs of programmers' and analysts' time as well as equipment costs are within the budget, building can proceed.

What are the criteria for deciding whether a system should be prototyped?