I have mobile app and social media site ideas but not sure how to get them started seeing that I don't have any computer science background. I have contacted some local consulting firms but they expect me to know exactly what I want from them. All I know is a basic idea of what the end result should look like and how it should operate. Are there any books, websites, etc. that I should know about to get a basic understanding of the software development process in laymen's terms?
I have contacted some local consultingYou are very lucky, many consulting companies wouldn't expect you to know what you want. Many would just start billing you hourly while you flip flop all over the place.
firms but they expect me to know
exactly what I want from them.
Unlike the others, I get the impression you are not trying to become a programmer, merely trying to figure out how to work effectively with one. If that is the case, I will respectfully disagree with the others about the usefulness of StackOverflow (with the possible exception of the 'Requirements' tag).
I would suggest you write a very detailed list of everything you want in this application in point form, along with a 1-5 rating of how important it is from a business standpoint. Please notice the emphasis on
Then bring in the software consultant again to help you. The consultant will then help to flush out conflicting requirements and design a good user interface. They will also be able to provide you with a 1-5 rating of how difficult (i.e. expensive) a feature is, which you can compare with your 1-5 list of Business Value to decide what to cut.
EDIT: Apparently there is a good question for you on StackOverflow. Check out Best way to communicate with a programmer to define a project?
Do some searches on StackOverflow.com. The site is very Q&A oriented, but it's got a lot of very basic information there too. Particularly look at the tags 'best-practices', or 'beginner', plus any related to the specific technologies you want to know.
Wikipedia can also be a useful source of general information. I've learned a lot about fairly technical subjects from it, provided I'm looking for broad overview more than specifics.
Overall, though, find yourself a trusted business partner who does have technical knowledge, though. That's gonna serve you better and get your product to market faster than if you try to do it all yourself. No man (or woman) is an island.
If you find the right consulting firm, they'll be able to walk you through what they need and what you need to provide. That's not going to be cheap for you. You're basically asking them to build you a product from scratch with minimal guidance, for what is probably an inconsequential portion of any proceeds should you succeed.
If you haven't already read it, the wikipedia article on software development is actually a decent introduction. From there, you can google the terms used to find out more about specific phases. Keep in mind that not all projects experience all these phases, and many developers don't call them the same things, but the workflow is usually similar.
http://en.wikipedia.org/wiki/Software_development Stackoverflow.com is a good place to get specific questions answered. As Gabriel said, find yourself a good technical business partner who believes in your ideas.
As a consultant, it can be frustrating to try to get ideas from the heads of people, so I can write what they want, since they only think they know what they want.
What you may want to do is to storyboard your idea, first.
So, write out step by step how you expect someone to use your application, if they just go straight through.
Then, as you fleshed that out, you can start to look at each feature and write up a short narrative on how a person may use that feature, and there may be several narratives on a feature.
Once you have that, then it will be easier for a consultant to help you, as you have done some design already, and so have a better idea how things should work, from the users POV.
For example, you may have a table of data showing all their current stock holdings, value when they bought them and current (up to the minute) value today.
So narrative (user story) 1:
User can see how all their stock holdings are doing by seeing ticker symbol, value when purchased, current/live value and difference, with the pink for losses of less than 10% and red for losses >= 10%.
Now, when you wrote this, you may decide to have another feature where people can set this 10%, based on their comfort level, and perhaps change the colors, as they may not like pink or red.
Then, on the same table:
Narrative 2: User can sort each column.
Now, you will need to decide what if someone has 2000 stocks (big table). Will they be doing paging? Will sorting be just on that page or do you sort the entire table first?
My point is that you don't need to know anything about development, you need to better design out what you want the consultants to do.
I may have given an idea to someone, they will take it, and become wealthy in my answer.
http://cs75.tv/2010/fall/ Also check the other classes. This one is targeted on web development, but there is no reason not to start by that. The earlier dates offer the written transcripts which are invaluable - you don't need to take notes. Note that there is now a class on mobile app dvp.
After this, you need to take a basic class on db, for example some version of SQL.
This will get you along far enough that you can speak the same language as programmers and write meaningful functional specs. Then you can delve in a long series of books to learn more about programming.