"no test, a single staging dev server (no local dev env), no doc, inconsistent function and variable naming" --> none of these things prevent code from shipping, per se. I know it's convenient, as a first time leader, to focus on the technical aspects, but from your description, it seems there's underlying non-technical issues you might want to get familiar with first. On the technical side, I recommend _listening_ a…
The first thing that crossed my mind was "Seek first to understand, then to be understood." You almost certainly will find some people who already long for what you're going to advocate.
Ask HN: Going to lead a struggling dev team in a different culture, now what?
71–79 of 79 posts
Re: Ask HN: Going to lead a struggling dev team in a different culture, now what?
#72Treat everyone with respect - everyone has a story and being competent developer is not the only metric for human beings.
Reduce scope - better deliver few solid features than many half baked. You will need to get heavily involved in implementing those features so better not spread yourself too thin.
Start with authoritative management style - it's ok to say "do this and do it like this". Particularity with hierarchy based cultures, this could be even expected. At the beginning it can be uncomfortable as Western developers are often used to servant leadership style that supports freedom, outlet for developer creativity and individual autonomy.
Set precise rules - people are usually able to follow checklists and step by step guides. Have process ready and thought through, but tailor it to the situation on the ground. An example could be: implement task, write unit test with 80% coverage, build and run test locally with no tests failing, send for review.
Don't expect creativity - be as precise as possible specifying the tasks. Include design in the description, any names of the classes you want to have. Ideally have a pointer to code or example on internet that can be copy paste and modified. Specifying tasks this way is doubles the work it usually takes but otherwise you get into endless reworks and headaches. The level of detail needs you to be very well prepared in the technology, design and domain knowledge. Read up ahead on the stack they are using, patterns used for the type of app you are building, look at the code and get familiar with the domain.
Use the hierarchy - identify the one or two promising team members and with with them. Let all other team members consult them first and only then approach you. It's easier to work in depth with two people than get drowned in random questions from five or six.
Expect to get your hands dirty - you will still need to do lot of individual contributor low level implementation work to set standards and so that others have place to copy from. Your code needs to be near perfect the first time as it will get copied over many times. This is painful, but make it work now and refactor later often doesn't with great, when there are 5 people multiplying the work that needs to be refactored.
Distinguish the work from the person - it keeps amazing me how much I like some people on personal level yet hate their work output.
On the other hand this can be a great adventure, getting to know new people and country while working on a common goal. Crisis often bonds people together anyway.
Hope that helps and keeping fingers crossed for you.
Re: Ask HN: Going to lead a struggling dev team in a different culture, now what?
#73Re: Ask HN: Going to lead a struggling dev team in a different culture, now what?
#74"no test, a single staging dev server (no local dev env), no doc, inconsistent function and variable naming" --> none of these things prevent code from shipping, per se. I know it's convenient, as a first time leader, to focus on the technical aspects, but from your description, it seems there's underlying non-technical issues you might want to get familiar with first. On the technical side, I recommend _listening_ a…
Maybe start introduction with your pull requests, not destructive criticism?
(Without really understanding the context,) one thing to do is just emphasize code reviews. There are many ways to do it. In 1-1s with team members, set expectations for code reviews. (Read through every change, question anything that looks odd, you're supposed to request changes.) In team meetings, pull up an open pull request and start asking questions.
I've worked with a lot of people who come into my team assuming that the code review is a formality. Some team members adjust, and others leave for more sloppy assignments.
Re: Ask HN: Going to lead a struggling dev team in a different culture, now what?
#75They're also a good way to learn when your suspicions about bad code are wrong.
Re: Ask HN: Going to lead a struggling dev team in a different culture, now what?
#76Re: Ask HN: Going to lead a struggling dev team in a different culture, now what?
#77My suggestions (SEA exp):
- Brief your CEO on how she should introduce you. She should big up your background, your skills, your accomplishment. Make it clear your here to help. And if she is good she will pitch it in a way where your not appearing as a firefighter or saviour.
- Start by telling everyone how unbelievably good they were to get as far as they did. Its likely they were working their asses off at bad salaries and poor communications. The last thing they need to hear is how wrong they are getting it.
- The things you mention about hierarchy is ridiculously dependant on geography. The right thing to do in Bangladesh could be the absolute worst thing you could do in Indonesia. Both are hierarchical, but in extremely different ways. You need location specific advice!
- On the actual improvements just do whatever is practical to ship the product. Try to see why they were tripping up on the basics and help them sort it. If its extremely poor skills get your CEO to cough up and start bringing on good guys to help teach. If its because people are pissed ease off the pressure and improve the working environment.
A final note. Of the dozens of foreign owned companies in developing countries I have encountered - I cant remember a single time a bad dev team was not as the result of poor management. Typically from the foreign component or their direct reports. Skills can be improved but only in the right environment.
Re: Ask HN: Going to lead a struggling dev team in a different culture, now what?
#78The first thing I would do is check your own personal network to see if you know anyone that grew up in the culture of whatever country this dev team is in. In my experience, as far as culture, you really don't know what you don't know. So it could be very helpful to get a brain dump of advice. Even if they the person that advises you is not technical they could likely offer a lot.
Id highlight the part of asking a person who is from or grew up in the culture as opposed to an expat with a only few years experience (who you'll likely find easier to meet once there).
Re: Ask HN: Going to lead a struggling dev team in a different culture, now what?
#79There was a huge difference though : the company was international, had plenty of money to burn and I could fail without consequences (as I see it now).
And boy, I failed. A few times.
The experience was extraordinary and it forged my future. I am today in a position I would not be in if not these years and other similar opportunities all over the world.
Let me please emphasize two thingd:
- I was allowed to fail (it was somehow expected)
- and I failed.
You have no experience in management, and especially not in international management. Therefore you will fail. And learn a LOT.
If you are going there to learn AND fail - do it. It will be an invaluable experience.
If you plan to succeeded, or at least may be impacted by failing, do not go. Get dome eaqier experience first.
Having important work to deliver + problematic team + other culture + inexperienced leader = disaster. Yhis means either clueless company or a need for a burnout manager to sacrifice.