Software Engineering with an Agile Development Framework/Introduction
Introduction to ApproachEdit
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.
At any one point you should expect to have five interacting streams of work underway. At different times, different streams are more important.
The varying proportions of each stream coalesce into "sectors" defined by a deliverable output, steering and communication with the client.
The sectors here can be seen to resemble a structured development process.
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. 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: UnderstandingEdit
|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 DeliveryEdit
|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 DeliveryEdit
|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.|