MVP Series 3: Ready, Pick a Vendor
After fiddling with wireframes, you’ve done your customer development. using the PowerPoint demo. People like your idea – CHECK! You can go past GO! But you don’t get to collect $200, yet. You have more work to do.
You’ve drafted the specification. Pages, bullets, and versions are numbered. You’ve ruthlessly moved future features into that section of the document (give it another hard look before you continue). Finally, you think you have the features outlined to make the MVP product a worthwhile first step to show your potential customers. Great!
Should you hire a developer or development company to do the work? Or should you find a technical co-founder to work for free?
Finding a technical resource
People don’t work for free. Get over it. Really, I’ve seen this approach go bad so many time, please don’t go down this road. You have three and only three choices if you want to build and ship a software product:
- Become a developer! This is a faster process than you think. Great code schools can crank out a developer in ~20 Weeks. You can take an online class and learn the basics in about the same amount of time super cheap. You’ll just need to be insanely focused and motivated in that period
- Hire a developer or development firm to do the work. We’ll walk through the hiring mechanics in this blog post.
- Incent a developer with a significant percentage of equity in your company. In this market, in Seattle in 2017, this is practically impossible. Developer skill sets are in high demand. You may find someone that will work on your project as a side project.
But you don’t understand Dave, I don’t have any money! Great, recognize that you are never going to ship a product. You have two choices, start training yourself or start saving some cash to hire someone. That’s it. Sorry to be the bearer of bad news here. I’ve seen people “work for free” then ask for 60% of the company. I’ve also seen developers hold the code base hostage until they get paid.
Think about it for a minute. If you decided to learn to code back when you started thinking about this idea – you’d have skills by now. I’m not saying everyone should pursue a career coding. I taught myself with an online course to MVP the crap out of stuff. Am I fast, absolutely not. But I can hack stuff together if I have to.
There is no short cut to success. If you’re looking for a co-founder, be ready to have some awkward conversations and commit equity to them early. With the right vesting requirements. Now that we’ve settled that… let’s talk about picking a developer of a vendor.
Choosing a technology (stack)
A few years ago the technology stack of choice for startups was Ruby on Rails. Today the trend is toward JavaScript (frontend and backend). Python is also popular for back end development. Swift 3.0 replaced Swift 2.0 for iOS and Android has their own version.
I don’t have a “religious bias” for what technology you choose. I tend to think about it in the broadest context of:
- Where can I find talent – for example, building on top of Salesforce.com may be great, but only if you can find the developers? You have to assume that someone will inherit the project you are building. Make sure it’s in a skillset that you can find talent
- In Seattle, we call it the Westside and Eastside stacks.
- Westside – Open source – MEAN – MongoDB, Express, Angular, and Node or LAMP – Linux, Apache, MySQL & PHP
- Eastside or Microsoft-land tends to be on the Microsoft tech stack and requires a different level of licensing. Cost of licensing for development and production is a consideration in your decision. Big companies tend to pay for these tools while startups tend to open source.
Choosing a single technical resource or company
You have your Spec in a Google Doc. Your summary and hypothesis written up. You’re ready to post that job on a site like UpWork. UpWork is the merger of Elance and ODesk. It’s a site where you can find freelancer and companies that are looking to technical projects.
Create an account – but recognize you are an unproven client on the site. That means that you can’t post lowball prices on fixed bid projects and hope to get people to respond.
Can you break your MVP into Pieces?
For example, can you separate out the mobile functionality from the website functionality? Is there a way you can do a “staged build”, I’m not talking about your project sprints yet – we’ll get to that later. But is there a part of functionality you can use to engage the developers?
A sidebar here on going “off network” with developers or vendors. If you have a public profile and skype address you will get solicited outside of UpWork from developers. Don’t do it. The system is set up to protect both parties. Vendors will ask that you pay them in advance – don’t do it. The 20% fee that UpWork takes for their business is worth the cost of rated and vetted programmers.
These are going to become your milestones.
Posting a job
- Post a Job
- Part-time – short term – flexible or not sure
- Dedicated – 30+ hours a week – you’ll use this one later
The site allows you to put money into escrow and pay the vendors when they deliver the milestones of the project. That way the vendors know they are getting paid and you know they have to deliver code before they get paid. You don’t need to pay upfront for services, but you will need to commit your budget based on milestones. Don’t expect developers to startup until you fund the next milestone.
Don’t let your grandiosity get the best of you here. Start with a part-time option and test your project and developers. Recognize that like all MVPs you may end up throwing away your first build when it comes time to build your final solution. So this one just needs to work – or mostly work. Also, you may need to hire more than one developer to test their skills. If they both deliver, you’ll pay twice. But if you pick one and they don’t delivery, you could be weeks behind.
After you put out the summary of the job post, I like to add a review process as the first step to evaluate the shortlisted candidates.
Project 1 – Fixed Price – Review my scope document:
- Create a $100 job as the starting point.
- Hire three vendors, their goal in the project is to:
- Review the document
- Bring questions to the call
- Sit in on a 60 min Q&A conference call
- Have them write up the meeting notes and next steps
- Who asked great questions
- Who provided great feedback on the document
- Review the three developers for their feedback
- Who took good notes – sign of project management skills
- Who provided follow-up and feedback
- Review the document
- Ask them to provide feedback on our Spec – you should have at least two in the process
- Use the Suggestion Feature on Google – create two different Spec (e.g. 1.1a and 1.1b)
- Ask them to help you break down the milestones – target two-week sprints – this is the amount of time that they work on a section of the project with a deliverable in mind
- As a non-technical person – don’t mess with the Sprint cycle between sprints it will take more time. Don’t change features or priorities until the next sprint
- Ask them for an updated budget for the project – are you still within the original scope and budget or not – what feature can you cut if not
This should give you a pretty good idea of who you can work with and if they are realistic about the project scope. For example, are both telling you that it is going to be a month worth or work – or are their wild disparities – like two weeks to six weeks. Dig into the reason if this is the case.
Post the larger project – given the feedback and let your short list know that you will invite them to bid on the project. At this point, you’re going to have to commit to a number. But you have some data to bid it out. A fixed price project could be $1,000-20,000 (or more). This is why you need to de-risk the early stage to get the price and project scope down to a reasonable amount.
Should I hire a team or individuals?
This is a question that is more budget driven. Ideally having a team that can do design, mobile (iOS and Android) front end and back end technology is ideal. However, that will be more expensive. Don’t expect your developer to be a designer or vice versa. Remember, Unicorns don’t really exist.
You have to project manage this process or you’ll have to pay for a firm to include project management in the service. Either way, someone needs to project manage.
Milestones & Sprints
Now that they have helped you define the milestones and sprints, you should have a general budget in mind and know how to break up the payments.
Summary
You know have to make the go/no-go decision if you’re going to spend the money and if you’re going to project manage or have a company help with the project.
Do you have the budget to see this through? Should you go do some more customer development to make sure your target customer is willing to pay for the product before you commit to the escrow?