- Trending Categories
- Data Structure
- Operating System
- MS Excel
- C Programming
- Social Studies
- Fashion Studies
- Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Snapshot of Agile Software Development
Software Development Methodology involves a comprehensive set of activities where there exists an ordering relationship between activities. In the absence of any predefined ordering relationship, the ability to produce the desired product may go for a toss. Be it any software development methodology – the goal of all software development methodologies is to produce good quality software and deliver it to the customers within the mutually agreed deadlines.
Let us first understand the purpose of specifying the Agile Software Development Methodology whose manifesto essentially comprises the following −
Individuals and Interactions − Individuals can be anybody who is involved either directly or indirectly in any software development process or a part of it. If you have embraced a fallacious supposition that individuals are those who sit in front of computers and while away their precious times, you are terribly wrong. Interactions take place between processes and individuals or sometimes between individuals and individuals only. Software industry defines ‘individuals and interactions’ in a broader horizon.
Working Software − Working software is essentially the software which meets all the requirements of clients. In the light of delivering the finest quality software, it is important to send a demo software to iron out the communicational bumps. If the demo software is perfectly in line with the requirements of clients, you can send the documentation as well. Only documentation with no demo software is undesirable.
Customer Collaboration − It is highly likely that customers may not mention their requirements in the very beginning. It is therefore important to constantly be in touch with customers and solicit their requirements. It is all about negotiations and differentiating the reasonable requirements from the non-feasible ones.
Responding to Change − Sometimes, customers may ask you to change one feature and incorporate another. In such a scenario, changes should be made swiftly and a plan should be followed to meet additional future changes and other requirements.
Agile manifesto was published in the year 2001. Agile Software Development Methodology has twelve foundational principles. Here is a very brief note on the same −
Principle of Priority
According to this principle, the highest priority is customer satisfaction. This is achieved by delivering the valuable software within stipulated deadlines.
Principle of Changing Requirements
This is same as the ‘Responding to Change’ section under Agile Manifesto.
Principle of Working Software
It is essential to send working software frequently to clients. This is same as ‘Working Software’ section under Agile Manifesto.
Principle of Consistency
It is important that business people, programmers and developers work consistently on a daily basis to meet the requirements of clients and deliver a great quality software.
Principle of Conducive Environment
Conducive environment is the ideal environment in which individuals are motivated and trust one another. It is henceforth important to incorporate the conducive environment in the work place.
Principle of Communication
The importance of face-to-face conversation cannot be dismissed and ignored. Team members should communicate with one another and exchange the information.
Principle of Progress
In any software development methodology, it is important to have a few measures and metrics of progress. In Agile Software Development Methodology, working software is the foremost measure of progress.
Principle of Sustainable Development
It is completely in the interest of Agile Software Development Methodology to promote sustainable development. For this, all the programmers, developers, users and sponsors should maintain an ideal pace till the end.
Principle of Agility
Technical brilliance is a trait that is often appreciated. Good and pragmatic software design are key indispensables. Agility is achieved through technical brilliance and expertise in software design.
Principle of Simplicity
It is important to reflect on the amount of work yet to be done and amount of work not done.
Principle of Self-Organization
Teams that are self-organized are usually a fount of best brains. They come up with brilliant architectures and excellent designs.
Principle of Acclimatization
Team members should constantly introspect themselves. They should acclimatize themselves to the changing climes and work accordingly.
Agile Software Methodology is the assortment of the following Agile software development methods −
- Agile Rational Unified Process
- Extreme Programming
- Crystal Clear Methods
- Kanban development model
- FDD – Fixed Driven Development
- Disciplined Agile Delivery
- DSDM – Dynamic Systems Development Method
- BADM- Business Analyst Designer Method
- ASD- Adaptive Software Development
- BDD- Behavior Driven Development
- TDD – Test Driven Development
The brilliance of Agile Software Development Methodology lies in the fact that it is absolutely value driven. The two vital components of this methodology are −
- Adaptive Planning
- Evolutionary Methodology
Adaptive Planning is easier said than done. It involves repeating the project cycle again and again as iterations. It involves re-planning and re-adapting. Evolutionary Design, on the other hand, is the continuous integration and validation of code through industry practices such as Refactoring and Simple Design.
One of the most popular phrases coming under the ambit of Agile Software Development Methodology is Extreme Programming which is a comprehensive set of simple yet concrete methods that help developers and programmers frequently release the product builds in short timescales in equally short development life cycles so as to incorporate all the necessary changes.
Thanks to the principled and disciplined approach that Agile Software Development Methodology advocates, many corporates are vouching for this methodology.
- Related Articles
- How Agile Development has Reshaped Software Development?
- Agile Software Development Life Cycle
- Agile Development Models in Software Engineering
- How is Agile Engineering Different from Agile Software Development?
- History of Agile Software Development- That You Need to Know
- Modern Principles of Software Development
- Importance of Agile Finance Team for Agile Product Development
- Agile Acceptance Test Driven Development: Agile Certification
- Impediments in Agile Development
- How Agile Development is Different from Traditional Development?
- What is Agile Hardware Development?
- Agile Software Process and its Principles?
- Bug Life Cycle in Software Development
- Explain Agile Software Process and its Principles
- Three Amigos Development Strategy in Agile