I have experience in running a business, in marketing, research, strategy, customer service, business development, and I have some very important ideas that I want to transform into businesses. However, most of them are applications - software, web apps, mobile apps - and I don't know how to create these. This holds me back. I have the vision, concepts, plan for the solutions that I want to create, but I don't know who to hire, how to hire, where to hire, how much to pay to get those solutions created. I don't know if I should hire or partner. Sometimes I feel like publicly giving away my ideas just so that I can see somebody make them into reality. Sometimes I think that's ridiculous - I should be able to do it, but how? Not knowing how to program and not knowing how to connect with programmers holds me back.
Update 1:
You all are amazing. Thank you so much for your replies, and if anyone else has more advice please give it. I am trying to digest all your suggestions so I can't comment to each yet, but I will try to go through each piece of advice.
I'm seeing a few themes right off the bat:
1) Stop your lizard brain / don't discourage yourself. Don't wait. Just get started.
2) Document what you want to do, clearly articulate the purposes and goals of the solutions you want to create, but don't over-analyze.
3) Develop an understanding (at least introductory) of the technologies and platforms that your solution would use, as well as the limitations and capabilities of each.
4) Don't just look for a quick setup or quick fix. Find someone who can help you adjust the product for customer needs and have a technical lead role in your company in the long term.
--- then there are two conflicting themes ---
4) Just start programming yourself. Learn the technology and get something going. You don't want to be dependent on another person to fulfill your goals.
5) Don't just start programming yourself. Try to find someone within your work/social circle who you might be comfortable working with, or comfortable asking to help you screen potential candidates. Concentrate on your strengths and let someone who has properly learned programming develop the inner workings of the solution.
How do you guys reconcile the two different types of advice above?
If your not openly willing to share your ideas you will always have a hard time connecting with programmers. Its not the ideas, its the execution. Start talking and sharing your mind more, things will start happening.
First off, I'd suggest you take a look at this recent interview and video with Seth Godin.
Then as Jeff proposes, make a compelling "slide deck" for programmers -- i.e. something (Powerpoint, screeen mockups) that visualizes the application & business, makes it clear that there is substance behind your ideas, and can get the programmer to visualize a successful startup with interesting tech.
Then go search for a startup co-founder to be "the tech guy", a.k.a. the architect or CTO. I'd suggest looking in your circle of current of former co-workers, people from the University, from hobbies and social clubs, in other words anyone you have already known for a while, and feel compatible with.
I don't think there is a special secret to "connecting" with programmers -- they're people like everyone else.
Joel Spolsky has written a book on interviewing programmers and which skills to look for. It's IMHO not his best work, but it still has some good pointers, and its a quick read. You could consider loading up the Kindle edition and reading it over a weekend. Here is a sort of short summary of the book.
If you want to build a company, then honestly, finding a CTO is one of the smaller problems. Are you sure it's not what Seth Godin calls the "lizard brain" that is speaking up...?
Start documenting, and diagramming your ideas (page/form mock ups, flow, logic, explanations, etc.). Whether you learn to code or hire someone you'll need this.
A non-programming route, would be to try a website like Caspio. Learning to program is difficult and time consuming. Grab a book or go to a website that looks like it will teach you to create software that matches your ideas. You'll quickly discover if this is for you or not (If you just can't put the book down and you code for hours on end.).
Search to see if there are any IT professional groups in your area and attend a meeting. You may meet potential candidates for technical partners.
If you are sincere about hiring a contractor, shop around for rates. Do a small project and see what you get for your hourly fee. Make sure they understand that you want the code and you own it (you paid for it).
If I were in your shoes I would create a page by page (if web app) or Screen by Screen (if desktop app) views of everything the program will do. Plan it out 100%.
Then once you have done this get companies to bid on how much it would cost to build it and how long it would take. Use your best judgement to pick and go with a smaller company, odds are you will get better results then with larger ones.
Since I work for a company that builds software when we get a client that already has all of these initial prototype designs done for us it really helps us see what you want.
My two cents:
As a Startup CTO and a Entrepreneur in Residence, I've seen many times where companies treat technology decisions like drycleaners - want clean shirts, only care about the result, cost and delivery time.
That's a shame, since no one really knows what the complete product should be until it actually is in front of customers, then you really find out how close you were to meeting the customers needs. If you assume that development is a one time effort - develop, launch, rake in the cash - then fine, you can outsource the development. Good luck with that. But if you believe that you need to get something in front of customers, validate their needs, then make changes, you need to have someone who develops (or leads development) on the inside that cares about the long term success of your organization.
That said, I think attempting to document and wireframe your concepts is sound advice - just don't get so stuck on the looks. Pencil is a good wireframing product to use - and its free. Thinking of the product based on the business logic, what specific user types (public visitors, registered visitors, subscribers) will see and what actions they perform will get you far in defining what a project scope will be.
Also of value - focus on a prioritized feature list based on business goals. What is the minimum needed to launch the product. What do feature needs to be validated first and improved on? All of these are business decisions, not coding decisions. Developers can take this list, understand the technical ramifications of the feature, and then figure which features are can be "bundled" together (rely on the same foundation).
Jeff, unfortunately time and time again I see good ideas end up in oblivion because of this. What's up with the not knowing how to program? I understand you might not like programming, and maybe you'll never be good at it. But it will reward you greatly to start doing it yourself. I've found that if I can find a natural partner than awesome, but don't force it. You'll end up in a relationship where everything depends on the other person getting something done.
I would take a good hard look at learning Ruby on Rails. Pick up a book and just start making stuff. Make the very first screen that gets the most important thing done. It's going to look like crap and not work a ton.
Start going to classes and meetups and conferences. You'll at least have an understanding of who you need to hire in the end, and probably meet people during your challenge who can do it much better than you.
It's gonna take a lot of effort. But that effort will pay off in the end.
Ideally, you could try to find a technical co-founder. You can look into your network for someone who knows programming and ask him about the technical difficulties of bringing your ideas to reality. For most web based startups, technology is a very important part of the puzzle and you will not get very far trying to outsource it. As your ideas evolve and you iterate, you need someone who can partner with you on the programming side.
What application areas are you interested in working in? If they mandate a specific set of technologies (e.g., you want to develop iPhone apps - requires Objective-C and Cocoa) you might ask for specific pointers for those on StackOverflow.com.
On the partnering side: the important thing here is finding someone who complements your abilities and is willing to act in line with your goals (either because they share them or because you've come to a common understanding about what they'll get in return).
I'm a software developer - a really good one, in my own not-completely unbiased opinion. It may surprise you to know that I, too, frequently think about dumping my ideas on other people just to see them come to fruition. Why? My major gap is the ability to obtain/create graphical resources. I can compose my own music, record my own sound effects, design my own UI, code my own application, run my own server, write my own user manual and maintain my own community website for it, but there's not much of a market for text adventures or ASCII-only business apps nowadays. :-)
My point is not that you should learn how to draw, but that software developers face the same general problems you do, just not the same specifics. If you can convince one of them that you can fill in the holes, then they'll probably be more than happy to come to some form of talent trade agreement. (This may involve you providing the marketing expertise for their own applications while they code your V1, for instance.)
On the learning side: if you can swing it, the absolute best way to understand what programming entails is to have a great programmer give you a very general idea of what he does, then watch him program and ask him questions while he's doing it. I already know how to program in some theoretical sense, but I learn a lot every time I have the chance to work this closely with a really good programmer. Unfortunately, you'll have a hard time coming up with someone willing to do this if you don't already have a reasonably close friend who's a coder. (I would consider doing it but the logistics of doing such a thing remotely are painful.)
If there's a strong tech community in your area you might consider taking a programming course or three at a community college. They'll walk you through developing some basic applications. Alternately, you can get some really good books about programming and read them - it really depends on whether you're more comfortable with self-guided or other-guided learning.
Finally: don't underestimate the power of waiting. Over the years I've seen a good 50% of the software ideas I never bothered pursuing brought to fruition by someone else. So they'll probably show up eventually. I know this is a bit of a downer, but it's a good thing to remember. (And if you do wind up trying to go into business with them - well, it's good to remember there will always be competition, no matter the idea!)
My opinion only of course and from past experience - do it yourself! It's the whole "teach him how to fish, feed him for a lifetime" analogy.
If you are long on ideas, knowing not all your ideas will be winners statistically speaking, pick the ones with the best business model and ability to begin generating revenues instantly - buy some books and start coding away!!!!
Microsoft has a BizSpark program that offers startups FREE professional/commercial versions of ALL their software - from the most recent MSFT Azure Cloud software, Visual Studio, .Net, etc. And this is for 3 years!!!!!!!
Having to depend on others, and give away ideas, equity, money, time is painful. Been there and done that. I jumped into coding out of necessity and love it. You can then build your business to the point that it's revenues will afford you to hire the right talent to make it all work.
I think the funny thing you will find is that the biggest challenge won't be in getting it built - but in getting the traffic you originally envisioned. Be sure you have the getting to market plan figured out. Too many people assume they can just build a site and turn it on - and then magic happens. There is no magic. That is marketing and advertising my friend. Have a plan to get the product moving forward with traffic. Think small, think niche, just get it rolling. Good luck.
If you try learning to program so you can implement your ideas you may cause more grief than help.
Programming takes time to learn, and to understand the pros and cons of various languages and technologies takes even longer, as you are having to learn several different languages.
That said, you may want to network and just sit down with some programmers, to get an idea what they are like, what they are passionate about, and what they know.
The problem is that you will have a hard time knowing what you are looking for and if this person is qualified, unless you have someone that can feel the person out. So, you may want to see if you can find someone that has the skills you want, but they may only be available to look at resumes and to do some interviewing.
Once you get a tech person that has the necessary skills and the aptitude for the work then that person can find like-minded people to help.
But, if you can start to get an understanding of some of the technologies. For example, if you want to develop for Blackberries, iPhones and the Nexus One, then it may be useful to at least have an understanding what you can do with each of these, and what one can do that the others can't, so you can design taking into account the limitations.
If you want to develop webapps, then having a rough idea about Ruby On Rails, ASP.NET, ASP MVC and perhaps Java web frameworks may be useful, but there are so many frameworks for these that it gets harder.
Don't try to master these, just try to understand enough so that if someone states something that is unreasonable you can call them on it.
If someone is telling you that they will use the touch screen on the Nexus One, you need to know if that is possible, or, if someone wants to have a Flash application on the iPad.
UPDATE: Based on the summary from the OP, there is a question about conflicting advice, about whether to actually program or not.
Basically, it depends on your timeframe. If you don't mind waiting 3-5 years then program it yourself, by learning to program well, but, if you want to get something done sooner then concentrate on being the visionary and trust that others can implement with you providing guidance, to help them stay on track.
So, it is up to you as to how quickly you want it done.
Jeff, I just got the alternative answer.
I'm a software developer asking about sales and marketing.
Have a look at Josephs answer:
Can you outsource sales for high tech companies? Basically, find the right developer or development team and work with them to develop your idea. If you get the right team
Than you are going to do learning it all yourself. Plus any venture needs more than the developrs ... that is really the easy bit. If you can bring in the clients, define the direction and understand the real goals of the users, translate the needs and work with the developers to develop it then you are miles ahead of the guy who can code and doesn't understand any of the other elements.
You may consider engaging a company like Accelerance to find the right software development services provider. You can even get a virtual VP of Engineering from them.
Disclosure: My company is on the Accelerance's partner network.
You all are amazing. Thank you so much for your replies, and if anyone else has more advice please give it. I am trying to digest all your suggestions so I can't comment to each yet, but I will try to go through each piece of advice.
I'm seeing a few themes right off the bat:
1) Stop your lizard brain / don't discourage yourself. Don't wait. Just get started.
2) Document what you want to do, clearly articulate the purposes and goals of the solutions you want to create, but don't over-analyze.
3) Develop an understanding (at least introductory) of the technologies and platforms that your solution would use, as well as the limitations and capabilities of each.
4) Don't just look for a quick setup or quick fix. Find someone who can help you adjust the product for customer needs and have a technical lead role in your company in the long term.
--- then there are two conflicting themes ---
4) Just start programming yourself. Learn the technology and get something going. You don't want to be dependent on another person to fulfill your goals.
5) Don't just start programming yourself. Try to find someone within your work/social circle who you might be comfortable working with, or comfortable asking to help you screen potential candidates. Concentrate on your strengths and let someone who has properly learned programming develop the inner workings of the solution.
How do you guys reconcile the two different types of advice above?