Neenu RobinSept. 23, 2019
Agile is a software development methodology to build software incrementally using short iterations. That is, the development process is aligned with the changing business needs. Meaning of ‘Agile' is moving quickly. Earlier Software development was a long term process. By the time the product got completed to be delivered to the customers, the business had moved ahead. And requirements will also be changed. So, the product developed will not be able to meet the current business needs even if it satisfies all the predefined objectives.
The software methodologies used at an earlier time was Waterfall methodologies. The waterfall model is a breakdown of project activities into linear sequential phases.
In waterfall model one should move to a phase only when its preceding phase is reviewed and verified. That is, in this model customers can view the product only after its completion.
The disadvantage of waterfall development is that chances of revision are less. In addition, once an application is in the testing stage, it is very difficult to go back and change something that was not well-documented or thought upon in the concept stage.
The major disadvantages of the Waterfall Model are as follows −
To overcome the above mentioned disadvantages, 17 people with differing development methodologies background got together to brainstorm if there was a possible alternative solution to software development which could lead to faster development time and was less documentation heavy. They come up with the idea of a light weight Iterative model, where the iterative process starts with a simple implementation of a small set of the software requirements and iteratively enhance the evolving versions until the complete system is implemented and ready to be deployed.
The Manifesto for Agile Software Development Methodology is based on twelve principles:
1. SCRUM
2. eXtreme Programming(XP)
3. Crystal Methodologies
4. Dynamic Systems Development Method (DSDM)
5. Feature driven Development (FDD)
6. Lean
7. Kanban
Scrum is an agile software development methodology. It maintains small teams for software development consisting of 7 to 9 members. Furthermore, the team members are a mixture of developers, database people, testers, along with a product owner and a scrum master.
Scrum Master is responsible for setting up teams, calling meetings, monitor developments and removes obstacles on progress.
Product owner is the person handling product backlogs. Product backlogs are repository where all requirements to be completed for each product release are maintained. Hence, the owner is responsible for prioritizing the requirements and distributing it to the team.
An important term in scrum methodology is Sprint. Sprint is a predefined interval or time frame in which the work has to be completed. Thus make it ready for review or ready for production deployment. This time box usually lies between 2 weeks to 1 month.
Scrum is more Project Management focused. The main features of scrum are
Scrum Advantages and disadvantages
Advantages
Disadvantages
eXtreme Programming is an agile software methodology that concentrates on producing high quality software. This method is quite helpful when there is a constant demand for change in requirements. eXtreme methodology promotes high customer involvement, pair programming, rapid feedback loops, continuous testing, continuous planning, and close teamwork to deliver working software at very frequent intervals, typically every 1-3 weeks. Here, the business requirements are gathered in terms of stories and are stored in a place called parking lot.
This methodology involves high customer interaction. That is, this model is very useful in small projects consisting of small teams as face to face meetings are easier to achieve.
Extreme Programming Advantages and disadvantages
Advantages
Disadvantages
Crystal method is an agile software development method that focuses primarily on people and their interactions when working on a project rather than on processes and tools. It is actually comprised of a family of agile methodologies such as Crystal Clear, Crystal Yellow, Crystal Orange and others, whose unique characteristics are driven by several factors such as team size, system criticality, and project priorities.
The crystal methodologies gives a realization that each project may require a slightly tailored set of policies, practices, and processes in order to meet the project 's unique characteristics. Several of the key points of Crystal include teamwork, communication, and simplicity, as well as reflection to frequently adjust and improve the process. Like other agile process methodologies, Crystal promotes early, frequent delivery of working software. It also promotes high user involvement, adaptability, and the removal of bureaucracy or distractions.
Advantages and Disadvantages of Crystal Methodologies
Advantages
Disadvantages
DSDM is an agile software development methodology that concentrates on software full development life cycle. It’s success is due to the philosophy “that any project must be aligned to clearly defined strategic goals and focus upon early delivery of real benefits to the business.”
The eight Principles of DSDM:
The DSDM project consists of 7 phases
DSDM has been developed to face some common problems faced by projects. That is, late delivery, cost overruns or the final deliverable not being completely fit for purpose. Thus, creates an agile environment which is collaborative and flexible, yet remaining focused on hitting deadlines and maintaining the appropriate level of quality. It involves business representatives throughout an iterative and incremental life cycle. All personnel involved in a project are given clear roles and responsibilities and work together in time boxes to ensure the project is kept on schedule.
Advantages and Disadvantages of DSDM
Advantages
Disadvantages
Feature Driven Methodology will be customer driven and also architecture-centric software process. It mainly concentrates on different features of the product. The five main activities in FDD are
The team work for the development of the product. That is, they must need an idea of the fundamentals of the domain they are addressing. An overall model will be prepared based on fundamentals and throughout the project you will flesh this model out to reflect what you're building. Second step is building features list. That is, which will be group based on related sets and also subject areas. That is, developers work together in feature teams. Inspections are an important aspect of FDD. FDD also promotes a best practice called reporting/visibility of results.
FDD Advantages and Disadvantages
Advantages
Disadvantages
Lean development is based on a simple concept. That is, build a simple solution, put it in front of customers, enhance incrementally based on customer feedback. This is important in software, because speed to market is an incredible competitive advantage. The Seven principles of lean software development methods are
One of the key elements of practicing Lean methodology is to eliminate anything that does not add value to the customer. Lean product development team should focus on learning and also decide on software product features as late as possible. That is, to eliminate the need to redo work as the market changes. At the same time, there is equal pressure to deliver as fast as possible.
Lean Software Development Method advantages and disadvantages
Advantages
Disadvantages
Kanban is an agile software methodology that is not necessarily iterative. So, Kanban method is mainly concentrate on continual product delivery while reducing overburdening the development team. They didn’t fix any particular development period. Hence, Kanban method focus on small amount of work at a time. It is only when the task is complete new task is add onto the cycle.
The entire teams focus is on getting to done for the tasks in progress. That is to say, they aim at delivering features fast in a shorter cycle times. Moreover, reducing waste and removing activities don’t add value to the team. Hence, Kanban methodology is ideal for areas where the priorities change frequently.
Kanban Method advantages and disadvantages
Advantages
Disadvantages
"Hope you understood the Agile Software Methodology explained by Technaureus Info Solutions Pvt Ltd, which is a software development company in Kerala. We also believe that it will be really helpful to you."