Offshore Vendor Selection by Close Inspection
Last year I got to visit a software company in India. We were evaluating if they could be our offshore software development partners. It is very hard to distinguish the software development companies of similar size in India from each other because they have similar websites, similar service portfolios and similar projects. I prepared a list of questions which I sent to them in 3-4 days in advance before my visit to which they had to reply by email.
After I had received the answers, I spent a day speaking with their teams by actually walking on the work floor of their office and sitting behind the developers’ screens to see working examples of their practices. This gave us good insight in to what this software company was capable of doing.
I would like to share the list of questions that I asked. I understand that this is not an exhaustive list of question that you can ask your software development partner but it gives a better idea about how one can go about selecting a software development partner by understanding their capabilities by close inspection.
The list of questions is here:
Development Practices #
- Demonstrate DTAP or working continuous integration pipeline preferably by showing a few simple examples.
- Show how you measure software quality. Preferably show the real matrices on running projects.
- Demonstrate an example of refactoring in your projects.
- Explain how you are improving your development practices and code quality in every sprint.
HR Practices #
- Explain your hiring process?
- Share numbers about your hiring funnel.
- How have you gone about hiring for building a new competency?
- How is your employee retention? Share numbers.
- What is the hierarchy and its role in your organization? *How do you differentiate top (A) performers from B performers in your company? *How do you reward your employees?
Knowledge Management #
- Explain your knowledge management practices.
- How do you train people?
- What has worked very well for you in terms of training and development of your employees?
Agile/Scrum #
- What is the experience/skill mix in a typical team?
- How do you deal with incomplete or unclear product backlog?
- How do you divide the time between functionals and non-functionals in a sprint?
- Which situations require management to intervene in a sprint?
- How do you deal with a team that is not able to perform?
- How do you deal with difference in opinion about team’s performance between you and customer?
Software Design #
- What is a good software design for you? How do you measure it? How do you document it?
- What is your expertise in building high performance computing systems? Give numbers, if possible, about system dimensions in terms of TPS, concurrent users and any other complexity metric.
I wish you a very happy new year.