Abstract-We- We are living in a dynamic world. Things are rapidly changing. Therefore, there is a need to come up with solutions quickly to problems that arise due to changing circumstances. On the side of technology, it is rapidly evolving, and it is good to develop technology that helps us to solve problems as they arise. The agile software development system has offered us the best opportunity to build software that takes care of emerging needs in society. With its short cycles, every developer focuses on a specific project of software development. This, therefore, enhances software development, which takes care of customers changing needs. This paper explores scrum software development archetypal and the advantages embedded in it compared to feature is driven and waterfall software development system.
I.0.Introduction
Software development forms an essential part of the organization’s program. It is crucial whether for commercial products, internal applications and even for services that the organization provides. The market needs have contributed most to the evolution of processes of software development. The rapidly changing conditions which characterize the current software market favour any method that advocates for speedy and flexibility in software development.
2.0. Software Development Methodologies
2.1. Waterfall Method
This is a method of software development that needs sufficient structures and upfront documentations. In it, there are divisions into self-contained stages. The staring step is essential and requires a thorough understanding by the developers, project customer demands as well as the scope before software development begins. The steps of developing software through this method are rigid. Developers need to follow a sequence of stages. Firstly, there is the determination of the project’s requirement, analysis of specification, designing, implementation, testing, deployment, and lastly, maintenance. This method has no flexibility. Whatever is decided by the developers and customers during the start has to be seen through. Discovery of any mistake along the development process or adjustment needs will require a full restart of the development process.
The completion of one stage before beginning next is the order of this method. This helps with organization as well as assignments. The scope of development using this method is known in advance. Therefore, development progress can be gauged. The team that makes use of this method to develop software is plan-driven and have a clear understanding of the scope of the project.
2.2. Feature Driven method
This method of software development centres on the goal to frequently deliver working software. The development approach to this method is client-centric. Therefore it is most suited for a small team of developers. The software foundation of this method is a feature. Using this method to develop appropriate software requires adherence to these stages, development of the whole model, the building of the feature’s list, and planning by each element. There is also design by each component as well as building by each feature. Producing a report after each stage is recommended. It is useful in tracing development progress, results as well as any mistake which might have been occasioned.
The method allows an efficient response to any adjustment. Developer’s knowledge of customer needs at the start of development is essential in reducing surprise along the software development process. Since delivery is within two weeks, features with more than two weeks designing period need to be broken further into separate features to meet the two-week requirement of this method. Being a rigid method, it is not the desired method by teams that balances project-driven with break-fix work type.
2.3. Agile Development System
This system of software development accommodates changes. It’s the fastest software development methodology. The development process using this method features a collaboration with the customer all along. It quickly adjusts any difference rather than following a fixed plan. Its primary focus is producing working software instead of much documentations. Agile methodology is well devised to take care of any complexity, including variability in the development of software. The developers work in short sprints. The sprints have the designing duration and the required standards. While working on sprints, the developing teams focus on producing working software. The agile development method requires high collaborations. Its significant focus is teamwork strength and efficiencies together with responses from customers and departments. The determination of developers also aims to satisfy clients by producing working and tested software with features of priority.
2.3.1. Agile Software Development Principles
- The satisfaction of customer demands via the supply of working software
- Working together of developers and customers to attain the desired software quality
- Tested and working software is what measures the development progress
- Face to face way of communication is an effective and efficient way of sharing the information in this method of the software development process.
- Regular interval reflection on ways of becoming more effective
- The building of projects through a motivated team of software developers
- Adoption of simplicity in the development process yet with clear standards to be achieved
2.3.2. Advantages of Agile software development method
- The software development using the Agile method is rapid, iterative and based on incremental delivery. The development process is divided into small bits. This promotes checking of functionality, management of risks and obtaining of early feedback from the end-users.
- Increased performance. The daily meetings carried out during this method of software development offers an opportunity for the exchange of crucial data which helps in fine-tuning software development improvement continuously. The opportunity of discussing the complex development process via simple stories provides a big encouragement to the developing teams. Frequent meetings with better communication increase knowledge sharing as well as the trust of the development team members. This helps in increasing the productivity of the developers and generation excellent performance.
- Design flexibility. The agile development method accommodates any change very quickly. Therefore it has the ability of catering for clients demands.
- Reduction of software development risk. Their mini software designs are delivered to clients within the development cycle and allow the customers to examine them and give their feedback. This informs the development team and helps in avoiding errors and fixing the errors occasioned instantly.
- Ensures that customers are satisfied. The agile software development process is always committed to the delivery of tested, working and reliable software that caters for the needs of the customer.
- The agile development system requires the least documentation. The only documentation of product features list, as well as the sprint completion duration, is necessary when using this method.
3.0. Scrum Practices
3.1 Scrum master task
Facilitation of communiqué between software developers and the product possessor. Makes sure that scrum practice and established values are adhered throughout the development process.
3.2 scrum versus Kanban
Scrum is based on the Agile philosophy and belief. That is, software development teams need to collaborate daily and to a great extent. Scrum uses the iterative approach in the development of software. The development team is at the centre and from. They have experience and well disciplined. The developers divide end goal to small goals and work on them through fixed sprints. There are daily meetings to share and get feedback on the development process hence promoting faster changes and addition of value to the development of software. Scrum accommodates traditional structure and discipline of growth but with flexibility and sprints of modern practices. In contrast, KANBAN’s focus is continuous workflow rather than sprinting. Starting and delivery are between two to four weeks. It has no prescribed roles.it is more of a visual management system process. Just as Scrum, Kanban designation is to teamwork for effectiveness.
3.2.1. Scrum features and benefits
- The scrum team consist of five to seven-member
- Working on a sprint is limited two to four weeks
- Respect, courage, commitment, openness, and focus are values highly regarded in the Scrum development process
3.2.2. Features and benefits of KANBAN
- It has six principles. Workflow visualization, workflow management, the making of explicit policies, implantation of feedback loops as well as collaborative improvement.
- Practices in KANBAN begins with what is known, agreement to peruse incremental, respect for the current process, evolutionary change as well as the encouragement of acts of leadership.
3.3. User stories and backlog
All the parts of software development which are supposed to be done inside the project are listed. They reflect the stakeholders and the customers’ needs. The scrum master helps in the definition of backlog items. They also do their estimation while the product owner has the responsibility of creation and up keeping of the product backlog.
3.4. Daily’s and sprints
During the software development process, all team members working on completing sprints meets. Each member of the team gives a brief on what has been achieved from the previous meeting. Also, a briefing on the next task to be accomplished is given, and challenges that may hinder accomplishment. The sessions take about 15 minutes, and attendance is a requirement for all the members.
4.0. Survey of Agile and Scrum Methodologies
4.1. Scrum survey
- scrum meetings by scrum teams are done daily
- software developer practice is well-defined
- priorities for 30-day sprints are set and cannot be changed
- The progress of software development is displayed via burndown chart
4.2. Agile survey
- There is subset iterative and gives feedback on development progress
- Documentation of priorities is done in the agile manifesto
- Twelve specific practices of software development and four values underpin agile development methodology
5.0 Conclusion
Using traditional methods of software development procedures exhibit the ability to give straight forward organized and systematic way of creating software. However, there are disadvantages involved like slow accommodation of change due to changing the business environment. The Agile software development system offers a short development cycle. Besides, it exhibits higher levels of customer satisfaction due to its ability to respond quickly to the changing business environment. The strength of the organization to select and implement the best software development process is essential in maximizing the delivery of software with long term benefits.
Reference
Mädche, A., & Wallach, D. (2014). Agile und Nutzerzentrierte Softwareentwicklung. Wissenschaft trifft Praxis: Usability betrieblicher IT-Anwendungen, 1, 24-30.
Cohn, M. (2010). Succeeding with agile: software development using Scrum. Pearson Education.
Abrahamsson, P., Oza, N., & Siponen, M. T. (2010). Agile software development methods: a comparative review. In Agile software development (pp. 31-59). Springer, Berlin, Heidelberg.
Wolf, H., & Bleek, W. G. (2011). Agile Softwareentwicklung. Werte, Konzepte und Methoden, 2.
Martin, R. C. (2002). Agile software development: principles, patterns, and practices. Prentice Hall.
Schwaber, K., & Beedle, M. (2002). Agile software development with Scrum (Vol. 1). Upper Saddle River: Prentice Hall.