Ask HN: How to safely outsource a web dev project

3 points by boogdan ↗ HN
Hi, long time lurker here.

My company's trying to outsource a medium size web development project and since it's the first time doing it, I really want to be extremely careful and not mess everything up.

So, based from you experience, can you give me some advices? Do you have any suggestions about how to manage something like this?

- What are the main questions to ask when you want to outsource a web development task to an external company? - How can I check if they can really deliver what I need and they don't only have a nice sales pitch. - From PM point of view, how do you manage something like this? - How can you "blend" their development team with your internal development team? - Should an internal employee act as a project manager for their company? What about reports?

I have so many question...I'm a control freak and I need to make sure that I'll have everything under control.

Is there a good book about this? Any information will be extremely appreciated. Thanks!

4 comments

[ 6.6 ms ] story [ 22.2 ms ] thread
>How to safely outsource a web dev project?

Doesn't outsource it :)

- What are the main questions to ask when you want to outsource a web development task to an external company?

Make sure to ask questions that try and show what they are really like. You will probably be in contact with their sales team for most of the process. They will try and make everything seems awesome. Some good questions might be:

    - Do you have any past clients who might recommend you? If so, may we get in touch with them?

    - Who will be working on the project? Do you outsource (sub-contract) the work?

    - Where are your developers based? This is an important question because if their team is remote the time estimates they give you usually do not take that into account. Its a common mistake.

    - What is your development process? If they mention agile, scrum, etc., ask them to describe exactly what it is while speaking to you. Dont let them re-group and come up with an answer. Don't let them formulate answers. Make sure to ask questions that have to be answered right there (on the phone or in front of you).

- From PM point of view, how do you manage something like this?

You appoint a PM that is in charge of making sure that every milestone and deliverable is done. The PM will probably talk to their PM, but should also request access to meetings where the developers will be present. You can sense a lot about how the project is going from the developers.

- How can you "blend" their development team with your internal development team?

You can stage releases and treat their code as an interface that you integrate with. But dont try and force your development process to them. it wont work.

- Should an internal employee act as a project manager for their company?

Whoever ends up being the PM better have experience being a PM in the past. This is very hard work. Much harder when its with a third party.

- What about reports?

Realize that they must provide you with the reports that are important to you, and not to them. You define that.

---

Ive been on both sides of the table. If you have more questions just email me. I'll try and answer as many as possible.

Thanks for the suggestions, joining their internal dev meetings is a great idea. I'm also planning on asking about post-implementation support and what happens if a serious bug is discovered after UAT.

What about the NDA? I was thinking on creating some sort of individual NDA rather than company-to-company NDA because from a legal point of view, it's not clear for me what happens if one of their developers quits and joins one of our competitors.

You need to have a lawyer involved from the beginning. It will ease a lot of pain. You need a good contract that will cover all bases.

In terms of bugs, make sure that the project is developed with tests. Most outsourcing places don't test anything. At all. Include it and make sure that whoever ends up managing this has a build server like jenkins where the tests can run on every commit. The PM should be able to read code and see if the tests are actually meant to do anything. I've seen projects were the tests were just code asserting types.