Agile Model
In the last session, we had discussed about V-model which is a better SDLC model as compared to Waterfall model but this also has some disadvantages, and the disadvantages of V-model are.
Disadvantages of V Model
- No Requirement Change – Once the Requirement Analysis phase is over, Requirement Change can not be done in V model as well until the first product launch and this also takes at least 3 to 4 months of time.
- Time – Time reduces a lot in V Model as compared to Waterfall but this is not enough and a new type of model is needed which is Agile Model
- Documentation overload – The V-Model requires a lot of documentation, which is time-consuming and may result in documentation overload.
- Limited flexibility unlike Agile approaches – The V-Model is not very flexible, because Requirements can not be changed. So any project requirement change is allowed, we can only use Agile development approaches.
Because of all the above disadvantages, we needed a better SDLC model, and Agile model came into picture, as a replacement.
What is Agile Model
- Agile Model is SDLC Model.
- Agile Model is a combination of iterative and incremental process.
- Agile Model works on rapid delivery of working software project.
- Agile Method breaks the product into small incremental builds.
- These builds are provided in iterations. So, These builds are called iteration.
- Each Iteration is of 2 weeks generally. We call it sprint or release.
- In Agile Model, Cross functional people work in the same team. Developers, Testers, Managers, Business Analyst, Design all are part of same team.
- We divide the tasks into small time frames. i.e. Requirements are divided into small time frames.
- Each time frame is called Release or Sprint.
- Each Release is responsible to deliver a working product with some features or tasks or requirements.
Process involved in each release or sprint
- Planning – Sprint Planning – All the requirements are planned and given for analysis. Let’s say it takes 1 day of time.
- Requirement Analysis – Requirement analysis is done by BA. Let’s say it takes 1 day of time.
- Designing – Workflows are being generated by Architect. Let’s say it takes 2 days of time.
- Coding – Code is being prepared and given for testing. Let’s say it takes 2 days of time.
- Testing – Now the testers have 4 days of time but they try to complete the testing with 2 days so that defect fixes can be tested in the remaining time.
So, We can see that, 10 working days, i.e. 2 weeks of time is needed for 1 sprint to be completed and for the first working product to be released or launched. This sprint is also called iteration.
Then in new iteration, some new requirements are added and launched, and a 2nd version of working model is launched in the 2nd sprint or iteration. So this new version will have more features. So, the features are increased now. So, we can say each iteration is incremental in terms of features.
That’s why we say, that Agile Model is an Incremental Iterative Approach. With each iteration, number of features, increases in the Software.
Example to understand Agile Model
So, Lets take an example of Ecommerce Application where we have certain functionalities such Sign up, Sign in, Place Order, Select Product and many more such functionalities. All these functionalities are called requirements in Business Analyst Language, So let’s say we have 100 such requirements. Here is the List of all the requirements.
- Navigate to eCommerce Website.
- Check Compatibility in chrome browser.
- Check Compatibility in firefox browser.
- Check Compatibility in safari browser.
- Check if you can create a Registered Account.
- Check if you can sign in with the account created.
- Check sign in is not allowed for wrong credentials.
- Check Product Search Functionality. It should load PLP (Product List Page).
- Check Product Browse Functionality. It should load PLP (Product List Page).
- Check PLP (Product List Page) Functionality.
- Check Sorting in PLP (Product List Page) Functionality.
- Check all the Filters in PLP (Product List Page) Functionality.
- Click on any product in PLP and check if it takes you to PDP (Product Details Page)
- Check PDP (Product Details Page) Functionality.
- Check Product availabilit in PDP.
- Check if the Product is available in PDP.
- Check if the Product is Out of Stock/Backorder in PDP.
- Check if the Product is a future product and if you can preorder it.
- Check Add to Bag Functionality in PDP.
- Check if you add a product to Bag, then 1 side window open up with the information that a product is added.
- Check Add to Wishlist Functionality in PDP.
- Add to Bag Feature.
- Wishlist Feature.
- Check if you an add a product to wishlist from PLP.
- Check if you can see all the products in wishlist.
- Check if you can add a product to bag from wishlist.
- Check if you can remove a product from wishlist.
- Click on Shopping Bag link, and see if you are navigated to Shopping Bag Page.
- Check if you added a product to Bag, then it must be visible on Shopping Bag Page.
- Check if the shopping Bag displays the correct product, we added to Bag.
- Check if the shopping Bag displays the correct sixe and the color of the product, we added to Bag.
- Check if you can remove a product from Bag.
- Check if you didn’t add a product to Bag, then Shopping Bag Page must be empty.
- Check if you click on checkout button on the Shopping Bag Page, then it takes you to the Checkout Page.
- Check Checkout Page Functionality.
- Check if you are able to enter Shipping Address in Checkout Page.
- Check if the Country Dropdown displays all the countries eligible.
- Check if the country is slected, then the state dropdown displays all the eligible states.
- Check if the zipcode allows only valid zip code (Country, State and City Combination)
- Check if you enter a wrong zip code, then error message is displayed.
- Check Payment Functionality in Checkout Page.
- Check all the Payment types are available.
- Check if VISA Card is available for Payment.
- Check if you can enter a Valid VISA Card number.
- Check if you can enter a Valid Master Card number.
- Check if you enter a Card number, it should be 16 digit only.
- Check if you enter a wrong card number, it throws an error.
- Check if you can enter a Valid expiry date for the Credit Card.
- If the Card expiry date is in the past, it throws an error.
- if the Card expiry date is in the future, it is allowed.
- Check if you can enter a valid cvv for a Credit Card.
- Check if you enter a cvv more than 3 digit for a VISA or Master Card, then it is not allowed.
- Check Billing Address Functionality in PDP Page.
- Check if we have an option, so that we can select billing address same as shipping address.
- Check if we can enter a different billing address than shipping address
- Check if place Order button is available in checkout page.
- Check if place Order button is clickable in checkout page.
- Check if place Order button is responsive in checkout page.
- Check if place Order button is clicked, it takes us to Order Confirmation Page.
- Check Order Confirmation Page Functionality.
- Check Order Number is displayed on Order Confirmation Page.
- Check the Item details are also displayed on Order Confirmation Page.
- Check the Order Total and Order Total Breakup is also displayed on Order Confirmation Page.
So In Agile Model We will first take the very high priority Requirements for the very first sprint or release and let’s say, we have 5 high priority requirements, with which we are going to create our first working software. So, let’s say the 5 High Priority requirements are
- Navigate to eCommerce Website
- Compatibility in chrome browser
- Create a Registered Account
- Sign in with the account created
- Sign in is not allowed for wrong credentials
Now, we should keep one thing in mind, that this first working product will be an MVP or not. So, if our first working software with minimum features, is not an MVP, then we can’t launch that in production. So, let’s say we have our first working software with the features. So, the features, that we have taken in the first sprint can not create an MVP, because any eCommerce website with above features will not be useful for the end users, because the end user is not able to place order and any eCommerce website is not useful, if it doesn’t allow to place order, So We have to add some more features to our software in the next sprint or release and check if our software is an MVP or not. Now, let’s say we are going to add below features.
- Search Product Feature
- Browse Product Feature
- Product List Page Feature
- Product Details Page Feature
- Add to Shopping Bag Feature
- Shopping Bag Feature
Now, again the working software with above features is not an MVP, because the Order creation functionality is not available yet, So we will have to add some more features to our Software. Now, let’s say we are going to add below features.
- Checkout Button on the Shopping Bag
- Checkout Page Feature
- Shipping Address and Billing Address on the Checkout Page
- Payment Option in Checkout Page
- Place Order Button on the Checkout Page
- Order Confirmation Page Feature
Now, We can say that the Product is an MVP because now we have Order Creation Feature available in the Product. We can launch this product in production now and make it available for the end user.
Our First working software with MVP is ready after 3 sprints. Each sprint is normally 2 weeks, So It took around 6 weeks of time to launch our first working software with MVP. This time is less than V Model.
So, this is how Agile Model works.
Points to remember
- There is no Requirement Document in Agile Model.
- There is no High Level Design Document in Agile Model.
- There is no Low Level Design Document in Agile Model.
- There is no Test Plan Document in Agile Model.
Now, after reading above statements, it looks like that there is no documentation required in Agile Model, but that is not the case, We will need documentation but the documentation work is very minimal in Agile Model.
So, what do we do for Documentation Part.
- We create a Ticket (Defect or Story) for each Requirement. So, 1 Ticket for 1 Requirement.
- Test Planning team will provide the Planning inputs in the ticket.
- Then, Business Analyst will analyze the requirement and provide his/her inputs. in the same ticket.
- Then Design Team will provide their inputs based on the requirement analysis in the same ticket.
- Then Developers will start writing the code and update the comments in the ticket with the status in the same ticket..
- Then Testers will test the Ticket and provide Test Results in the same ticket.
So, We can have everything Requirements, Design inputs, Test Results in 1 Ticket. This way Documentation is minimized in Agile Model.
Advantages of Agile Model
- It takes very less time to launch the first working software in the production environment if we use Agile Model of SDLC.
- Communication gap is reduced as all the team members communicate to each other.
- Cross Functional Knowledge increases within the team, such as testers can get trained on Requirement Analysis, design and development while working on the project.
- Minimal Documentation is required.
- A very little planning is required.
Disadvantages of Agile Model
- As we say, that all the team members should be a part of single team and they should work in the same time zone, It’s very difficult to achieve such a mechanism. Business Analyst could belong to United States, where as Design Team belongs to Europe, Developer might be from China and Testers might be from India, So it’s very difficult for everyone to work in the same time zone, So Pure Agile Model can not be achieved every time.
- Agile Model is suitable for a new project but when we talk about a maintenance project, then it is difficult to achieve Pure Agile Model.
- Complex projects where there is a lot of dependencies on different systems and those systems are handle by different team, then Agile Model can not be used.
When to use Agile Model
We should use Agile Model in the Projects where
- Requirements change frequently
- Emphasis on more Documentation is not there
- Timelines are flexible, Launch date can be changed
- All the Project members are in the same team and working in the same time zone
- Client is ready to discuss anything at any point of time during working hours.
Summary
We have covered below topics in this session.
- Disadvantages of V Model
- What is Agile Model
- Process involved in each release or sprint
- Example to understand Agile Model
- Points to remember
- Advantages of Agile Model
- Disadvantages of Agile Model
- When to use Agile Model
Question
Explain Agile Process.