What is Agile?
Agile is the ability to create and react to change. It is a way to be successful in an environment of high uncertainty. It is an important approach to determine what uncertainties you face during your business processes and to complete the processes as you wish despite these uncertainties. Agile software development is an approach based on the values and principles of the agile manifesto and 12 principles, with a number of frameworks under it. The most important feature that distinguishes Agile software development from other software development approaches is that the agile approach examines the way people work and how people work together. Agile approach puts self-organization and collaboration at its focus.
What is Agile Manifesto?
Seventeen software gurus came together in 2001 in the US state of Utah and brainstormed about software development for 2 days. The purpose of the meeting was to increase software development productivity and to evaluate different experiences and approaches in this direction. At the end of the meeting, a consensus was reached and they published a set of 4 items, which can be considered as an output of the meeting, under the name Agile Software Development Manifesto. This declaration turned into a mainstream by becoming a guiding and target vision for increasing the success achieved in software projects over the past 15 years.
Individuals and interactions over processes and tools:
It is not unreasonable to use processes and tools to generate value up to a point, but at a point it starts to disrupt our interactions with individuals. Maximizing interpersonal interaction in the choices we make will make our work efficient..
Working software over comprehensive documentation:
In the software development process, employees may sometimes think that too much documentation can contribute positively to the software they are developing, but at the end of the day, pages of documentation are useless if there is no software that running. It is necessary to avoid complicated and numerous documentation as it puts heavy burdens on the shoulders of the employees.
Customer collaboration over contract negotiation:
Positioning the customer not as a separate party but as a part of the team, the sense of trust and belonging will positively affect the work ecosystem. Contracts, on the other hand, have often been the factors that make it difficult to progress. The client must be actively involved in the process to achieve the right outputs.
Responding to change over following a plan:
It is not possible to anticipate the whole project process. There will always be points to be skipped or ignored. For this reason, it is important to adapt the plan to this change in order to adapt quickly to change. It should not be forgotten that the plan is a means to achieve the goal.
That is, while there is value in the items on the right, we value the items on the left more.
- Customer satisfaction through continuous delivery of the product
- Divide large chunks of work into smaller and achievable tasks for quicker completion and easier integration of changes
- Adhere to the decided timeframe for the delivery of a working product
- All stakeholders must frequently collaborate to ensure that the project is going in the correct direction
- Create a supportive environment to motivate team members and encouraging them to get the job done
- Prefer face-to-face communication over other methods
- Working software is the primary measure of progress
- Try to maintain a constant pace of development.
- Maintain the quality of the product by paying attention to technical details
- Maintain simplicity
- Promote self-organization in the team
- Regularly reflect on your performance for continuous improvement