Agile Methodology is a mindset. It’s a different way to think where the stress is not only on practices but rather in thinking like an agile team. The team is push to be self-organize. The culture is not of control but of motivation where senior members coach the team. Traditional method of plan, execute and then test can work well in other industries. But with software it is a bit different. There is this cone of uncertainty. You know most about how to deliver the product at the end of the product. So many decisions that you make at the start needs to be change, which is very expensive as you approach the end of the product. So agile incorporates minimum amount of decisions to take to start in order to have flexibility to make changes.
Agile values individual interactions over processes and tools, working software over documentations, customer collaborations over contract negotiations, responding to change over following a plan. We work with agile practices in order to save time the team loses during context switching, where the team is involve in multi-tasking and more time is utilize in switching between tasks than doing the actual task. There is no problem of handoffs, as work gets break down into smaller batches which reduces the time customer gets to see the product.
The best way to communicate progress we think is to show the product to customers. Therefore in agile methodology, sprints involve product owner who re visits all the values that we are laying stress upon and keeps the developers and the whole team in line with the actual value that the product is going to serve. Changes are welcomed even late in development if it is for value for the end users. We have different agile frameworks like SCRUM, Extreme programming and KANBAN. Generally, we follow SCRUM, where there are different roles assign to different people. There are five events- Sprint, Sprint planning, Daily Scrum, Sprint Review and Sprint Retrospective. There are three artifacts which we prepare- Product backlog, Sprint backlog and product increment. We also use KANBAN framework in some projects in order to keep track of user stories and their completion most efficiently.
One needs to start small and then progress. SCRUM is best for any company that is for the first time going to become agile. Each ceremony of SCRUM is design in such a way that more emphasis is on effective communication. We have designated Scrum masters to carry out SCRUMS. The sprint planning meeting is one where the product owner, Scrum master and the team meet in order to decide what amount of work they are going to take up in the following sprint and what will be the acceptance criteria for each work. In daily scrum the team and the Scrum master meet for reviewing daily work progress and setting up target for the following day. In Sprint review meeting, again the product owners, Scrum master and the team meet to review the sprint that has passed, and to discuss upon the items that were not able to be completed in the allotted time of sprint. The ceremony of sprint retrospective involves the team members to sit together and discuss about what went wrong and what could have been done better. Taking communication as the main key methods for improving the efficiency are discussed.
We are in comfort with uncertainty and thus are open to changes. Teams examine their processes and tools and then commit to fix problems and improve continuously. We also follow practices in order to make our office floor agile. The seating arrangement is done in such a way that employees who work on the same project or need inputs from each other sit nearer. There are separate places for scrum meetings and regular discussions. We take help of tools like JIRA and Rally in order to track the progress of the work actually happening on the floor. They provide charts, reports and insights to the management thus helping in tracing individual’s effort. We prioritize customer demands according to the value served and try and involve customers at every phase of development. Prototypes are provided to customers after every fixed period of time in order to understand customer’s expectations. By using agile methodology, we have increased our customer’s trust in us and at the same time have also utilized the manpower efficiently.