Software Prototypes into Finished Products? 55
blastedtokyo asks: "With all the talk of offshoring and outsourcing, it seems that taking an entrepreneurial route is a great way to take your life out of the hands of overpaid goons and put it squarely in the hands of an underpaid one. Without an organized team of coders, testers, and designers it seems very tough for a single person to get started in anything other than consulting, or selling stuff on eBay. With my background in product design, and my knowledge that my coding skills aren't the greatest, I'd like to find a vendor or team to help develop some software ideas that I've been stewing over for a while. In other words, I've got the business plan, some credit-cards ready to be maxed out, the bitmap-demo and the specs for a few possible projects, but would like to get a team to code up a working prototype suitable to get some initial customer evaluations. Does anyone have experience sourcing such a vendor? How would you interview a firm to know that their staff is easy to work with and competent? Is it possible to do something like this without delays, excessive mis-communications and cost overruns, or is it better to just start hiring contractors, one at a time?"
ICC Ohio does offshoring (Score:2, Informative)
I would imagine that, unless you've dealt with offshoring previously, that someone you can communicate with is the most important thing, and then holding the company doing the offshoring to the deadlines and deliverables of your project.
That said, I have no interesting or useful business ideas.
RentaCoder (Score:3, Informative)
You will loose your shirt, by the way. The guys who do independent software projects, the kind that are sold shareware or download-register, all write the stuff themselves to start out. And some of them have worse coding skills than you, believe me.
What to look for (Score:2, Informative)
Geography
Work with someone in your area. Believe me, you'll be plenty busy with everything else that you won't want to deal with timezonea or thick accents.
Integrity and Experience
Part of your interviewing process should be to get references for the vendors on your short list. Check them. Also use your personal network to check the potentials out. You're betting it all, you want someone you can trust. You want to make sure they've done the kind of work you're doing. Many firms say they have experience doing what you need but don't really. Ask to talk to one of those customers they claim to have. Make sure they have done the work recently. Lots of companies change focus.
Experienced Staff and Manager
A lot of firms will let you sit down with the team who will be doing your work. This would be another part of interviewing a vendor for me. Ask if you can follow around (for a day) one of the people who would make up your team. I'd spend a day or two around the office of the firm you're hiring. Make sure you like how they work. Also, make sure the manager of your project is someone with experience and whom you really like. They will be the one keeping you informed with the good and bad news. They will also handle your requests for change.
Financial Flexibility
My firm sometimes works with startups for a stake in the company instead of pure cash. Ask about alternative financing options. I don't know any contractors who will work like this.
Advice from a firm like you want to hire. (Score:5, Informative)
We specialize in a few different types of work for small firms and billion dollar companies. Man/machine interfaces. Medium scale (5 to 500 end points) distributed soft real time data gathering and collaborative apps. Hard real time embedded consumer and diagnostic devices. To give you some idea, over the last 10 years we've worked with x86, PIC, 8051, etc. using VxWorks, Win*, SCO, FreeBSD, Linux, PalmOS. Oracle, PostgreSQL, SQL Server dbs, C, C++, Java, Perl, etc. A wide variety.
The advice: don't try to farm the project out. Find a firm that has experience using the tools you need to have used doing the kind of work you need to have done. Make sure that their management team and engineering staff are the same ones that worked on prior, sucessful projects like yours will be, and check with their past clients to make sure they did an acceptable job.
Get a project plan from them with a detailed task breakdown (be reasonable about how detailed: don't expect them to make up tasks for things you can't yet spec clearly). Have them identify risks up front and get those tasks moved to the front of the schedule. Make sure you see clear descriptions of architecture--vague descriptions and diagrams are a good sign that they don't get it yet. Make sure you or somebody you trust technically reviews their work.
Once hired, visit them frequently throughout the process. Assuming you don't have an airtight spec, you'll want to work on site as much as you can or have them work on your site--rent space in an incubator or industrial park or even a house, but get you and them and everyone you can to work in the same physical space for a good part of each week if not full time.
You can try to get them to take equity, but sucessful firms generally avoid doing that unless you or your advisors have a really good track record, a solid bplan, etc., etc. If they're eager to take equity, then they may be starving. If they're good, that's ok, but it's often a sign of desparados.
Good luck--you've chosen a hard path, but it's a lot of fun and hopefully you'll do well at it.
- Barrie
Easier and harder (Score:3, Informative)
I have a large number of contacts, local developers like myself whom I have worked with in the past and established a good rapport. You can be certain that it is faster and easier to take on a team that already works well together then to try and unite people you don't know very well. You'll find that there are a huge number of people like me, working from home part-time (20-30 hrs/wk) to make ends meet. I suggest looking around for locals who are involved in sourceforge projects, as being willing to put your code up for the world to see tends to say something. Look on Monster.com for local resumes which meet your needs, if these people don't have a full-time job, a 6-month or so project may be something they are interested in. I strongly suggest stayin g with locals unless you already know the team well.
Now if I was just local and was willing to breach my
Re:Don't pay now (Score:4, Informative)
Re:XP (Score:2, Informative)
Here is a traditional method:
- Write program requirements
- Write design document
- Write source code
- Realize that the design decument is wrong
- Change the design document to fit the code
- Realize that the requirements are wrong
- Change the requirements
- Repeat
Here is an agile method, like XP:
- Set a short-term goal
- Write as little code as possible
- Make sure the code works
- Repeat
Agile methods accept the fact that requirements change and that correct design documents are very rare beasts indeed. It's a good way to make good software. Designing the program completely before coding is a real waste of time. Agile means that you do loose some control... but it gives freedom to the programmers you hired -- enough freedom to do what they need to complete the task. Of course, it's not a good way to design software for, e.g., a space shuttle where the requirements are very well known and have little tolerance.
Make sure that you know what you are getting (Score:3, Informative)
Assuming that you can find a firm (and there are plenty of good suggestions above), you absolutely need to make sure that you know what you are getting. You need to interview the firm and interview the exact people that will be on your project. Also, you need to know what the process and likelihood are that the people on your project will be switched out. I spent some time at a consulting shop, and it seemed common for the client to think that they were getting people experienced in the tool that we were implementing on their project when they ended up with experienced people who were new to that tool. Even if they got people experienced with the tool there was a fair amount of staff turnover from project to another project.
Also, you'll need to manage the development closely (in an almost XP style). None of this "here ya go, I'll see you in 2 months" sort of work. You want to monitor the work and truly be able to understand what they are doing even if they can code better than you are.
Finally, expect to spend a lot of money. Rates are way down from what they were a few years back, but a "few credit cards ready to be maxed out" may not cut it for the prototype development, let alone enough to deliver anything.
Re:Why are you looking for a firm? (Score:2, Informative)
Exactly!!! The whole idea is to realize the true value of your work, not to make someone a boatloat of cash. If you take the initiative NOW, five years into the future you may be quite successful. Reward does not come without effort. If your ideas are that good, team up with competent developers you know. Add a few $100 for web hosting, etc and supplies and you can move forward without losing your shirt. Dont look for others to make you rich, wealthy, or even well off. Do it yourself and see where life takes you.
BTW I'm here in Pgh too. Nice weather for a change.
Re:RentaCoder (Score:3, Informative)
A lot of the projects listed on rentacoder.com are students asking for people to help with their homewrok. It would make sense for these students to try and do the work themselves and ask for help on codeguru.com for free before they have to fork out money for the homework to be done for them via rentacoder.
Thanks and a few notes... (Score:4, Informative)
To clarify a few points, here's a little more background. First, I'm definately planning on hanging on to the project management/specs and not farming that out. I'm looking to outsource the coding because 1) I suck at it and 2) it's not what gets me excited. At my old day jobs, I worked side by side with great coders and while I know I probably couldn't afford any of them on a full time basis, I'd be doing a huge disservice to string together crud that I wrote. For me the thrill is putting a useful product in people's hands, growing a business, creating a great place to work and finding ways to do it on a shoestring.
Second, as my handle indicates, I'm physically located in Tokyo. As a person of mediocre Japanese skills and western upbringing, finding local help at a rate that I can afford is tough. Working with someone remotely is possibly easier than working with someone locally. I'm expecting to relocate somewhere else in the world as this project grows but to get started initially I just wanted something that could be use to gauge (business) customer interest. At this point, showing off my Flash demos draws a lot of friendly "well that looks great, come back when you have something real" remarks. I'm looking to have something that people could quickly try it out on their systems for a few days and either call me a complete moron or tell me they might be able to work with me, partner up, etc. In other words, I'm looking for the proverbial proof of concept.
Third, I'm curious about people who have suggested giving up equity in an early stage like this. I've always heard that one of the biggest mistakes of small businesses is giving up equity too early and too generously. While I realize I have little else (cash) to give, I figure it's not something to be casually thrown about, especially if someone that I ultimately have trouble working with ends up with a significant equity stake and demands to have his share bought out.
Fourth, as far as an open source business model goes, I'd like to go that route in finding lots of grassroots help but I worry that would eliminate any advantage I had in building a business. For example, let's say I put the idea out in the public domain and managed to get 15 people interested in working (part time of course) on a GPLed version of it. If/when the project became usable by customers, there's nothing to prevent a better funded firm (like IBM) from bundling it into part of their solution offering and becoming the de facto commerical support vendor for the product.
Finally, for those of you who wish me failure and call me gutless for not writing it myself, I have no doubt that this is no sure thing. It's exactly the reason I'm looking for contractors or oursourcing firms. It'd be downright irresponsible for me to start interviewing full time employees, hire a handful of them but know that I'd only be able to pay them for a few months before running out of cash if there were significant delays, negative customer response, etc.