Collaboration for Distributed Teams

Assisting in distributed team collaboration

KRS uses Scrum as our Agile software development process of choice, with a focus on delivering working software every 2 weeks (this is called a Sprint).

From the Agile Manifesto, we get “Individuals and Interactions over Process and Tools”. Keep this in mind as we discuss some tools to assist distributed teams with collaboration!

Collaboration and communication are the backbone of an Agile Team’s success. Distributed teams are frequently restricted in how they can communicate, and KRS will share some of the simpler, practical Cloud tools that have helped us. Our attitude is to look for enablers of communication and sharing that work for distributed developers, remote Product Owners and even Scrum Masters.

1) User Interface Mock-ups

Whether in the same office or on the other side of the country, the need to iterate quickly through screen design is essential. As we all know the cost of change is exponentially higher the later you leave it in the development process.

KRS started using Balsamiq as part of our development process to create a discussion around screen design and logical flow, long before any code is written. As the tool is very interactive and allows for quick changes, we are able to come up with a visual mock-up of a screen that the client is able to understand. This ensures that the design fits into their idea of how the application will be used. Balsamiq can be used over the web, so all parties can make changes in real time. Balsamiq produces drawing-like mock-ups, so teams don’t get hung up polishing the design to be perfect – it’s designed to be rough!

We include this as part of our Sprint planning meetings and, sometimes, even earlier while we are still grooming larger stories with the Product Owner.

2) Continuous Integration

The old process of getting applications ready for testing is time consuming, manual and error prone. Agile demands a quicker test and build cycle.

By running a continuous integration (CI) server using Jenkins, we are now able to automatically checkout code, run tests and deploy our application for our product owners to review, provided that all tests pass successfully! When our clients connect to the system, they have access to the latest development release. KRS host our CI server in the Cloud, to ensure shared access at all times for our distributed team members.

This automatic build, test and deployment process now is an essential part of our definition of “done”.

3) Remote Application Testing

When dealing with an offsite or remote client, we find that even with the most dedicated Product Owner, they often decide on final changes only once they have interacted with the application. If this happens too late in a Sprint, it can cause a delay in deployment or even affect the next Sprint. And late changes are costly. KRS needed a way to the access the pre-release development environment remotely.

KRS chose a tool to allow our Product Owners to log in and test the latest application builds from our CI Server, and then to feedback any of their required changes. All using bog-standard Microsoft Windows Server 2008 R2 Remote Desktop Services.

This has significantly improved our clients’ ability to test early, which means more features being usable and deployable by the end of a Sprint. We believe that the product review should not be the first time our Product Owners see their new feature!

These are three of the many changes that we have implemented throughout KRS in order to ensure that everyone involved is collaborating. We are continually looking for ways to increase the interaction between all our team members. We also believe in remaining true to the Agile principle of “Individuals and Interactions over Process and Tools”, so we stick to innovative uses of light-weight, easily accessible tools that never get in the way of delivering working software.

About the Author
Brent Blake is Projects Director at Khanyisa Real Systems, and an Agile evangelist. KRS is fully committed to Agile principles on all projects: it brings out the best in our teams, and improves value for our clients.