by Priya Ravi
Agile is a software development-testing methodology where development and testing go hand in hand throughout the cycle. This ensures the product is tested at each stage of development, unlike the Waterfall model.
ALTRES Technologies follows a 2-week sprint cycle. Initially, we used Scrum, the Agile-based methodology where modules taken up in the sprint were developed in the first week and the second week was dedicated to testing. The problem with this approach was that the estimation and the effort did not match. At the end of the cycle, too many items were getting moved to the backlog.
To cope with this problem, we have now adopted a combination of Scrum and Extreme Programming (XP). The modules are broken down into the smallest possible sub-modules and the estimation is made day wise , just the way it is done in Extreme Programming. At the end of each day, the code is committed and the testing is done on the next day for that submodule. This combination has helped achieve better estimation, better testing, and an increase in productivity.
|Steps followed in each of the Agile methodology types|
|Scrum||XP||Scrum + XP at ALTRES|
|1-4 week cycle, at the end of which the code is deployed||Strict daily deployment||2-week cycle, where the tasks is divided day wise (submodules) and code is deployed when a submodule is finished|
|Scrum master is in charge of daily meetings||No scrum master to monitor daily meetings||Daily stand-up to keep the team updated with the task status. Scrum master to monitor daily stand-ups|
|The sprint is tracked with tools like the Kanban board, JIRA etc.||No tracking done||The whole sprint is tracked in JIRA|
|Sprint planning at the beginning of the sprint and sprint retrospective meeting at the end of the sprint||No planning or retrospective||Sprint retrospective of the ongoing sprint and planning for the next sprint are done on the last day of the current/ongoing sprint|
|Tasks are divided by module||Tasks are divided day wise||Modules are further broken down to submodules and then executed for better estimation and productivity|
|Testing happens at the end of the sprint||Testing is done daily before deployment||Each day submodules are tested for the work done on the previous day, which ensures the module is defect free|
Comparison between different agile methodologies
The sprint cycle remains the same–two weeks. Initially, the tracking was done on a whiteboard which is now replaced by JIRA, where the work is tracked on a dynamic basis. Tasks are created and assigned along with the estimated time. The final report can also be generated with JIRA.
The steps followed at ALTRES Technologies throughout a sprint are as follows:
- Sprint Planning: It begins with the sprint planning, which is done on the last day of the previous sprint. The tasks are broken down to the smallest possible submodules by each developer so they can be prioritized and estimated.
- Stand-up: Each day of the sprint begins with a stand-up meeting. In this meeting, the tasks completed, the tasks to be taken up today and blockers, if any, are discussed and updated by the whole team.
- Development: As the module is divided into smaller submodules, the development task is set for each day. If there were any defects found during the testing of the previous day’s module, those take priority over the task.
- Testing: A round of unit testing is performed by the developers before handing over the module to the tester. This ensures the software bugs are found early. Next, the module is handed over to the testing team to make sure the functionality is working as expected. Also, a regression testing is conducted to ensure the new module is not breaking any existing functionality.
- Demo/Delivery: On the last day of the sprint, the modules completed in the current sprint are demonstrated to the entire team, some of which is co-located and some remote.
- Sprint Retrospective: The sprint retrospective meeting is conducted on the last day of the sprint, along with the sprint planning for the next sprint. The points discussed in the retrospective meeting are:
- What worked well in the sprint?
- What could be improved?
- What do we commit for the next sprint?
The advantages of implementing Scrum + Extreme Programming methodology at ALTRES are as follows:
- As the main module for the sprint are broken into submodules, the estimation has improved.
- Daily tasks are already planned for developers and testers hence improving the effort.
- There are comparatively less items getting moved to backlog.
- Better communication between developers and testers.
- Bugs are identified and fixed in the development stage.
- Every submodule has its own testing phase.
- The designer has frequent opportunities to look into the product and thus can make changes if required.
Because of all these advantages, this combination of Scrum and Extreme Programming, as our Agile methodology, has suited our business purpose and helps us achieve better productivity.