Making agile work for everyone 🤘
That title should be familiar to anyone who knows Steve Krug
Yes, I may have slightly ripped off the title of Steve Krug’s book Don’t Make Me Think: A Common Sense Approach to Web Usability, but bear with me.
- Provide an efficient workflow to pass knowledge down to team members that need it
- Reduce cognitive load by ensuring that members of the team have what they need to get the job done
- Provide a communication gateway for external communication to reduce distractions in the team
What is Agile?
Agile is a methodology that aids in getting products delivered quickly. Much faster than the traditional Waterfall model. This is due to the combination of cross-functional teams and a constant feedback loop from the customer. Now you don’t have to follow agile to the letter, but the manifesto does outline a few values to get you started:
- Individuals and Interactions over processes and tools
- Working Software over comprehensive documentation
- Customer Collaboration over contract negotiation
- Responding to change over following a plan
You can tailor these to meet your needs. For example, you may have a customer who is very strict on documentation. To respond with “that is not part of the Agile Manifesto” would probably not go down well 😅
Making Agile Work
Utilising cross-functional teams
Part of what makes agile so amazing is the fact that you don’t have each profession bundled together in their own separate team. Having them part of a cross-functional team ensures the following:
- You can interact with that team member directly
- That team member is dedicated to your project
- That team member can better prioritise their work based on feedback from the rest of the team
Having to communicate outside of the team often ends up being the bottleneck in projects. We’ve all had times where we have had to turn off our Slack notifications in order to focus on a task, which is fine…but sometimes we can forget to turn them back on and then we are flooded with lots of messages. Communication inside the team should be fast and efficient. And any communication outside of the team should be handled by someone who has the time to prioritise and relay messages in and out of the team. The idea is not to minimise communication but to provide an efficient way to communicate across teams.
Create an efficient workflow
Making sure that the team know what they are doing is essential to getting features delivered quickly. When team members start doubting their own decisions then that eventually leads to messy code, failing acceptance criteria, and indicates an incorrect assumption over what the feature is.
Making sure that knowledge is passed to members of the team ensures that they have the information they need to get that feature delivered. A workflow I find to work really well is:
- the project manager speaks to the customer to get a high-level overview of the project
- the designer takes each concept of that high-level overview and creates designs
- the developer uses those designs to implement back-end systems and decide what resources are required
- the operations developer works with the developer to build a deployment strategy
I can understand things better when I see them
Agile is good. Process is good. Distractions are distractions.
Defining a process is something that every organisation should be doing. The process outlined above is simple, but I feel that it is one that maximises the efficiency of the team. The separation of knowledge transfer feels organic. It feels sensible.
The more you can think about your own task, the better. The less you have to think about external factors, the better. Taking this approach ensures that you are maximising your teams effectiveness by allowing them to focus on what they are good at. Ultimately giving you a better product, faster! 😎