We Are Going Agile!

Published on : Jan 26, 2016

Category : General

arunkumar

Author

Our team is getting matured in terms of experience and composition, so as our flagship product – BizTalk360. We have added new features, improved existing features, and giving a complete face lift in terms of UI/UX with version 8.0. We are also identifying existing issues in the product through our QA practice and most importantly by listening to our customers for their experiences with the product – issues they face, improvements, and suggestions they share. We have been doing this in the past to improve the product and support activities. Till sometime, Saravana Kumar (CTO/Founder – BizTalk360) was interacting with each team member almost on a daily basis to coordinate these efforts. This was fine to some extent as the team was small and the scope defined was limited. Over the period of time, as we think of new product lines (for e.g: We launched BizTalk NoS last year), expand the scope of the product and support to keep our competitiveness, we have been increasing the team capacity in all departments – Development, UI/UX, Testing, Support, Documentation, Sales & Marketing. In the past, we have written blogs on some of the tools we have used to coordinate our efforts – Asana etc. For sometime now, we have been using JIRA software for task tracking and management. We found the tool more than useful and adding great value to us on a daily basis across expanded and distributed teams. This situation demands a better process and practice. Practically it is impossible for Saravana to get connected with everyone in the company daily; however, we still need to keep the connect intact and make sure all our efforts are transparent across all levels. So as a team, we felt going Agile with scrum can improve this scenario, and we followed Scrum in BizTalk360 briefly this time and we wanted to take it seriously.
I personally have taken serious effort in bringing this across technical teams recently, which gives good visibility into what’s going on and also helps teams to focus on what’s important. – Saravana Kumar
As a team, almost entire workforce of BizTalk360 started getting introduced to Scrum practices by watching few good quality online courses and videos. Our team comprises of highly experienced people who have worked for century old organization that have strong practices, new age enterprises that are dynamic and relatively new graduates and interns. Scrum is always about team work and collaboration. We thought it would be really fun and valuable if we learn the practice through a certified coach. We partnered with KnowledgeHut, one of the fast growing Management Consulting and Training firm for a two day intensive training on Scrum for the team. We identified their course “Scrum Development with Atlassian JIRA Agile Training” would perfectly suit our need. Our trainer Rajshekhar C is an independent management consultant for various organisations in India, Europe and APAC countries. He has a rich training experience both on Scrum and Kanban. The training was scheduled for Jan 21-22, 2016 (Thursday and Friday) and our technical team members from Development, Testing and Support managed their availability for the sessions.

Day 01

The day started with comprehensive introduction to Agile and Scrum practices. It was filled with interactive and fulfilled sessions. We discussed the traditional Waterfall and other software development models on one side and agile models on the other, compared the advantages and disadvantages between them. The following modules, which are called – Scrumdamentals, were covered in depth.
  1. Agile Fundamentals
  2. Agile Development
  3. Why Scrum
  4. Scrum Framework
  5. Team Roles in Scrum
  6. Scrum Artifacts and Scrum Ceremonies
  7. Epics, Themes and User Stories
  8. Scrum Estimation Techniques
  9. Velocity, Forecasting Velocity
  10. Scrum – Planning, Tracking, Monitoring and Reporting
  11. Why JIRA Agile for Scrum
    The team was intensively listening and discussing with the trainer to make their understanding of the principles clear and how to put them to practice efficiently. As a part of going Agile we also discussed about the necessity of Emotional Intelligence, Problem Solving, Conflict Management and Lean documentation in any organization.
Scrum Principles explained Scrum Principles explained Scrum Principles explained
    We also showcased some of the internal project structures that we had built using JIRA and sought suggestions from the trainer to improve on them.
Discussing our exisitng JIRA usage Discussing our exisitng JIRA usage The day came to a close with creating profiles in JIRA software for the participants.

Day 02

On the second day of our going agile with scrum training, we started to experience the learning in action. The day started with splitting the participants into two teams with a nominal size of 9 members each. The team composition was maintained in such a way that it had a right mixture of members required for accomplishing the tasks through Scrum principles. Each team comprised of: Product Owner Scrum Master UI/UX developers Programmers / Application Developers Testers We took a case study for the day long exercise – Developing a Web based portal to file IT returns for the Indian Income Tax System. Each team was provided with a same set of screenshots of possible web pages that need to be considered for the exercise. The following activities were done in collaboration with JIRA software.

Product Backlog

The product owners were subjected to prepare a backlog of items as epics and simple user stories. We learnt the advantage and the simplicity of requirements exchange in writing user stories in the pattern that follows – Who? What? Why? – “As a User, I should be able to…., So that…”. A user story is defined in such a way that it cuts across almost all the layers of the software development – UI, Business Logic, Services / API, Database etc. The architects and developers assisted them with creating the necessary tasks and preliminary preparations. Product Backlog Preparation Product Backlog Preparation

Backlog Prioritization

The product owners mentioned the value of importance across each backlog. Then came the interesting part – Estimation through Planning Poker. The team really enjoyed this session with some serious arguments, funny comments, clarifications and finally collaboration. Scrum Master facilitated this session. The product owners explained the user stories, features and requirements as the team listened. The team assigned appropriate story points against each user story. We started the exercise with sticky notes and then migrated them to the JIRA tool. Product Owner Explaining User Stories, Features and Requirements to the team Planning Poker: Team Members choosing Story Points Planning Poker: Team Members displaying their Story Points

Release Planning

Based on the prioritization and estimation, 3 sprints were planned for each team for the initial release. In the best interest of time to learn the concepts and the tool, each sprint was planned for 30 minutes that included:

Sprint planning:

During the sprint planning, team members created necessary sub tasks and estimated hourly efforts required to complete each task. This enriched the spring backlog. Scrum Master facilitated this session by discussing the availability of team members, planned holidays, buffer needed and so on. Based on the estimation and the availability, the sprint backlog was agreed either by taking additional tasks from or pushing some to next sprint. The sprint was scheduled. The sprint boards had three columns / status – To Do, In Progress, Done. The tasks were deferred assignments. Sprint Backlog Preparation Sprint Backlog Preparation Sprint Backlog Preparation

Daily Stand up

The team members picked the tasks that they can carry out for the day or two and assigned them across their names. The teams were advised to work only on two users stories in parallel. We also learnt the importance of ‘T Skills’ – breadth and depth to reduce dependencies. For e.g.: as a backend developer, the person should have depth of knowledge and experience in core programming. He also needs to have breadth of skills in UI/UX and testing to avoid always being dependent on others with those skills to proceed with the tasks. In reality, Daily Stand up is to be scheduled for 2 minutes per team member and strictly to present the following to the team:
  1. What I did Yesterday?
  2. What I will be doing today?
  3. What are the impediments (blocks)?
Any other technical discussion should be kept out of the scope of this meeting. Scrum Master is expected to facilitate this and help the team overcome impediments. Trainer explaining how to run daily standup Scrum master facilitating meetings Trainer explaining how to run feature explanation meetings

Mock development sessions

After the daily stand up, the team involved in moving items across different columns in the sprint board. The sprint board helped as a platform for the daily standup and task tracking. Mock development sessions Mock development sessions

Sprint Review / Demo

Towards the end of the sprint, the teams presented their development to their respective product owners and received feedback.

Sprint Retrospective

This is one of the very important meetings in the Scrum process which will help the teams to revisit their experience in the just concluded sprint and address the challenges. The importance of this meeting was discussed with some anecdotes and stories from our childhood. The teams were expected to discuss:
  1. What was right during the sprint?
  2. What was wrong during the sprint?
  3. Suggestions to improve the collaboration
The above events were carried out for 3 sprints. In the course of this exercise, we came across different charts like – Sprint burn down, Release burn down, velocity etc. For our surprise, each team came with different outcomes. In some sprints, the teams were able to complete the tasks, while some were incomplete. We did see different patterns emerge. This helped us a lot to discuss on challenges in software development and handling teams with different skill sets, experience and real time situations. Various aspects and features of JIRA software were discussed and practiced. We got introduced to JIRA confluence – a document / content management system that can be integrated with scrum activities. We learnt handling various issues in the software like – Epics, User Stories, Tasks, Sub Tasks, Bugs etc. We also tried time logging features. Following modules were covered as a part of day 02 activities:
  1. Atlassian JIRA Agile – Overview
  2. Using JIRA Agile for Scrum
  3. Modes in JIRA Agile for Scrum
  4. Diving Deep into Scrum with JIRA Agile
  5. Various Scrum Reports in JIRA Agile
  6. Creating Scrum Dashboards in JIRA Agile
JIRA software explained JIRA software explained JIRA software explained At last, it was an intensive and knowledgeable workshop.
Agile and Scrum is not a silver bullet that solves the problems and overcome challenges in any organization. Going Agile is only a practice which shows where the problem lies and it is always the duty of the team to overcome them and be successful.
Participants with the trainer We believe transforming to Agile will empower our team and streamline our processes that in turn will keep our team and customers happy.