While learning software engineering processes, you must have heard a term Agile and Agile Methodologies. Before going to learn Agile, lets revise the basic model of software development process and that Model is Water Fall Model. In water fall model we have seen how development cycle flows from planning to deployment. Here everything gets repeated over smaller time intervals. It is somehow similar to traditional incremental model. Where we keep planning, building, testing and deploying.
Agile Manifesto:
We are uncovering better ways of developing software by doing it and helping others do it.
Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
1) Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
2) Welcome changing requirements, even late in
development. Agile processes harness change for the customer’s competitive advantage.
3) Deliver working software frequently, from a
couple of weeks to a couple of months, with a preference to the shorter timescale.
4) Business people and developers must work
together daily throughout the project.
5) Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
6) The most efficient and effective method of
conveying information to and within a development team is face-to-face conversation.
7) Working software is the primary measure of progress.
9) Agile processes promote sustainable development.
The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
10) Continuous attention to technical excellence
and good design enhances agility.
11) Simplicity–the art of maximizing the amount of work not done–is essential.
12) The best architectures, requirements, and designs
emerge from self-organizing teams.
13) At regular intervals, the team reflects on how to become more effective, then tunes and adjusts
its behavior accordingly.
Agile is considered as a philosophy. It is a way to build something functional over a small interval of time. Agile actually intends to produce smaller parts of working software over different intervals of time. It is easy to understand what agile methodology is? but actually difficult to implement. It is something that comes with experience and practice. Everybody is not capable of identifying the smaller functional parts of the software and even if they identify, it is difficult to implement over smaller period of time. One can always adopt this technique in life so as to make life easier. Because once you start following agile you make utilization of your skills and assets in the best possible way. Agile has become the most popular way of building softwares. It has also been adopted by companies in their overall processes. Developing something functional everyday.