Anonymous developer: his experience working in one team with an outsourcing company from Ukraine

1. Could you please introduce yourself

I’m a Software Dev, working at the time in Cambridge for a tech start-up type company. The company has since been bought out by a huge multinational, but we do still use some outsourced dev.

2. How did you start working with outsourcing company from Ukraine?

I think at the time funds were a little tight, and management may have found it cheaper to outsource. I wasn’t involved in that part, myself, but yeah, management outsourced some dev work to Ukraine and devs from there were added to our teams by management

As above, I believe cost was the main consideration, but I can’t say that for sure.

3. What did you like in the working process?

The devs seemed pretty competent, and took care of a lot of the code monkeying stuff (i.e. straight up coding and testing, with little input on requirements/design/marketing). Definitely got things done, leaving us back in the office more time for design/planning/etc. They were generally reliable and could be trusted to deliver. Not perfect and mistakes sometimes made, but not noticeably different from home-based devs, including myself – rare for anyone to get it right first time, every time.

Read more: Ukrainian Mentality

4. What you didn’t like?

Probably the worst part was that it’s difficult, with remote working, to communicate, sometimes. If I needed an answer to something, I usually had to ask in chat – e.g. skype, and sometimes, it could take a while to get an answer, which is not great when I’m waiting. Obviously not their fault, they can’t stay glued to skype all day, but it’s easier if you can walk across the office and tap someone on the shoulder for an immediate answer.

5. Did the offshore developers work through the project manager or directly to the in-house developers?

Well on a day to day basis, they were part of our agile/scrum team, so they worked directly with us and we had a daily video-conference (stand-up in scrum terms) with them and occasional call when required. Technically, they reported to … I don’t really know who, but day to day, they were part of our team and we worked and interacted with them directly when needed.

6. How do you distribute tasks? How do you determine what the in-house developers should do and what should be outsourced?

We generally use scrum/agile, so like the rest of the team, they just pick tasks from the current sprint and run with them.

Occasionally there is micromanagement such as X should do this and Y should do that, but that wasn’t specific to the outsourced people, that was across the entire team.

7. Do your team do a code review to check their code quality, or this is not needed? Or maybe you have a general code style rules which everyone in the team should stick?

Yes. Usually, one dev writes/tests code, and then any other team member – whoever is free / sees the job ticket awaiting review pics it up for code review.

We do have code style rules, although most of them are enforced by automated style checking tools at compile time.

What do you can suggest for people who want to build processes of work on the project where will be in-house team and outsourcing team?

Communication and cooperation. Make sure that your infrastructure is set up for the team to work cooperatively. That means having a shared task pool a-la scrum/agile, but more importantly make sure that your communication tools are adequate and that you can actually talk or at least text/chat and get quick responses from each other

Ukraine Outsourcing Guide