Software Engineering with an Agile Development Framework/Introduction

From Wikibooks, open books for an open world
Jump to: navigation, search

Preface


Introduction to Approach[edit]

We are following a development framework that incorporates agile development approaches in a structured framework. (see manifesto, manifesto description, more). Agility implies

- individuals and iterations over processes and tasks

- working software over comprehensive documentation

- customer collaboration over contract negotiation

- responding to change over following a plan.

The focus of the project is on the production of robust working systems (software, hardware and maintenance documentation). Planning, comprehensive development documentation and processes are important but are 'means to an end' with a focus on content rather than format/representation. It is expected that you discard most of the models you develop (although you do have to keep them for assessment!).

We aim, then for the middle ground between Bureaucracy and Adhocracy.

Risk management.gif

At any one point you should expect to have five interacting streams of work underway. At different times, different streams are more important. Spiral arrows.gif Spiral arrows wiggly.png

The varying proportions of each stream coalesce into "sectors" defined by a deliverable output, steering and communication with the client.

Spiral sectors2.png

The sectors here can be seen to resemble a structured development process.

3circles.jpg We are going through three iterations. The first iteration is aimed at building understanding within the development group and client. The second iteration is aimed at designing and releasing (to the client) a system that meets many of the functional requirements. The third iteration, "robust delivery" is intended to review the success of the second iteration in meeting business requirements, to review functional requirements (there will probably be more), and to deliver a robust and stylish "bullet proof" implementation.

At any time, you will be working in a sectors made up of the 5 work streams, being one of three iterations and having a focus on a particular area. Sector-explode.gif Spiral section background.png Each sector is defined by what it produces. We provide you with a suite of tools that may be used within each sector, but so long as you can provide evidence of a rational process (see evidence portfolio below), we are less concerned with the internals of the sector.

Iteration 1: Understanding[edit]

Sector Deliverables
Evaluation Management document (group established, environmental context)
Functional requirements Interview with client established
Design concepts Ethical design
Design specification System metaphor
Implementation Conceptual prototype (Release One).
Evaluation Proposal to client


Iteration Two: Functional Delivery[edit]

Evaluation Project estimation
Functional requirements Functional requirements document
Design concepts Design concepts presentation
Design specification Design specification (style guide etc), Stable development platform: The framework for your system should be developed and tested. For example, for a database with a web front end we would expect you to demonstrate connectivity and basic database functions via the web (insert, delete, query, update) plus any standard infrastructure (login etc).
Implementation Functional deliverable (Release Two). Deliver to the client a system that meets most of their needs. This system should be usable and stable
Evaluation Analysis of functional deliverable


Iteration Three: Robust Delivery[edit]

Evaluation Direction for Iteration 3. Complete Ethical processes.
Functional requirements Revisit functional requirements
Design concepts Design concepts update, Content production
Design specification Style guide, system specification, implementation and deployment plan
Implementation Robust delivery (Release Three)
Evaluation Project evaluation and completion. Client satisfaction.