Development Methodology - Agile
Updated: Apr 9, 2019
'Deliver' is the name of the game, choose wisely the way to enhance the path to a solution. In this article I will review most innovative approach in developing software methodology. we will understand each other advantages and disadvantages and compare them at high level.
What is Agile?
Agile software development is based on an incremental, iterative approach. Instead of in-depth planning at the beginning of the project, Agile methodologies are open to changing requirements over time and encourages constant feedback from the end users. Cross-functional teams work on iterations of a product over a period of time, and this work is organized into a backlog that is prioritized based on business or customer value. The goal of each iteration is to produce a working product.
In Agile methodologies, leadership encourages teamwork, accountability, and face-to-face communication. Business stakeholders and developers must work together to align the product with customer needs and company goals.
Agile refers to any process that aligns with the concepts of the Agile Manifesto. In February 2001, 17 software developers met to discuss lightweight development methods. They covered how they found “better ways of developing software by doing it and helping others do it” and included four values and 12 principles.
The highest priority is to satisfy the customer through early and continuous delivery of valuable software.
Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
Business people and developers must work together daily throughout the project.
Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
Working software is the primary measure of progress.
Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
Continuous attention to technical excellence and good design enhances agility.
Simplicity--the art of maximizing the amount of work not done--is essential.
The best architectures, requirements, and designs emerge from self-organizing teams.
At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Purpose: Keeping the team players sharp and focus on their targets.
Synonyms: Daily Scrum
Clarification: In order to simplify we will take an example from the sports area. Let's look at football, soccer, basketball and so on.
The gathering - What is happening before the game begins? all the team players that get on the field, stand up and circle the manager.
Tasks sharing - Every team player knows his location on the field, strategy, and role, the team player act has individual to accomplish his own task and deliver it to the other team players that work together in order achieve a leading goal to win the game. To simplify even more: every teammate knows what is on the line and what's next.
Key Questions - Every team member needs to answer tree simple questions:
What did I accomplish yesterday?
What am I hoping to accomplish today?
Are there any barriers that can block me today?
Consistency - At the same time and place every morning. The team are free to choose the time of the daily scrum. Once they time and place has been chosen, the team will commit to attend the daily scrum.
Prosperity - everybody needs an anchor, the teammates get familiar with each other, and in their own pace can feel secure to share with each other, feel quite comfy to step forward and speak on their mind.