
The Agile methodology of Software Development follows an iterative and incremental process. It works a bit more advanced and more efficient.
Agile process involves working towards the features of the software. If a customer wants a particular feature quickly, we develop that particular feature accordingly and provide it to the customer. In this method we complete the software by completing small features.
Agile is like any other software development life cycle method to deliver the project. In this method we go through different phages.
Using agile methodology, we provide project delivery in continuous integration and continuous deployment manner. In other words, we can say that agile methodology is a combination of iterative and incremental models. But it has some advance features.
Suppose we have a large project, in this case we will break large projects into smaller pieces, we call the smaller piece an iteration and we will work on iteration in parallel. We try to develop an iteration. If we complete one iteration, we test it then we release it.
After releasing the iteration we try to take feedback from customer. Feedback is one of the important things in any development. Based on the feedback, if we make changes to the iteration and then we re-release the iteration. This means that we try to bring the product to market faster by splitting the large project into smaller projects/parts and developing in parallel.
Table of Contents
How does Agile Methodology help us?
This is an extreme programming method that we use in programming. If we use this method we focus on how we can deliver the product quickly and with quality.
Waterfall model as we read in SDLC. If we use this model in our software development then we should have complete knowledge about the requirement then only we can proceed.
If we talk one more model such as a prototype model, in which a sample is shown to the customer, based on the sample we build the software.
Now what is the biggest problem that the customer is changing his requirement again and again. The frequency of changing requirements is very high. In this situation the agile helps us.
Steps of Agile Model
The agile model consists of the following steps:-
- Requirement gathering
- Requirement analysis
- Design
- Coding
- Unit testing
- Acceptance testing
Process of Agile methodology of Software Development
- Agile in software development means that if there is a change in requirement, a change in technology or a change in the team then we should do smoothly. We will be able to adopt these changes.
- It follows an iterative and incremental process. It works a bit more advanced and is a bit more efficient.
- We interact directly with the customer, take feedback and then make changes based on the feedback.
- It has one iteration of one to three weeks. Within this time we try to complete the taken part for requirement.
- There will be deliverable software in every incremental.
- Whatever team will be there, there will be experts in its work.
Advantages of Agile methodology of Software Development
- In this methodology the product delivery is continuous.
- Face-to-face communication with the customer to know whether we are going in the right direction.
- In this the customer representative has the idea of each iteration so that he can easily change the requirement.
- If we want to change something, the ability to change is high in this method. It does not take much time.
- Obviously it will take less time to develop the product.
Disadvantages of Agile methodology of Software Development
- It does not handle complex dependencies.
- Agile mostly relies on customer representatives. If a customer representative knowingly or unintentionally provides any wrong information, the software may be inaccurate.
- Less Documentation : Agile that does not do much work for documentation and interaction. It says that we should try to implement what we need instead of wasting time on documentation and interaction with the client. You should not spend too much time on designing.
- Maintenance Issues : It has maintenance issues as one does not have proper documentation. Let’s say you started an iteration, delivered it to your customers, took it to market, and it’s working fine. So after 2 months you created a new one. There may be a possibility of some problem in case of first iteration. So what do you do if you forget the requirement and do not even have the documents? It’s a bit difficult to maintain if you do not have the documentation.
Principles of Agile Process Model
There are 12 principles of the agile model, according to which this model works. Those principles are as follows:
First six principle of Agile Process
- The main objective is to satisfy the customer within the given time or time frame.
- If there is a need for frequent change, we accept it and implement it.
- It states that whatever software we develop in a short time, we should deliver it. The time could be 2 weeks or it could be 2 months. Software delivery should be frequent.
- Every member of the team should be motivated, have the necessary environment, provide whatever is needed and be confident that he/she can get the job done.
- It requires sponsors, developers and users to keep a constant pace. Suppose we complete 10% of the product in the current month, 50% in the next month, 60% in the next month. Agile does not accept this kind of flexibility. Because it promotes sustainability development. Increment should be by same % or same number.
- Whatever business people have invested in product development and software developer who is working to develop the product. Everyone has to work together so that the product stays up to the mark. The approach should match.
Other six principle of Agile Process
- If you want to measure how much of the product is complete, you have to run it and then check if it is working fine. It also shows related software development progress.
- If you have to do some communication, you have to share some information, you have to convey information, in this case you should do face-to-face communication.
- Whatever be its main focus, it should be on technical excellence. Agility should be in accordance with principles.
- If something does not work or whatever we have to do then teams and individuals need to know about this.
- It should be the organizing team because an organizing team can have the best architecture, the best design. Because you mainly do product development rather than more documentation.
- This process tells us that we should meet at regular intervals. Product development progress, how can the quality of the product be increased, what is the behavior of the product, is there any new idea that we can implement. All these discussions should take place in the meeting. It helps us to tune software development.
Agile SDLC Models
There are following models in Agile:
- Scrum
- Extreme Programming (XP)
- Crystal Methods
- DSDM
- Feature Driven Development (FDD)
- Lean Software Development
In Conclusion, Whatever inputs we have or whatever customers tell us what they want. We take that as a requirement. That is, as much input as we got, we started doing our work. Then on the basis of that we prepared the software and then we do the coding, then we test it whether it is working properly or not. The last step is maintenance. In this step, if the customer specifies any other requirement then we make the changes and we incorporate the same.