Traditional System Development Methodologies
General introduction to the agile and iterative methodologies
There are various system development methodologies like traditional SDLC approach based methodologies, and agile approach based methodologies. Traditional methodologies are mainly focused on developing the whole system in one go and then procced to testing and implementation. Iterative approach is also a traditional system development methodology. It breaks down the whole system development work into multiple sub system or modular work. Then it runs each development process in parallel. Once all sub systems are developed, all are connected together and tested (Sharp and Hall, 2016).
On the other hand, agile approaches are iterative but it develops systems incrementally. That is, it also breaks down the system development task into multiple sub system development tasks or developing each functionality of a system in an iteration. It starts with developing the core functionalities. Once those are completed, it sends the partial work to the end users or the customers for further review. It helps to understand whether the partial system has met the requirements or now. End users gives feedback after the review. Then the project team refines the requirements based on the feedback and the review. Then it proceeds to the next iteration. There are various types of agile approaches. But all must adhere to the agile manifesto (Sharp and Hall, 2016).
Methodology 1: Spiral Model
Spiral model is iterative and traditional model. It has four phases of system development. At first it starts with the initial requirements and develops a partial solution based on that (Polk, 2011). The solution is then reviewed and tested. It may require further refinement and then it again goes to the development phase with the new set of requirements. The process continues until all requirements are met (Boehm, 2007).
Advantages
- Iterations are called spirals.
- The baseline spiral starts with the planning phase and advances to risk analysis, development and evolution phases.
- It adds risk analysis in each iteration. That makes the risk management process stronger and helps to mitigate many risks.
- It requires high level of documentation and approvals.
- The main software is developed during the early iterations. Subsequent iterations refine it.
- Suitable for projects with high risks, unstable requirements, or the product needs high level of customization.
Disadvantages
- The associated cost is high.
- Requires expertise and skills for risk management.
- Risk management is a success defining factor for the project.
- Low risks projects and smaller projects are not recommended to use the model.
- The spirals may continue indefinitely in theory.
Methodology 2: SCRUM
SCRUM is a highly popular agile system development framework. There are multiple iterations called sprints. Each sprint has sprint backlog containing information about the tasks to be done. Project team members can pick the tasks and work on it (Meyer, 2014). The roles of the team members are not fixed. Instead of project manager there are SCRUM master and product owner. SCRUM master monitors whether the team members are following the SCRUM framework effectively or not. The product owner manages the product development process. Sprint review helps to refine the partial product (James, 2015).
Advantages
- Requires lesser paperwork.
- The development process is usually faster.
- It needs daily meeting, frequent review and very high level of communication.
- Suitable for software development projects other than mission critical systems.
- Highly structured in nature.
Disadvantages
- The team morale must be very high.
- Needs people who have knowledge on SCRUM.
- Team members must have self-motivation and high level of co-ordination.
- Require continuous feedback from end users.
Methodology: XP
Agile System Development Methodologies
XP or Extreme Programming is another agile model that adhere to the agile principles like continuous and strong communication with the end users or the customers, iterative and incremental iterations. For developing software, XP first builds the test cases, then it develops the actual coding of the software. It require small teams (Sharp and Hall, 2016).
Advantages
- It offers very high level of communication among the project team members.
- Simplicity is one of the backbone of the framework. It starts with the definite requirements first and focuses on reviews to understand the next set of requirements.
- Continuous feedback is also an important thing and it helps to improve and optimize the development process.
- It handles organizational issues boldly.
- There must be co-ordination and respect for others in the team members.
- There are five roles, customer, programmer, tester, coach and tracker. Coach is responsible to run the project by managing the programmers and other role-holders.
Disadvantages
- It is particularly focused on the code in the case of a software development project. Sometimes design is neglected.
- This is not suitable for remote teams.
- There is no strong quality assurance process.
Methodology 4: Kanban
Kanban is also an important agile model used for software development project. There is no process framework here. The product is developed through incremental iterations. All work are organized in a Kanban board visible to all stakeholders of the project (Kniberg and Skarin, 2010). A Kanban process is focused on testing, ready to release product or partial product, released columns. It focuses on WIPs or Work In Progress. There are various similarities between SCRUM and Kanban. However, the SCRUM framework is more stable, and structured than Kanban (Anderson and Linden-Reed, 2010).
Advantages
- Its event driven approach.
- It separates planning, improvements and release of products from each other.
- It may not require cross functional team.
- It has persistent Kanban board.
- Offers more flexibility.
Disadvantages
- Kanban board may become outdated.
- Making the board takes some time.
- No timeframe is used so it is hard to manage the project and meet the deadlines.
Based on the information present in the report, and the requirements of the AFD, it is recommended that they use the agile methodology SCRUM for their project on development of the customer relationship management system. The reasons behind the recommendations are,
- Incremental development
- Coordination
- Team effort
- Participation of end users
- Review
- Less chances of errors and issues
The aim of the report is to present brief discussion on the iterative and agile methodologies to the management of AFD. AFD is a fashion outfit supplier to various retail stores in the Australia. The company is located in Brisbane but has many business units across the country. The company buys it products from manufactures in China and New Zealand. It employs two types of sales representatives, common sales representatives who make deals with the retail shops and outlets, and wedding representatives that make deals directly with the customers. Currently, the business is using some off-the-shelf accounting software and some email solution. Thus, the use of computers in the company is very low. There is some manual system for collecting information about the stock and inventories and for customer relationship management.
The company has undertaken a project to build and implement a CRM or Customer Relationship Management solution. They have also planned to undertake the project to develop the Purchasing System development project later. Hence, the supplier management processes are excluded from the scope of the proposed information system.
The AFD team is interested to know about the advantages and disadvantages of various agile and iterative system development methodologies. In the following sections of the report, the information about the methodologies have been discussed.
References:
Anderson, D. J. and Linden-Reed, J. (2010) ‘Kanban for Software Development’, RefCardz, (April), pp. 1–6. Available at: papers://68169eba-0c0b-4d1e-850e-c28f85250e34/Paper/p36.
Boehm, B. (2007) ‘A Spiral model of software development and enhancement’, in Software Management, Seventh Edition, pp. 37–48. doi: 10.1109/9780470049167.ch2.
James, M. (2015) Scrum Methodology, Scrum Methodology. Available at: https://scrummethodology.com/.
Kniberg, H. and Skarin, M. (2010) ‘Kanban and Scrum’, Work, p. 120. doi: 10.1017/CBO9781107415324.004.
Meyer, B. (2014) ‘Agile methods’, in Agile!, pp. 133–143. doi: 10.1007/978-3-319-05155-0_9.
Polk, R. (2011) ‘Agile & Kanban in coordination’, in Proceedings – 2011 Agile Conference, Agile 2011, pp. 263–268. doi: 10.1109/AGILE.2011.10.
Sharp, H. and Hall, T. (2016) Agile Processes in Software Engineering and Extreme Programming, 17th International Conference, XP. doi: 10.1007/978-3-319-33515-5_13.