This series takes a deeper look at how our engineers build digital financial services. Learn more about how they address large-scale technical challenges at Tala.
By: M. Silva, Lead Android Engineer
In software engineering, technical aspects often overshadow the equally important aspect of collaboration. Specifically, the way we work together within our teams. This is something we take for granted.
While many will tell you they practice Agile Software Development or Scrum, the true value proposition has been lost on many individuals. Let’s pause and think critically about some of the processes that can be taken for granted in our day-to-day work and provide perspective on how we can utilize them more effectively.
The Manifesto for Agile Software Development
I’m fairly certain most software developers have heard of the Agile Manifesto at some point. It has had a discernible impact on the way we conduct our work. I can also assume we’ve all participated in Scrum at some point, right? That’s how prolific it is. We can probably name all of the ceremonies (stand-up, refinement, planning, demo, etc.), but fewer can name the four Agile values or any of the twelve principles of Agile Software Development. I would like to focus on a few particular points that get lost in the mix of our daily work:
- Prioritize individuals and interactions over processes and tools.
- Business people and developers must work together daily throughout the project. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Does your team practice “agile” and do you find that they practice it with the values and principles I’ve listed above? If the answer is yes, that’s wonderful! Otherwise, let’s look at why you stand to benefit from it.
Unlocking team potential through thoughtful collaboration
People > processes
When I first started my software development career, I wanted the ability to build whatever I could imagine. I presumed if I was great at writing software, then I could reach that goal. Over time I realized no matter how good I was at writing software there were many other factors that could affect my ability to build things in the workplace. Ultimately, the people I worked with every day were the most influential in the outcomes of my daily and long-term work. By being thoughtful about how we work together — beyond just the rote processes in place — we can expand our impact.
Leverage real-time collaboration to drive success
Many teams try to parallelize work to deliver software quickly, which often leads to more churn. Rather than assigning individual tasks that may not align with the highest priority business goal, we should work on fewer things together in real-time to ensure higher quality. Segregating ourselves by discipline is unproductive, as all team members can provide valuable insight at any stage of the delivery process — the earlier the better to ensure our efforts are aligned.
Utilize the power of stand-ups for tactical planning
The stand-up meeting is a good place to observe this behavior — they’re often used to report individual status to a product manager. However, this approach can be improved. Instead of just reporting status, the stand-up meeting should be viewed as a tactical meeting designed to assess the current situation and devise a plan to complete the next near-term goal. Much like a timeout in soccer, stand-ups are our window to decide what our next move is while surveying the current situation. Then, we can more effectively progress in the game and actually deliver the highest priority tasks in the sprint.
Remember to retrospect with introspection
Retrospectives are often used as a venting session to express frustrations with, usually, something outside of the team’s control or to highlight some particular shortcoming during the sprint. However, a more effective approach is to assess the team’s processes and behaviors and experiment with alternatives to improve their overall success. It’s important to remember that change takes time and conditions can change, requiring adaptation. It is a continuous cycle. Effectively coping with change is true agility!
Embracing uncomfortable growth
The path to Agile excellence
What I’m suggesting is not revolutionary, but rather a change of perspective. Looking at things a bit differently than before highlights opportunities for improvement. I understand that working closely with others can be uncomfortable or stressful, and it’s okay to feel this way, but the best way to mitigate those feelings is to push through the discomfort. Besides, whoever said that being agile would be comfortable? It’s certainly not convenient. Agility is difficult and takes a good deal of intention and effort. It’s a skill like any other, and there’s sure to be some trial and error, so keep at it!