Prioritizing people before a process enables an agile transformation within your business, especially during these remote times.
One of the twelve agile principles is face-to-face communication or simply put co-location. But in the modern world, not all organizations have the privilege to run a co-located team. It could be due to COVID or you have a globally distributed development team. Even though the digitally transformed COVID world has bestowed upon us various tools to work remotely, they do not guarantee clarity, collaboration and alignment. How do you account for cultural and time zone differences? Can co-location be virtualized?
Agile Software Development can mean many different things to many different people or companies. Consistent communication between product owners, developers, QA, and operations is essential to succeed as a team. There are a lot of tools to support working remotely like email, video conference, direct messaging, etc. If your team is constantly juggling all these communication tools, they may burnout. Hence, it is very important to streamline the communication process. And, it all starts with establishing a good working agreement between the remote teams. The number one item in your working agreement should define what tools will be used by the team for communication. If your team is spread across different time zones, you need to indicate what time people will be online and how fast they will respond to their messages. This will set the expectations straight for all the team members. If the established working agreement doesn’t work, during retrospective, revisit and make modifications as needed.
A good user story should have well-defined requirements written in plain English with acceptance criteria. Gathering requirements and refining acceptance criteria can be a daunting task but still needs to happen to avoid confusion down the technology value stream. Pre-grooming user stories with the team can help prepare any questions that may arise and start the process of getting answers. By sprint planning, the user story should be fairly stable for the developers to pick up.
A well-defined user story will let the development team focus on the user story at hand. A user story should have a single source of truth. Tools like Jira and Rally can be a source of truth. Updating tickets and adding comments on them can help ensure developers are aware of the entire history. When a user story does not have the required information it can block the developer from completing it and start creating too many WIP items. When a change is needed to the scope of work it must be documented and approved by all parties involved. If the user story is not updated and the developer is unaware of changes it can cause issues in the future and possibly even cause the project to go over schedule and budget.
Working with team members from different time zones can make scheduling daily standups a challenge. Waking up early or staying up late could be the only option and it can quickly become taxing for all involved. A few things that might help:
Setting up an agile dashboard that is available for everyone regardless of their location can aid in understanding the end goal and how the team is tracking towards it. A good idea is to let each team decide what statuses should be used to display their workflow. Commonly tracked workflow statuses include To Do, In Progress, and Done. Limiting your board to 3 statuses does not always work well. Adding statuses like Code Review, In QA, Ready For Acceptance, Ready For Release, can really help monitor progress and/or issues. It will also show if the user stories are getting stagnated in one status for a long time. Thus, agile dashboards can bring visibility to the bottlenecks that you may have in your user story workflow.
In the remote world, you want to get faster feedback so you can learn what worked and what didn’t. Implement practices that support short feedback loop like:
If you are waiting till the end of the sprint to get a review, it might be too late. Hence, it is very important to go for acceptance once the user story is complete to keep the feedback loop short. For instance, automated regression tests can tell you in minutes whether the new code has broken something. When you can find the problems in minutes, you are in a position to address them quickly before it becomes a time-sensitive issue. By conducting blameless postmortems, during an outage, your focus is more on what went wrong than who caused the outage. This will put the people at ease and allow them to speak up instead of covering up their mistakes.
A successful agile team will feel empowered to make the change instead of waiting for approval. Not all the problems can be solved by investing in more tools and processes. Hence, it is pretty important to embrace the human side of agile. Checking in with employees while working remotely can make a huge difference. Employees are expected to self-manage their time to get work done on schedule. A developer may not be familiar with a certain tool or technology and afraid to reach out. The leader can assist by offering training or putting them in contact with someone that has experience.
Gone are the days of seeing a new face and introducing yourself. I personally miss the face-to-face interaction with coworkers. Walking to refill a beverage usually led to a discussion with someone. Not to mention going to lunch with a group of people. There always seems to be something interesting to talk about. You learn about people’s families and interests which oftentimes leads to building friendships. Make it a goal to meet someone new in the company via email or message. That might not always be possible with smaller companies, but you can learn something new about a person you already know. Having a conversation with others can have a positive effect on someone's day. When positive feedback is given by a coworker or client make sure to share it with the individual or team. Saying good job or thank you for working hard is an easy thing to do but can have significant differences in improving morale.
For a successful agile transformation in the remote world, it’s extremely important to put people before the process. When people feel empowered, they are very likely to embrace the change and will succeed whether they are co-located or not. Connecting with people at an individual level and showing our human side can bring the remote team a little closer.