KEY CHALLENGES IN AGILE IMPLEMENTATIONS ON QA EYES
Agile methodology is getting more popular in software projects due to its iterative method and early release and quicker customer feedback. Considering the benefits of Agile over traditional V-Model, we decided to implement it in one of our current projects. We formed a team of senior members from both Onsite, Offshore which were responsible for analysing and planning to implement the agile methodology in phases. This team first analysed and understood the possible reasons for failure of agile over traditional models through the existing projects. Our team concluded that following milestones needs to be achieved for a successful transition from traditional model to agile methodology of project execution.
IDENTIFYING CORRECT AGILE METHODOLOGY
Generally processes are aligned as per the customer needs though both service and solution based projects have different set of needs. Hence it’s essential to identify correct agile model as per the project requirements. We conducted an audit process to analyze and evaluate the current state of processes and their “Gaps”. Offshore and Onsite Project managers collaboratively analyzed the data captured from audit and suggested best suitable Agile model for projects across organisation. Largely we found “Scrum and Acceptance Test-Driven” as the better model for solution projects whereas for Support “Kanban and “Acceptance Test-Driven” is preferred.
While making the transition to agile, it is best to avoid doing a 100% roll-out. Instead, it is preferred to make an incremental transition in phases. We defined “Sprint Zero” as the first iteration of the project wherein we tried to complete following project preparation activities:
- Planning and implementation of the required tools: Analysed given tools as per the project requirement and set a milestone for their implementation.
- Task Management and Defect Tracking tool
- Configuration Management
- Software Build and Deployment tool
- Test design and execution Tool
- Test Automation
- Create an initial Testing strategy: Created initial testing strategy for all Test Levels by analysing different types of risks and their solutions.
- Defining the Test metrics: Defined test metrics to track the testing progress..
Redefining Processes & Team Roles It is very essential to define the correct and effective process for Agile where we have to deliver quality and a working product in multiple sprints. Hence we identified following QA processes to implement Agile:
- Test estimation and test case design: Process was set up to involve tester in all sprint meetings to understand the requirement, scope to provide estimation and track test cases. All stakeholders had to review test cases and provide sign off.
- Defining the defect tracking process: We had set process to track defects in defect tracking tool
- Defining the entry and exit criteria: We had defined the entry criteria, which forced developers to deliver Unit Test, build for testing. Similarly we had set the exit criteria, to deliver the working shippable product to the customer.
- Scrum Status meeting: We had set up a process for conducting Scrum Status meeting twice a week where every team member had to update his status and highlight any concerns/issues.
We also changed the team roles and responsibilities to adopt the Agile Scrum methodology. We introduced the Scrum Master role who was responsible for conducting the Scrum update meeting and monitor the progress of each of the team member’s task assignment and deliver the product on time. Automate Regression Testing In Agile scrum methodology we had to continuously deliver the working product in short duration. Hence it was very difficult to execute all the regression test cases manually. We used “TDD” technique to automate the test cases that could be used for the Regression Testing which also was executed as a part of Build process. Retrospectives After each sprint, entire team collaborated for retrospection where both the things that what went well and where we faced difficulties were discussed along with the improvement areas and solutions for these issues. Retrospectives can result in the test related improvement areas like testing efficiency, identifying quality test cases, testing productivity. All required stakeholders worked on these areas to identify the root cause, their solution in retrospective meetings which were implemented for future sprint releases.