Case Study: Disaster Relief Coordination System for a Small Island
1 The Aegis System
2 Table of Contents
1 The Aegis System.. 1
2 Introduction. 1
3 Following Agile approach. 1
3.1 What is agile?. 1
3.2 How Agile will suit for the development process of Aegis system?. 2
3.2.1 Four values of Agile: 2
3.2.2 Twelve principles of agile. 3
3.2.3 Agile. 5
4 References. 5
Developing a disaster relief system for Lazarus Island is a mission critical project which consist of four main sub systems and several stakeholders. The project needs to be handled very carefully in order to make it success. So a solid project management framework which would lead the project to success should be followed throughout the entire development process.
4 Following Agile approach
4.1 What is agile?
The google dictionary defines agile as “Able to move quickly and easily.”
On the other hand agile is an iterative and time boxed approach to software development which focus on developing the software and delivering it incrementally from the start of the project, instead of trying to deliver the entire software at the end of the project. (Rasmusson, 2018)
4.2 How Agile will suit for the development process of Aegis system?
The Agile Manifesto which was created by seventeen software developers in 2001 has declared four core values of agile. Let’s see those core values of agile and how they will suit for the Aegis project. (http://agilemanifesto.org/, 2001)
4.2.1 Four values of Agile:
· Individual interactions over process and tools
This emphasize on valuing people, people interaction and communication highly more than process and tools.
The Aegis project has lot of stakeholders the understanding and the idea about the project may vary between the stakeholders and development team. So that interaction between the stakeholders and teams are one of the key point to consider and the above value of the agile clearly address the need.
· Working software rather than thorough documentation
A working piece of a software is much more valuable than a bunch of documentation. In Agile a working piece of a software increment is immediately added whenever definition of done of a user story is met. Documentation is done only if it adds value but the first priority is for the working software.
Frequently introducing a new piece of working software in the system is really crucial for Aegis project as it could come to an immediate use when considering disasters can occur at any time. Also, usability issues or essentially required changes in the newly introduced working piece can be traced and fixed immediately before it is too late.
· Collaboration with customer instead of contract negotiations
The customer requirements can be understood easily when the customer is closer to the development team. Agile allows customer collaboration even in development phase of the project. Customers can attend any periodic agile meetings and frequent demos of the newly developed parts to the customers are possible in agile. Traditional approaches like waterfall method are lacking these features so which would often end up in renegotiation of the contract at the end.
The initial requirements of the Aegis system is very complex as it involves four subsystems and the subsystems should work in an integrated manner. Also the Aegis system is highly process oriented. So understanding the customer requirements while developing every single piece of delivery items and getting the customer feedback for each item is very much important. So following agile would be really helpful for these requirements.
· More than following a plan, respond to change.
Traditional methodologies regarded change as an expense, so changes were not allowed easily. But iterative incremental development approach of agile easily allows changes to the system without the worry of cost and changing the plan.
Aegis system has several stake holders in different levels, conflicting and violating interests and the process of the ultimate system to be developed is so complex. So it is really hard to coordinate all the stakeholders and gather all the requirements which will not change during the process. Getting new features or changes to already develop parts are UN avoidable in this system. So following agile is the only way to get this issue sorted for this project.
(http://agilemanifesto.org/, 2001) (Sutherland, 2018)
4.2.2 Twelve principles of agile
The manifesto has also defined following 12 principles of agile.
· Our highest priority is to satisfy the customer through early and continuous delivery
of valuable software.
Stakeholders will be happier when they receive working software at regular intervals, rather than waiting extended periods of time between releases.
This will help to experience the Aegis system at an early stage and find necessary changes early.
· Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
Changes to the Aegis system will be welcomed at any stage of the project.
· Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
An increment in a working software will be delivered frequently.
· Business people and developers must work together daily throughout the project.
Stakeholder and developer team collaborations will help increase the understanding of the requirements of Aegis system.
· Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
Motivated teams would deliver their best work than unhappy teams.
· The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
Communication would be more successful when development teams are co-located.
· Working software is the primary measure of progress.
Delivering working software to the customer is the ultimate factor that measures progress. This will lead to easily measure the development of Aegis system.
· Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
Teams can establish a repeatable and consistent speed at which they can deliver working software, and they could repeat it with each release.
· Continuous attention to technical excellence and good design enhances agility.
The right skills and good design will ensure that the team can maintain the pace, constantly to improve the product, and accommodate change.
· Simplicity–the art of maximizing the amount of work not done–is essential.
Keeping things as simple as possible is a great ethic to make streamline the process.
· The best architectures, requirements, and designs emerge from self-organizing teams.
Motivated and Skilled team members who have decision-making power, communicate regularly with other team members, and share ideas that deliver high quality products.
· At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Self-improvement, advancing skills, process improvement, and techniques would help team members work more efficiently.
4.3 Scrum Agile framework
Agile has many flavors such as Scrum, Kanban, Lean & etc. Now let’s see how scrum framework is more suitable for this Aegis project.
Scrum framework is rooted in regular cycles of work iterations called Sprints. Each Sprint has a fixed length of time (typically 2-4 weeks long). Scrum has set of rules, events and roles. All the events are strictly time boxed in scrum.
At the beginning of each sprint work items are carefully chosen from a priority wise sorted list called backlog. Before choosing a work item (called user story) it will be discussed in detail and chunked in to smaller level user stories. During the sprint whenever a user story is done it is released immediately and at the end of the sprint the done work will be revised.
4.3.1 Some roles in scrum:
· Product Owner – product owner is the person who is responsible for what the team is developing, and why it is developed. He/she also responsible for keeping the product backlog up-to-date in a prioritized order.
· Scrum Master – Scrum Master is the person who is responsible for making sure that the scrum process is followed by the team correctly. Scrum masters do continuously monitor how the team can improve while resolving any impediments which can arise during the sprint. Scrum masters can be considered as a part team member, part coach, and part cheerleader.
· Scrum Team – These are the individuals that actually build the product. The team owns the engineering of the product, and the quality that goes with it.
Scrum defines a set of meetings/events, usually called as four ceremonies of scrum.
· Backlog grooming –
· Sprint Planning
· Daily Scrum.
· Sprint Review & Sprint Retrospective.
http://agilemanifesto.org/, 2001. Manifesto for Agile Software Development. Online Available at: http://agilemanifesto.org/Accessed 03 1 2018.
Rasmusson, J., 2018. what_is_agile. Online Available at: http://www.agilenutshell.com/what_is_agileAccessed 02 01 2018.
Sutherland, J., 2018. Agile Principles and Values. Online Available at: https://msdn.microsoft.com/en-us/library/dd997578(v=vs.120).aspxAccessed 05 01 2018.