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?"
a different business model? (Score:2, Interesting)
Aren't really most good software companies built not on making one good product and selling it perpetually, but continually improvin
Re:a different business model? (Score:4, Insightful)
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.
Re:RentaCoder (Score:2, Interesting)
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.
RentaCoder is my choice. (Score:1)
Re:RentaCoder is my choice. (Score:2)
I tried it once and almost won the bid (I was high bidder, but the buyer was comfortable with my experience and knowledge of the field), then the requirements changed, and my new bid put me out of the running (still better than the alternative of
Re:RentaCoder is my choice. (Score:1)
Follow the link he gave - it redirects to his RentaCoder developer page.
He's from St. Petersburg, Russia. Also, he's done 205 Rentacoder jobs that average $26.71/job - approximately $5475.55 in income. Considering that Rentacoder takes a chunk o
Get some legal advice first. (Score:5, Insightful)
Don't pay now (Score:4, Interesting)
Re:Don't pay now (Score:2)
Re:Don't pay now (Score:4, Informative)
Re:Don't pay now (Score:1)
Bankruptcy courts have been dealing with people like that forever, so they know all the tricks.
Re:Don't pay now (Score:2)
RentaCoder.com (Score:3, Interesting)
First Find A Great Project Manager (Score:5, Insightful)
The only way to handle consultants is to have your own very knowledgeable and forceful project manager to drive the consultants. This person needs to know enough about coding so that they cannot be BSed, or needs to have a trusted resource that will keep an eye on things.
I've yet to hear of even a single offshore success story; all of the ones I've heard end with "we were already way past the deadline, and we had to start rewriting from scratch!". Managing a project in your own office is very difficult. Managing one half-way around the globe staffed by people with different language and culture... forget it.
Good luck!
Re:First Find A Great Project Manager (Score:3, Interesting)
This is far to broad of a generalization. I own a software development consulting firm and I can tell you that billable hours *do not* come before completing the project and doing, not just a good job, but an exceptional job. I do business with consultants every day who hold the same attitude. In fact, I would say that the majority of consultants out there hold a similar attitude. If they didn't they wou
Contact us. (Score:5, Interesting)
That, of course, is the issue, and what elevates this post (in my mind, at least) above an ad. You don't seem to want someone who can build you a particular widget, you seem to want a partner that will assume some of the risk of launching a venture. And that is a very, very different thing. Craig's List is full of crap from people who have a great idea... "all we need is all of that other stuff, and a website, and we'll be rich. Wanna do the website?"
My advice: "unask the question". You really seem to want a partner. You're concerned with managing timing, cost-overruns, etc., and clearly don't have the finances to build a company to keep that in house. So, you need to sell your idea to someone who does have the resources and ability to share the risk. Think of this as low-end VC. How does one get (low end) VC? Go sell it to people.
Like I said, if you want code in exchange for money, sure, we'll give you whatever you want, it will be priced fairly, delivered on time, and be generally well done. You can get this from a lot of places (although I must say we provide nice perks for using us, and we write *excellent* code.). If this is your angle, lots of people can give you what you want, and analysing who is best to provide it is a business decision. Weigh cost vs. expected outcome, based on the history of the vendor. Ask for references. When you pick someone, stay on top of the process while it is going on, and don't be afraid of calling bullshit when you see it. Also, don't call bullshit when something isn't. Make sure that changes don't derail the project.
Simple, right?
There's the problem.
Re:Contact us. (Score:3, Funny)
Re:Contact us. (Score:2)
I try hard not to be a self-promoting bastard.
Re:Contact us. (Score:1)
Why are you looking for a firm? (Score:5, Insightful)
Why would you want to (essentially) outsource development of your idea? You may not be the greatest coder in the world, but you should be able to put together something by yourself. If it's a large enough project that it might take 2-3 additional people plus you a number of months to complete, then start your company, find those people, sell them on the idea, and get them to come work for you in a startup capacity - reduced or no salary, stock or option grants, etc. in return for shared responsibility in creating the company.
Face it - a consultant or contractor is only obligated to give you what you've contracted for, and is probably going to be more than happy to eat up your cash reserves by working extra hours to fix bugs, meet demo deadlines, etc. His/her reward is relatively small, and effort is commensurate. Someone sharing responsibility with you for putting out the product will be a lot more motivated (by a greater reward, and a greater risk) to provide whatever effort is needed to get the product out and get money rolling in ASAP - presumably your desire as well.
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 fo
Re:Why are you looking for a firm? (Score:1)
Of course, in keeping with typical Pittsburgh weather patterns, you wrote this while it was sunny and 60 degrees out... less than a day later, I get to read it with a snowstorm swirling around outside my windows :-/
To keep things on topic: I actually though of recommending that he see about hiring some folks from around here... while it's not Silicon Valley, there are plenty of good people, and plenty of experienced and mature people - IMHO, exactly the
Re:Why are you looking for a firm? (Score:2)
Re:Why are you looking for a firm? (Score:1)
XP (Score:4, Interesting)
Hire a couple people who have experience with extreme programming (XP). They'll deliver exactly what you want, without bugs*, with a release every week.
You tell them the most important things to do, and they'll do them in order of your priority (not some made-up technical priority). They won't do other things that they think are nice, just the parts that you ask them for. Hopefully, you'll ask them for only what is needed for your demos.
The weekly releases are key; you can see exactly what's happening. You don't have to wait 6 months to find out that the program doesn't really work, or doesn't do what you want it to do. You'll also quickly get a usable program that does the few things that you need to demo. If at that point you realize that your product idea wasn't so hot after all, you've just saved a lot of money over what you would have spent if you hired a team that wanted to spend all kinds of time creating a flowery design and building infrastructure.
As far as hiring XP types, try to find a local XP person who is well-respected and ask him or her for some leads. Maybe get a technical friend to help interview the programmers. But be sure to hire people who have experience working this way. You don't want to pay them to learn how do release software incrementally.
(*By "without bugs", I mean "without known bugs". Lots of people write software and leave a lot of bugs in until the end. That hurts demos. XP people will fix buggy code as soon as they see it. And they'll write automated tests to make sure that bug never shows up again.)
Re: Drink the Seat of the pants Kool-Aid (Score:4, Flamebait)
Hire a couple people who have experience with seat of the pants (SOtP). They'll deliver exactly what you want, without bugs*, with a release every week.
You tell them the most important things to do, and they'll do them in order of your priority (not some made-up technical priority). They won't do other things that they think are nice, just the parts that you ask them for. Hopefully, you'll ask them for only what is needed for your demos.
The weekly releases are key; you can see exactly what's happening. You don't have to wait 6 months to find out that the program doesn't really work, or doesn't do what you want it to do. You'll also quickly get a usable program that does the few things that you need to demo. If at that point you realize that your product idea wasn't so hot after all, you've just saved a lot of money over what you would have spent if you hired a team that wanted to spend all kinds of time creating a flowery design and building infrastructure.
As far as hiring seat of the pants types, try to find a local seat of the pants person who is well-respected and ask him or her for some leads. Maybe get a technical friend to help interview the programmers. But be sure to hire people who have experience working this way. You don't want to pay them to learn how do release software incrementally.
(*By "without bugs", I mean "without known bugs". Lots of people write software and leave a lot of bugs in until the end. That hurts demos. Seat of the pants people will fix buggy code as soon as they see it. And they'll write automated tests to make sure that bug never shows up again.)
Re:XP (Score:4, Funny)
NO. STAY AWAY FROM XP.
That damn autoupdate pisses me off.
Re:XP - well dang, I'm convinced! (Score:1)
NO. STAY AWAY FROM XP.
I don't know if it was your eloquent argument, your convincing use of logic, or your articulate and thorough statement of the issues and problems -- but based on your recommendation, we have no choice but to stay away from XP!
Re:XP (Score:2, Interesting)
well
however
once upon a time, there was a task to solve, it was about developing of an algorithm, mix of known stuff tuned to a problem, with all the options which are needed and none of those which are useless
i faced a first set of technical questions, like which platform, which language, which methods
after two days of evaluating all the options i have, i've chosen perl
i've chosen perl for implementation of an algorithm which was sup
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 met
Re:certifications mean nothing (Score:1)
if you want to break your project into a short term goals, you should have more then some ideas
the sorter is a time period of your 'short-term goal'; the more precise you have to be to get into your target on time
Re:XP (Score:3, Insightful)
without a detailed plan you are going to loose control over the things
That's not my experience of XP.
What you need to have is the ability not just to plan, but to re-plan, over and over. I forget exactly how Barry Boehm phrased it, but his pithy summary was that traditional methods (like the waterfall) were plan-driven, whereas agile methods like XP are planning-driven.
I've done a couple of subs
Re:XP (Score:4, Insightful)
But....
As a customer, I wouldn't hire a firm/team based on their methodology talk, whether they're talking XP or RUP or whatever. I'd hire them based on their demonstrated ability to get useful software out the door, then hope they keep doing whatever they'be been doing.
That said, as a customer I'd want frequent delivery of working code, regardless of the specific process the team will be using to delivery it.
Re:XP (Score:2)
But either way, I almost agree with you. I'd hire them based on their demonstrated ability to get useful software out the door iteratively, without lots of bugs piled up at the end, and without a mess of code that would take forever to fix if I were to continue development, then hope they keep doing whateve
Why XP is bogus (Score:3, Insightful)
E.g., the fact that the poster child for XP, the C3 project, was a project with fixed requirements, _not_ something requiring constant change. And it just burned money for many years in a row, didn't deliver even a fraction of what it had to do, until it was considered a miserable failure by t
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 r
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
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.
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.
Been there, done that... (Score:2)
Now, I can code. I understood the problem domain, I have a lot of experience managing complex projects and 3rd party suppliers, and we knew pretty much what we wanted. It was still a nightmare.
Here's what I recommend