Organising Teams
It always makes me smile when I see the moment that a project manager/scrum master/team lead realises that you can run a project using software algorithms, and not just follow a book.
Imagine having groups of your servers stopping at a set time every day, some exchanging information with others (most of which gets discarded), others not really sharing any useful information (but they have to share some information because that’s what’s expected), and then all going back to serving customers 30 minutes later…. sounds like a really bad design? Well, that’s what a meeting is, but with people instead of servers.
Do you have a daily stand-up? Ask yourself how useful is it for everyone there? Then ask yourself; “What would be the impact if our customer serving servers just stopped responding for this amount of time, and only communicated with each other?”
Now think about the fact that server time is cheap when you compare it to peoples time. If a contractor is on 800 Euros per day, a 30 minute meeting is 50 Euros of their time, which is about what you can rent a server for a month for. 10 person stand-up? That’s 500 Euros, or 10 servers. Three 30 minute meetings in a day? That’s the cost the company the same as a 30 server back-end for a month… in a single day.
Concurrency is a well known hard problem, but making sure that you can allow groups of machines, or processor cores, to work to in their most efficient way is a solved problem. You avoid multi-thread synchronisation points and use asynchronous messaging, and you can apply this principal to groups of people.
Don’t create multi-person meetings where everyone has to stop what they’re doing to attend something that may not be useful to them. Use a messaging app that folk can check when they have a natural break in their work. Use online project boards where folk can check the status when they want, and is updated when things happen, rather than only being updated in long, weekly meetings where folk aren’t meaningfully contributing 90% of the time.
Choose asynchronous methods. Choose leaving people to maintain a state of focus, and not break it at a set time just because it’s a sync point. Choose shared online statuses that can be updated and checked when necessary, and not stopping everyone, everyday, and giving them the stress of having to appear to have made progress since the last meeting.
Choose to run your teams using better algorithms.