|
|
|
| Planning : Agile Software Development |
There are many agile development methods; most minimize risk by developing software in multiple repetitions (or 'iterations') of short time frames (known as 'timeboxes'). Software developed during one unit of time is referred to as an iteration, which typically lasts from two to four weeks. Each iteration passes through a full software development cycle, including planning, requirements analysis, design, writing unit tests, then coding until the unit tests pass and a working product is finally demonstrated to stakeholders. Documentation is no different than software design and coding. It, too, is produced as required by stakeholders. An iteration may not add enough functionality to warrant releasing the product to market, but the goal is to have an available release (without bugs) at the end of each iteration. At the end of each iteration, stakeholders re-evaluate project priorities with a view to optimizing their return on investment.
Agile methods emphasize face-to-face communication over written documents. Most agile teams are located in a single open office to facilitate such communication. One agile management methodology, Scrum, advocates a team size of 5 to 9. Larger teams than 9 should be split into smaller teams to help make team communication and team collaboration easier.
Team composition in an agile project is usually cross-functional and self-organising without consideration for any existing corporate hierarchy or the corporate roles of team members. No matter what development disciplines are required, at a minimum, every agile team will contain a customer representative. This person is appointed by stakeholders to act on their behalf and makes a personal commitment to being available for developers to answer mid-iteration problem-domain questions. This availability is critical to agile project success.
Part of the Scrum methodology is routine and formal daily face-to-face communication between team members. This specifically includes the customer representative and any interested stakeholders as observers. Known as a daily scrum, team members report to each other what they did yesterday, what they intend to do today, and what their roadblocks are. This formalised face-to-face communication prevents problems being hidden, provided that someone with corporate influence is always listening. For the Scrum methodology, this is the Scrum Master. Otherwise it is the agile project manager.
|
| Jump to Top |
| Planning : Rapid Application Development (RAD) |
Rapid application development is a software development methodology, which involves iterative development and
the construction of prototypes. It is a merger of various structured techniques, especially the data driven
Information Engineering with prototyping techniques to accelerate software systems development.
RAD calls for the interactive use of structured techniques and prototyping to define user's requirements and
design the final system. Using structured techniques the developer first builds preliminary data models and
business process models of the business requirements. Prototyping then helps the analyst and users to verify
those requirements and to formally refine the data and process models. The cycle of models, then prototypes,
then models, then prototypes and so forth on, ultimately results in a combined business requirements and technical
design statement to be used for constructing new systems.
RAD approaches may entail compromises in functionality and performance in exchange for enabling faster development
and facilitating application maintenance.
|
| Jump to Top |
| Planning : Software Development Cycle (SDC) |
|
| Jump to Top |
| Planning : Waterfall Software Development Methodology |
|
Project is divided into sequential phases, with some overlap and splashback
acceptable between phases. Emphasis is on planning, time schedules, target dates, budgets and
implementation of an entire system at one time. Tight control is maintained over the life of
the project through the use of extensive written documentation, as well as through formal reviews and
approval/signoff by the user and information technology management occurring at
the end of most phases before beginning the next phase.
|
| Jump to Top |
|
|