411 REFERENCE · Wikibooks
Software Engineering with an Agile Development Framework/Introduction
Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.
Preface
Introduction to Approach
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.
Image: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.
Image:Spiral_arrows.gif
Image:Spiral_arrows_wiggly.png
The varying proportions of each stream coalesce into "sectors" defined by a deliverable output, steering and communication with the client.
400px
The sectors here can be seen to resemble a structured development process.
Image: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.
Image:Sector-explode.gif
Image: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
SectorDeliverablesEvaluationManagement document (group established, environmental context)Functional requirementsInterview with client establishedDesign conceptsEthical designDesign specificationSystem metaphorImplementationConceptual prototype (Release One). EvaluationProposal to client
Iteration Two: Functional Delivery
EvaluationProject estimationFunctional requirementsFunctional requirements documentDesign conceptsDesign concepts presentationDesign specificationDesign 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).ImplementationFunctional deliverable (Release Two). Deliver to the client a system that meets most of their needs. This system should be usable and stableEvaluationAnalysis of functional deliverable
Iteration Three: Robust Delivery
EvaluationDirection for Iteration 3. Complete Ethical processes.Functional requirementsRevisit functional requirementsDesign conceptsDesign concepts update, Content productionDesign specificationStyle guide, system specification, implementation and deployment planImplementationRobust delivery (Release Three)EvaluationProject evaluation and completion. Client satisfaction.