Distributed Agile Best Practices – How we do it at Ness?

Veera Srinivas Raneru is a Senior Technology Lead responsible for expanding the growing portfolio of digital transformation services at Ness Hyderabad, India. He works on developing innovative technology solutions, and implementing devops practices like CI/CD/CT to increase agility in data latency projects. Veera’s recommendations are based on his personal experiences and research. He is currently helping Ness clients work through challenges specific to the Coronavirus pandemic and the pursuit of productivity enhancements is what inspired this article.

Introduction: Improving speed to market 

Leveraging best practices and investing in methodical mentoring to develop successful distributed agile teams ultimately helps in reducing product delivery timelines. It also helps the organization gain a competitive edge because of the benefits this transparency brings to the working culture.

Distributed teams provide a hybrid approach to get high-quality work completed productively for both onsite and remote workers (or completely remote and distributed work as is the case during Coronavirus). This will vary according to the company’s requirements. [1]

A distributed development project means a team members working collaboratively on the same project separated by distance, time zone, and culture. The benefits of this approach include increased speed for assembling specialized talent, cost differentials by geo, the advantages of “follow-the-sun” and the emerging management theory disciplines that champion virtual organizations. Some of the key challenges with this model relate to the complexity of managing multiple implementation partners, cultural differences, project continuity and knowledge retention, project methodology and processes, client visibility on progress, infrastructure, and overall ease-of-communication. [2]

Success Stories: Where distributed agile has really worked

IMVU is a virtual 3D avatar building and chat community that is admired by over three million people on Facebook. IMVU succeeded because it utilized Agile test-driven development and Scrum methodologies. It adopted sound operational strategies for its projects and this helped the organization grow. [3]

Tantus Technologies adopted scrum practices as a standard for all its projects. Within a couple of years, it transformed into a more Agile company, reducing its costs, increasing the quality and effectiveness of its software and the satisfaction of customers. [3]

Tools like Slack and Facetime can help the distributed teams feel like they are in the same room as their colleagues, helping the whole team be more connected and productive. [4]

Behaviors that drive successful delivery

Daily Scrum Meetings
Daily scrum meetings are typically held on the same channel and at the same time each day. Usually, they are held early to set the context for the coming day’s work and are strictly time-boxed for 15 minutes. Modern telecommunication/video tools are essential for the team members to communicate easily. [5]

Sprint Planning
Sprint planning is a time-boxed working session of about one hour every week during a sprint. This hour is where the sprint backlog is defined and where the entire team agrees to finish a set of product backlog items by a specified deadline. It is a collaborative effort involving a Scrum Master, who leads the meeting, and a product owner, who clarifies product backlog details. [6]

Some of the techniques that we use to help the distributed agile teams become more effective are:

  1. Get the team physically together on a periodic basis; this will help increase the team’s ability to work more effectively. (This one is on pause during Coronavirus).
  2. Equip the team with a video conferencing/screensharing facility.
  3. Develop a sprint planning checklist for seamless continuity. During sprint planning, capture all the valid information for every issue, such as a clear description, priority, status, estimated time to complete, and acceptance criteria. During a sprint meeting, tick off the items in the checklist and make sure that all the points are covered.
  4. Review the organization’s definition of “done” before the sprint planning.
  5. Define and agree upon the acceptance criteria for the user stories.
  6. Make sure that everyone is involved and contributes during the team meeting. [7]

DevOps – Continuous Integration/Continous Delivery and Continuous Testing 

DevOps culture is an aspiration for many businesses. When done well it is characterized by increased collaboration, removal of silos, shared responsibility within autonomous teams, improved quality, valued feedback and increasing use of automation. Many DevOps values are agile values and DevOps is a logical extension of agile. It is a software development approach which involves continuous development,continuous testing, continuous integration, continuous deployment and continuous monitoring of the software throughout the development life cycle.

Continuous integration is the practice where team members integrate their work at least daily so that integration errors are discovered early. This process produces a clean build of the system several times per day. It also promotes vital feedback between programmers and customers, which helps the team get things right earlier and more often.

Continuous testing is the process for maintaining continuous quality by executing automated tests for every commit. This is done as part of the software delivery by producing a test report on the business risks attached with a software release. It increases team confidence in improving application quality and efficiency.

Continuous delivery speeds up time to market and productivity. Software artifacts go through rigorously established automated tests and tools before they are deployed in the production environment. [8]

These practices constitute a complete flow for high quality deliverable code packages. The new releases are just one click away from being published with fully functional high-quality features with minimal human intervention. [13]

Scrum Ceremonies 

Stand-ups

These are synchronous meetings with distributed teams. There are many tools like Slack that can be used for running stand-ups effectively and consistently.      

 Reviews, retrospectives, and planning meetings via video conference

We schedule these meetings at a common recurring time. In the case of distributed teams, Slack offers many features to allow remote collaboration. Online whiteboards, such as Realtime Boards/Miro, can enhance collaboration by providing visual stimulus. Trello, LeanKit, Jira, and TFS are tools for storing and managing requirements. [2] We use this at Ness, and there are also many of the same features in Microsoft Teams.

Short iterations  

Shorter iterations work best when the level of distribution is high. Agile teams in a distributed environment prefer short iterations (2-3 weeks) for successful implementation. The higher the level of distribution, the increased chance of miscommunication. With the help of shorter iterations, testing teams who are remote can better cope with frequent changes and updates to the product. [2]

Team Environment
It is hard to develop true friendships remotely. Meeting in person at least once a year or as often as possible is the best way to create stronger bonds within your company. Joining conferences with remote teams greatly helps too and Coronavirus has encouraged our Ness Team to hold virtual coffee mornings and even tournaments for boardgames and online sports.

When working virtually, it takes extra effort to keep people feeling committed to their team. They need to know that they are contributing true value to the team’s common goal, but are also valuable to the team’s success in achieving its goal. Some ways to achieve this are:

  • Having and maintaining non-work-related communications
  • Keeping your team informed about how the company is doing. People like to know what is happening in other parts of the company, how they fit in, and how they are contributing to the bigger picture
  • Sharing the future vision of the company
  • Getting everyone in your team involved in important events and projects
  • Sending meaningful gifts on birthdays and recognizing special occasions

Tools and Techniques
There are various tools to help the distributed team in maintaining product backlogs, planning sprints, organizing and managing the task boards, tracking bugs, and monitoring burn-down. OneNote and Excel in a shared environment like SharePoint are also helpful. Other great communication tools to overcome the challenges associated with distance include:

  • Skype: It serves as an alternative to face-to-face communication for the distributed teams
  • Desktop Sharing: It helps the presenter to share his screen to communicate intentions
  • Slack: It is a great tool for cutting down barriers of different locations, providing features such as voice calls, video calls and instant messaging [9]
  • WhatsApp, Viber, Hangouts, Google Duo, Telegram are used for Instance messaging, 1-1 meetings and group chats. [12]

Similarly, VOIP is an important system for daily stand-ups and conversations. It is highly scalable and provides interoperability. Some of the technologies that facilitate communication with the distributed teams are:

  • Chat: Slack, Twist, Google Hangouts
  • Project management: Trello, Jira, Asana
  • Web and video conferencing: Google Meet, Zoom, Cisco WebEx
  • Collaboration and prototyping: InVision, Marvel, Adobe XD
  • Scheduling: Calendly, Doodle
  • Workflow automation: Zapier, Microsoft Flow, Monday [4] 

Behaviors/practices not to be followed — Lessons we have learned from:

  • “We do daily stand-ups via e-mails.” Discussion via emails is a bad practice as they lack direction, motivation, and ownership. Face-to-face conversations/personal interactions can be much more effective.
  • “The Scrum Master is not available in person.” The Scrum Master is the guardian of the scrum process. If the Scrum Master is not available, it becomes difficult to facilitate scrum events and identify and resolve impediments.
  • “We need a full backlog first so that we can draw a contract.” Poor outcomes are the consequences of this. It can restrict the early and continuous delivery of valuable software and hinder the implementation of a changing It also makes the team appear less valuable as they need to be told everything rather than learning and improving as they move.
  • “Every day, we send pictures of our whiteboard from one city to our team in another region.” Instead of sending pictures of the whiteboard, an alternative solution would be to send product backlog tools (like TFS and Pivotal Tracker) and sprint backlog tools (like Scrumy and Trello) so the teams can learn together. This can help motivate them at an individual level and team level to produce the best results and solutions.
  • “Our daily scrum call is just for 45 minutes.” Such long meetings are a waste of productive time. [10]

Success Measures
Some general performance-related metrics that must be tracked to ensure distributed team success are:

  1. Meeting deadlines
  2. Producing high-quality work
  3. Using the project management system
  4. Meeting goals
  5. Attending required meetings
  6. Participating in required meetings
  7. Determine whether employees are utilizing the proper communication channels
  8. Communicating clearly and effectively with team members [11]
References
  1. https://www.fastcompany.com/40516680/hiring-remote-workers-made-my-entire-team-more-productive
  2. https://www.appsembler.com/blog/how-to-run-scrum-with-a-distributed-team/
  3. https://interaction.net.au/articles/agile-development-success-stories/
  4. https://www.extension.harvard.edu/professional-development/blog/challenges-managing-virtual-teams-and-how-overcome-them
  5. https://www.mountaingoatsoftware.com/agile/scrum/meetings/daily-scrum
  6. https://www.agilealliance.org/glossary/sprint-planning/
  7. https://tcagley.wordpress.com/2014/09/29/distributed-agile-sprint-planning/
  8. https://martinfowler.com/articles/continuousIntegration.html  
  9. https://www.testingxperts.com/blog/Agile-Distributed-Teams-An-Inevitable-Reality-of-Today
  10. https://www.slideshare.net/PavelDabrytski/10-agile-antipatterns-in-distributed-teams
  11. https://sophaya.com/2017/05/02/virtual-team-success-metrics-to-keep-your-team-on-track/
  12. https://www.techspot.com/downloads/instant-messaging/
  13. https://www.itproportal.com/features/how-to-make-ci-ct-and-cd-work-together-and-avoid-the-drama-of-a-devops-love-triangle/
Related Insights

Distributed Agile Best Practices – How we do it at Ness?

Veera Srinivas Raneru is a Senior Technology Lead responsible for expanding the growing portfolio of...

The Latest in Agile Development: What’s Coming and How to Prepare for it

Agile development has become ubiquitous in the software development world and for good reason. It helps...

Test Automation for Mobile

The Ness team is often involved in the development of mobile applications for our customers. We always...

Contact us to learn more

Ness likes to work collaboratively with its customers, so please ask us questions if you would like to learn more about our services. We look forward to answering them.
Browser warning
We noticed that you are using Internet Explorer. Not all of our website’s functions will work on Internet Explorer. For a better experience, we recommend that you visit us on a different browser. Click here for a list of the latest versions.