You have a great product concept and a promising business model and now you just need to have that last missing piece of the puzzle which is the actual software.
Many people imagine that making a product with a software company or with a freelancer is a similar process to buying a car. You go to various retailers, negotiate the price and end up buying the product where you get the best possible value for money. The process ends with you driving off in your brand new automobile without really caring what your relationship with the sales guy or the factory worker is, why should you?
In the software world the story is a completely different than the one described above. Once you sign the deal it is actually only the start of the adventure, an epic journey akin to the one that Frodo and the fellowship takes in the Lord of the Rings. While everything is perfectly fine when the project starts eventually you will have to go to Mordor and drop that damn ring into the mountain! Users will request an endless list of features, technical challenges will need to be overcome and you will have to make decisions based on faith without really knowing which direction is the best one. You need to have your squad with Gandalf, Gimli, Sam and Legolas to work through all the orcs… I mean issues. The technical team needs to work with you through all the ups and downs with mutual trust, so that they can talk to you about the issues that they encounter. You want to know if they have ideas how to improve the product, or even pivot in a different direction and they need to work with you day to day to iterate and develop the product.
You want them to ensure that this is the thing that they are good at because they work with software every day and know what they are doing. If you have any doubts about it – Don’t work with them! Don’t sign and run away, you cannot risk having a Gollum on board when your business is vulnerable and needs a tight ship teamwork.
But how are you going to know if they are trustworthy before actually signing a deal? The team is probably either in another country or across the Atlantic and it could be hard to verify every information and resolve any doubts concerning them.
1. Talk: Ask them how they run things, work and estimate their outcome. Request a talk with the team members, ask for references, understand what they are about.
If they don’t want to talk to you about this and start being secretive – Run to the hills!
2. Start small: Do a minor project to test them out and see how they work. See if they are responsive and that you don’t have to push them. Finally, verify that they deliver.
3. Contact: If they don’t push for talking with you face to face on Google Hangouts or Skype so that you can get to know each other and build trust, just run away!
4. Pricing: Check if they can convince you not to do a fixed price project.You can try to push for such a cooperation with the following mindset:
“Hey! When we go with time and materials they can work inefficiently and blow the budget out of proportion, what then?”
If they find such thinking reasonable they really won’t care about your product, but if they try to talk you out if it while understanding your concerns in a trustworthy way:
“If we follow your suggestion we won’t be able to cooperate, adapt and change! Each software product needs that and we need to work together to make this really good. We’ll set up the process and include you in the project on a daily basis so that you can see the progress and even change the direction if you wish. This allows us to create the best possible product within the budget and time constraints, why the hell should we want to work inefficiently or not finish what we started?”
If you feel that they mean it, stick with them.
PS: and if they make this their mantra and post it on their blog you’ve surely hit the jackpot ;-).