Lessons in agile design for small teams

As any software studio finds out at some point or another, to grow means to manage better. Much of the scaling involves evolution in management style rather than in acquiring new assets or recruiting team members. This is because it’s wiser to take care of waste first, before adding layers to your company — agile design is the universally approved methodology that focusses on optimising your process and become quicker, with less resources. But how do you adopt the agile mindset when you’re a team of 6, have multiple clients and overlapping projects with ambitious deadlines? We’ve been there and done that, and here’s our advice.

1. Measure your team velocity

What can be measured can be managed. The first step in being successful at any process that involves milestones and deadlines is finding out your average speed: in other words, how long do individual team members take to finish the various tasks in any given sprint? We measure team velocity by noting down time taken with each task on a google spreadsheet. The first thing we started noticing when recording velocity is that meetings and team calls were taking up too much time. We immediately restructured and freed up valuable time to allow sprints to happen. So know your speed and what slows your team down. Take corrective action to become faster, but the goal is not to achieve lightening speed, but simply to become aware of where time is being allocated.

2. Organise longer sprints

When the team is still small (4 – 8 members), running a successful sprint and following every rule in the book can be a challenge. There are distractions, admin tasks and clients requests tend to get in the way. A good way to still be agile-oriented yet meet the requirements of your clients (and not asking them to wait 2 or 3 weeks for a reply) is to organise longer sprints. We often double up on time (from 5 days to 10 days) in order to achieve objectives on time and systematically. The idea is to build momentum around a project without overworking your team and adding unnecessary pressure around deliverables. In addition, a small team should allow extra time for testing code properly to reduce the risk of shipping bugs.

3. Manage client relationships

Client relationships are similar to every other relationship in life. It’s built on trust and respect and is defined by a set of expectations that develop over time. If the expectations are fair and aligned with your plans as a business, then that relationship becomes mutually benefitial and will prosper. However when we over-promise, become too available for low-priority discussions and tasks or simply do not build any boundaries around availability, both parties suffer — time simply starts being wasted and the team falls into the habit of replying to every query, no matter its urgency, right away. This kind of approach will not allow a sprint or any agile technique to work. Agile is all about focus and clearly defined tasks. For that to work, all members of the team and stakeholders need to know when and how to contribute. Most clients will engage with this approach and understand its value.

Agile methodologies are not exclusive to large teams, any team, even an individual can benefit from organising projects through a scientific process. The more defined and granular the plan, the stronger your ability to manage will become.