This material addresses aspects of the following syllabus outcomes:
H6.2 selects, justifies and applies methodical approaches to planning, designing or implementing solutions
H7.1 implements and explains effective management techniques
H7.2 uses methods to thoroughly document the development of individual and team projects.
Source: Board of studies NSW, Stage 6 Information Processes and Technology, Preliminary and HSC Courses (2009) http://www.boardofstudies.nsw.edu.au/syllabus_hsc/pdf_doc/ipt-st6-syl-from2010.pdf
In a classically linear and sequential approach to systems development, each stage is assigned to a separate team to ensure greater project and deadline control which is important for on-time project delivery. A linear approach means a stage-by-stage approach for product building.
Iterative system development slices the system functionality into increments (portions). In each increment, a slice of functionality is delivered through cross-discipline work, from the requirements to the deployment. The unified process groups increments/iterations into phases: inception, elaboration, construction, and transition.
Each of the phases may be divided into one or more iterations, which are usually time-boxed rather than feature-boxed. Architects and analysts work on iteration ahead of developers and testers to keep their work-product backlog full.
Agile development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organising, cross-functional teams. The Agile Manifesto introduced the term in 2001.
Proponents of agile methods believe that they promote a disciplined project management process for software development that encourages frequent inspection and adaptation, teamwork, self-organisation and accountability, a set of engineering best practices for rapid delivery of high-quality software, and a business approach that aligns development with customer needs and company goals.
There are many specific agile development methods. Most promote development, teamwork, collaboration, and process adaptability throughout the life-cycle of the project.
Agile methods break tasks into small increments with minimal planning, and do not directly involve long-term planning. Iterations are short time frames (time boxes) that typically last from one to four weeks. Each iteration involves a team working through a full software development cycle including planning, requirements analysis, design, coding, unit testing, and acceptance testing when a working product is demonstrated to stakeholders. This helps minimise overall risk, and lets the project adapt to changes quickly. Stakeholders produce documentation as required. An iteration may not add enough functionality to warrant a market release, but the goal is to have an available release (with minimal bugs) at the end of each iteration. Multiple iterations may be required to release a product or new features.
Source: "Agile Software Development." Wikipedia, the Free Encyclopedia. Web. 11 Aug. 2011. http://en.wikipedia.org/wiki/Agile_software_development .
|System development method||Classic||Agile||Iterative|
|Is linear and sequential.|
|Assigns each stage is assigned to a separate team.|
|Promotes teamwork and collaboration.|
|Breaks tasks into small increments with minimal planning.|
|Divides system functionality into increments.|
|Groups processes into phases.|