Key Principles of Agile Develoment
Software development is something almost every company on the globe have to adopt, and most of the company go for Agile methodologies because of its various advantages. Agile software development is a set of principles for software development. It mainly focuses on different facets of the software development lifecycle. For better understanding we have to go deep inside the roots and know about ‘The Agile Manifesto.’ we can say that manifesto is one of the important development in the 21st century. The Agile Manifesto was developed by a bunch of leading personalities in the software development industry. They gathered together in the year 2001, in snowbird, utah and decided to improve the inactivity present in the software industries at that time and actively participated by sharing their ideas and approches for software development. And developed the ‘Agile Manifesto.’ it basically composed of number of values and priciples. It focuses on customer’s feedback and it believes in energetic communication between the people who build software products. The main policy behind the Agile Manifesto are:
- Their topmost priority is to satisfy the customer by continuous delivery of valuable software.
- They accept changes even in the late development.
- Working software is delivered frequently.
- Close, daily cooperation between business people and developers.
- Projects are built upon motivated individuals, who should be trusted.
- According to them, face to face communication is the best form of communication.
- Working softwares are the standard measure of progress.
- The best architectures, requirements and designs develop from self organising teams.
- At regular intervals, the team reflects on how to become more emphatic, then tunes and adjust its behaviour accordingly.
These are the main policy or we can say its a theory and it is highly disciplined approach.
Agile development is based on the Agile Manifesto. Agile development can be very appealing and exhilarating approach. It is a way of managing IT development projects. Yet since their arrival, they have delivered better software systems in short span of time than the traditonal process. Even the Agile development follows the ten key principles . They are as follows :
- Active user involvement is essential.
- The team should make their own decisions.
- Requirements evolve but the timescale is fixed.
- Capture requirements at a high level; leightweight and visual.
- Develop small, incremental releases and iterate.
- It concentrates on frequent delivery of products.
- Complete everything before moving on to the next.
- Apply the 80/20 rule.
- Testing is integrated throughout the project lifecycle- test.
- A collaboration and cooperative approach between all stakeholders is essential.
On these key principles Agile development works. Without any doubt it is superior to the traditional methods where main focus is placed on empowering people andit inspire them to make team decisions. Its an umbrella term for various software develoment methodologies and aligned with the concepts of the Agile Manifesto. There are several methodologies that are together known as Agile, as they promote the values of the Agile Manifesto. Some of the known Agile methodologies are;
1.DSDM ( Dynamic System Development Method)
it is said that it is one of the original agile development method. It is absolutely based on all the Agile principles dicussed above. But it not very popular out of U.K.
It is also a Agile development method. But it focuses mainly on how to manage tasks with a team based develpment surronding. Its positive side is it is one of the popular and most widely adopted agile method.
3.XP ( Extreme Programming)
It is also a Agile development methodology but it is more progressive. It concentrates more on the software engineering process.
This method concentrates mainly on designing and building features. It describes specific phases and areas of work. It consists of design, domain walkthrough and inspection.
Regarding these methodology, there are some more like Crystal and Lean development.
Although, we know that DSDM is the complete method but SCRUM and XP are easy to implement.But working on Agile methodologies has its own challenges as well as disadvantages some of them are:
Training of the clients:
The clients have to go through a training process otherwise lack of client participation will affect the software quality.
No fixed price:
Software product pricing is not fixed and at times it confuses the clients.
But inspite of these shortcomings, working on Agile methodologies execute proper solutions for clients and providers. So for better software development methods, one should go with the Agile development methodologies rather than traditional methods.