This software development methodology getting good response in current IT market. Many client/customer are preferring this methodology. This agile methodology is a client oriented methodology. First we will see how Agile Methodology works and roles of Software Testers in this methodology.
In simple word the work flow goes as, client makes list of features that he wants in his software and this list (requirements) is prioritized means those feature client want early those features are written in the top of the list. And this requirement list is given to the development team. Once the requirement list is received from the client then they will select the first few points from the list and do the analysis and start developing it. Once the development is complete they show this build to client and if client is happy and satisfied then they pick the next points form the list else they will make a change suggested by the client.Key feature of the agile methodology is the interaction between the Develop, Customer and Client are emphasized.
Basically here in agile we divide the requirements in iterations and each iteration goes to through the analysis, design, coding, testing and implement phase. Each iteration has almost same duration. To develop particular requirement we assign a particular time that time or that span is called “Sprint”.
There are few sub-set of agile methodology :
1) Extreme programming :
- Extreme programming is the type of the agile methodology.
- In extreme programing the project is divided into a small builds.
- Each build has its fixed completion time (usually 2 week to 8 week).
- After the build is completed, test team start testing the builds.
- For first build, module testing is performed and the build after the first build, a module as well as integration testing is performed on it.
- After completion of each build, the build is presented to the client.
- Extreme programming is useful when client’s requirements are continuously changes.
- In Extreme programming, the developer works in pairs.
2) Scrum :
- Scrum is the sub set of agile.
- It’s widely used agile sub set because of its advantages like. It’s a light weight framework for agile development.
- It is very effective to manage complex software and project development.
- It’s basically uses iterative and incremental developmental practices.
Roles of Scrum Master, Product Owner and Development Team in Agile Methodology
1) Scrum Master :
- Scrum Master manages the team and look after the team's productivity.
- Scrum master removes barriers in the development so the team can focus on the work at hand.
- Scrum Master Co-ordinates with all roles and functions.
- Scrum Master Invites to the daily scrum, sprint review and planning meetings.
2) Scrum Product Owner :
- Scrum product is a spoke personal for customer
- He defines features of the product.
- Product Owner decides release date and corresponding features.
- He can accept or reject work item result.
- This person owns the Product backlog and writes user stories and acceptance criteria.
3) Development Team :
- It includes developers, designer and sometimes testers, etc.
- Has right to do everything within the boundaries of the project to meet the sprint goal.
Advantages of Agile Methodology
- Flexible and Adjustable.
- Useful for continuously changing requirements.
- Less documentation work.
- The customers are satisfied because after every Sprint working feature of the software is delivered to them.
- If the customers has any feedback or any change in the feature then it can be accommodated in the current release of the product.
Disadvantage of Agile Methodology
- Less documentation work which cause unclear goals.
- Sometime requirements are unclear means it hard to predict the output.
- Difficult to predict total time project completion time.
- Sometime unpredictable risk can occurs which may affect the project.