大象传媒

Development methodologiesComparing iterative to agile

The waterfall method, rapid application, and more recently agile methods are all popular methodologies in software development. This guide explores their structures, advantages and limitations.

Part of Computing ScienceSoftware design and development

Comparing iterative to agile

IterativeAgile
ClientInvolved at analysis phase, acceptance testing, reviewing final software during evaluation. What is agreed with client during analysis forms the basis for their involvement during evaluation.Kept regularly informed of progress at all stages. Works closely with development team. Client's feedback welcomed throughout and team will adapt software to meet the client鈥檚 needs as much as possible.
TeamworkSmall independent teams often work on one phase of the process - separate teams responsible for analysis, implementation, testing and documentation. Minimal opportunity for work across teams.Teamwork at the heart of development. Lots of face-to-face communication and collaboration. Utilising the skillset of colleagues is welcomed. Staff with different expertise work as part of team when completing 鈥榮prints鈥.
DocumentationSystems analyst produces software specification at analysis phase. Documentation generated and maintained throughout process - including design documents, internal program commentary and test plans.Creating documentation not recommended (time consuming). Formal and maintained documentation only produced if necessary or requested by client. Informal documentation may exist to aid teams during 鈥榮prints鈥
Monitoring progressSoftware specification will detail agreed timescales for project completion. Project managers will regularly review progress against agreed deadlines. If developers miss deadlines, client can often reclaim some costs. As a result, development team are under pressure to meet all deadlines. Short-term planning used by teams in development 鈥榮prints鈥. Part of the aim of agile methodologies is to direct as many resources and staff as possible to a sprint cycle. Sprints are often completed quickly and help develop software as efficiently as possible. This may be at the expense of regular monitoring against long term aims.
Predictive vs adaptivePredictive. Planning allows for the completion of steps in a set order. Analysis phase is critical - software specification produced dictates a plan that it is difficult to alter. Mistakes made early in a project can be difficult to rectify later without going over budget or missing deadlines. Adaptive. No strict set plan - Development team regularly adapts targets to suit needs of client. Make up of teams can also change in response to what is best for client and project. Focussed short-term planning exists. Medium-term guidance frames the work of teams. Change and risk taking is part of an adaptive development process.
TestingA defined process when following an iterative cycle. Programmers will undertake some basic testing during implementation but the main testing phase occurs after implementation and will usually follow a pre-defined test plan.Testing will occur as and when necessary, often during 鈥榮print鈥 cycles.
Client
IterativeInvolved at analysis phase, acceptance testing, reviewing final software during evaluation. What is agreed with client during analysis forms the basis for their involvement during evaluation.
AgileKept regularly informed of progress at all stages. Works closely with development team. Client's feedback welcomed throughout and team will adapt software to meet the client鈥檚 needs as much as possible.
Teamwork
IterativeSmall independent teams often work on one phase of the process - separate teams responsible for analysis, implementation, testing and documentation. Minimal opportunity for work across teams.
AgileTeamwork at the heart of development. Lots of face-to-face communication and collaboration. Utilising the skillset of colleagues is welcomed. Staff with different expertise work as part of team when completing 鈥榮prints鈥.
Documentation
IterativeSystems analyst produces software specification at analysis phase. Documentation generated and maintained throughout process - including design documents, internal program commentary and test plans.
AgileCreating documentation not recommended (time consuming). Formal and maintained documentation only produced if necessary or requested by client. Informal documentation may exist to aid teams during 鈥榮prints鈥
Monitoring progress
IterativeSoftware specification will detail agreed timescales for project completion. Project managers will regularly review progress against agreed deadlines. If developers miss deadlines, client can often reclaim some costs. As a result, development team are under pressure to meet all deadlines.
AgileShort-term planning used by teams in development 鈥榮prints鈥. Part of the aim of agile methodologies is to direct as many resources and staff as possible to a sprint cycle. Sprints are often completed quickly and help develop software as efficiently as possible. This may be at the expense of regular monitoring against long term aims.
Predictive vs adaptive
IterativePredictive. Planning allows for the completion of steps in a set order. Analysis phase is critical - software specification produced dictates a plan that it is difficult to alter. Mistakes made early in a project can be difficult to rectify later without going over budget or missing deadlines.
AgileAdaptive. No strict set plan - Development team regularly adapts targets to suit needs of client. Make up of teams can also change in response to what is best for client and project. Focussed short-term planning exists. Medium-term guidance frames the work of teams. Change and risk taking is part of an adaptive development process.
Testing
IterativeA defined process when following an iterative cycle. Programmers will undertake some basic testing during implementation but the main testing phase occurs after implementation and will usually follow a pre-defined test plan.
AgileTesting will occur as and when necessary, often during 鈥榮print鈥 cycles.