At a recent beerstorming (*), we discussed how to make nearshoring of software development work. Funny enough, the smooth taste of Yogurt entered the picture.
(*) Beerstorm is a fun-name invention for a practice came out of experimentations; it has very good effects on my spirit, it literally drags me into the zone…
A primer on Yogurt cultures!
Yogurt brewing, when done the natural way, is a fascinating process. A perfect example of nurturing a self-reproducing organism. The bacteria used to make yogurt is known as “yogurt cultures”. Fermentation of lactose by these bacteria produces lactic acid, which acts on milk protein to give yogurt the characteristic texture we love.
At any grocery, you can find a variety of yogurt brands, presented in shiny cups and with different flavours. Most of them are just the “get-eat-forget” type, though, as they are available only to serve for consumption purposes. If you plan to brew your own, you must be aware that you can not reproduce yogurt from any of these, because they were made through artificial processing and blended with additives for longer preservation.
However, if you can find natural yogurt, it will be a source of never-ending formations of cultures.
When you achieve the right form once, you can brew new yogurt over and over again. You only need to preserve a small amount from the naturally brewed yogurt. Just a teaspoon of it, blended with 5 litres of milk, will turn it into fresh, delicious yogurt.
Your role in this is all about creating and facilitating the right environment for the yogurt culture – but without interfering or trying to control it! For example; if you open up the cover and stir it while in midst of the process, this is an intrusion of the natural environment and it will break the ongoing formation of the culture.
Mastery of this process can only be developed through hands-on experimentation.
With natural yogurt brewing, the is no ultimate end result. Each brewing will lead to a different flavour! Your goal is not mass production of tastes that are similar, but to nurture the yogurt culture in such a way that it can reproduce itself.
Hands-on Experiment: forming Nearshore teams
One of the most challenging strategies for a software organization is setting up distributed teams and multi-location entities like nearshore or offshore teams. Big questions will arise on how to achieve continuity, shared ownership, high quality and cross-functional delivery.
Building distributed teams can be a scary challenge.
In excel sheets and financial reports, such an initiative will look like a very profitable investment, with lower costs and faster resource allocation. However, if care is not taken, offshoring can lead to disastrous results in the long run.
To get good results from offshoring, you need to make sure that the culture of the remote organization is a good match to yours. Much like brewing good, natural yogurt, this can’t be bought in the store. Only with care and the right nurturing, the culture of the offshore partner will be right.
Here’s my learning from previous experimentations with Agile Nearshore teams. It goes through 3 phases:
Phase 1: Warming up
For yogurt, it is important to find a good provider of raw milk. For offshoring, you need to find a good partner. If you’re based in Scandinavia, the Baltics might be a good place to look with a timezone that’s not too far off, a short flight, a good base of IT skills and plenty of talent.
The easiest way to identify the right provider is;
- Study the background of the provider company. Disregard their shiny marketing slides, and analyse their references instead.
- Go through the employee profiles, and pick 3 to 5 candidates you think might be representative. Make an assessment of the overall quality from this.
In the engagement, the service provider should be responsible for all practicalities like office space, salary, social security, finding & pre-screening new talents, and so on. You, on the other hand, should be responsible for for daily work life, product development, people motivation, teams and releases.
Phase 2: Boiling
The main purpose of this phase is to form the basis of the remote organization. This includes interviewing all the potential candidates and selecting the most fitting ones. A two-cycle screening should be enough for the interviews. The candidates should already have been prescreened by the service provider.
It’s important to allocate enough time on-site for this. From my experience, one week seems to be optimal, but time allocation varies depending on the size of the core team you want to form.
Let’s elaborate with an example: We want to set up a nearshore team of 4 skilled developers, one with backend skills, one Android guy/gal, one iOS developer and one front-end programmer.
When you come, the provider should already have pre-screened 6 to 8 candidates, all of them ready to start within short notice.
The high level agenda of a week on-site would be:
- Day 1:
Interview all candidates, one-cycle assessment for fast validation and cherry-pick potential keepers.
- Day 2:
Commence 2nd interviews to assess hands-on potential and identify team players.
- Day 3:
Sort out the office space for your core team, agree on the practicalities of the work environment. The team MUST have a joint work space, this is where you will nurture the new culture. In other words, the office space will evolve into the playground for all team activities.
- Day 4:
Start the culture formation slowly, but surely! I prefer to play some creative games at this stage; to get to know each other and prepare the base. Then, spend some time on building a purpose, giving an introduction to future projects and talking about the vision you will be working towards.
- Day 5:
This is my favourite day, and the most important step! Create a name(*) for your new team, then go out to celebrate 🙂
(*) Naming the team & fun activities is the most essential practice of such adventures!
When you return back to your premises, the main office, you should have ticked all the boxes of the todo-list;
- The candidates are onboard
- The team Playground is ready
- The team has genuinely fun name
- The boiling phase is concluded (with some hangover 😀 )
Phase 3: Brewing
And now, we begin at the essential part of our adventure.
This phase is when we need to further apply the Yogurt brewing mastery. It may require between 3 to 6 months of ongoing experimentations with real product development. You should nurture a Lean culture using “Learning by Doing”.
You must be prepared for failures at this stage. Honestly, if there is no failure, I would be utterly worried! Failure is the essential part of any experimentation; what matters is to fail fast, learn and continuously iterate!
Through this phase, try-fail-learn and try again, though your goal is to achieve the right form after 3-4 trials. If failure persists for a long period, roll back and try to identify if there is any other root cause.
Blending Yogurt with Life!
I regard Yogurt metaphor as perfect reference for nurturing teams, especially in the software world.
Raw milk represents individuals with their skills. You can hire the best people with the sharpest skills, but it does not matter if you do not to nurture the right culture through continuous experimentations.
This is when you need the teaspoon of natural Yogurt!
Your purpose is to create the right environment by acting as facilitator, and help the team form into a self reproducing culture.
- Treat people like ‘cheap labor units’
- Isolate your offshore colleagues into some sort of remote factory
- Make your specification docs the only communication channel
- Let distance turn into a high wall
- Use artificial/classical naming conventions ( “API Development team”)
- Use carrot-stick management
- Introduce your offshore colleagues as a part of the family
- Nurture shared ownership of both success and failure
- Establish onsite presence (both home and abroad)
- Communicate continuously via basic tools (chats, hangouts)
- Assign hands-on leaders on both side, and let them work in pairs (one at home and one abroad , jointly responsible for the team)
- Involve your offshore team in your daily activities
- Continuous delivery (and continuous celebration)
- Use genuinely fun names (Monsters Inc, Fantastic-5)
Some indications that your effort is making results:
- People are proactively taking ownership
- Everyone is coming up with new ideas
- Developers are noticing and resolving production issues without being told to do so
- Team members are stepping out of their shoes and are helping others
Whenever you spot one of these, you should mark it in your notebook as a good sign of progression.
Iterate has long experience in nurturing Lean cultures. If you need a teaspoon from us, let us know!
Till then, keep on experimenting 🙂