[SalesForce] understanding salesforce licensing for development and deployment

I am trying to understand the licensing issues on I would come across on Force.com for developing an application that will have its own data source and will also be pulling data from SalesForce.com via api/service. I have spent over a day researching this from various sites but most of them keep throwing up new things which don't really answer my questions and have got me asking more. IF anyone here has any insight into this that can help me understand the cost of development and maintaining a site using Force.com, so I can compare it with building an application ground up on say .Net or Java and hosting it on a different cloud provider, then please help me out. My questions are:

  1. If I have 5 developers working on an application called XYZ using the Force.com platform, how many Force.Com licenses would I need to purchase for such development work and of what type should those licenses be?
  2. Would I also need to buy separate SalesForce licenses if those developers need to fetch data from the SalesForce database through code written on Force.com?
  3. If I already have a SalesForce license then will my access to SalesForce be suspended if I convert that license to access Force.com for doing development work?
  4. Can I reuse those same licenses for the testing phase later or should I buy separate licenses for testing?
  5. Once development is complete and people create accounts for themselves on my XYZ web application, will they need a salesforce login to access the salesforce related data from their company network or can they still access it without?
  6. If my XYZ web application doesn't access SalesForce's data then will my XYZ web application's users still need a salesforce or Force.com license to login into XYZ?
    eg: if I am build a simple application where I have no need to connect to salesforce at all. Its just a simple application for a restaurant showing our latest menus, specials of the day etc. a guestbook where my existing customers can login and leave feedback or book tables… or say new customers can register on the site and create accounts for themselves where they book tables at my restaurant. In such a case would each of these users also need a salesforce account so that they can create an account on my restaurant website?

  7. If I dont use Force.com as my development platform, and I still need to access SalesForce data, how many licenses would I need to have? One per login created on my XYZ application or just one will do?

Thanks.

Best Answer

  1. You will not need to buy licenses for each individual developer. Instead they would use a combination of developer organization (essentially these are sandboxes for development and testing of code). Salesforce also has the idea of an actual salesforce sandbox which is a copy of a production/paid Salesforce org. that contains the data/source-code customizations (apex classes etc.) of it's parent and can be easily merged to the parent. Depending on the types of testing data, I would still recommend using developer orgs for each individual developer and migrating them to a single developer org before deployment. However, this goes more to the question of if you are developing an application that might need to be used by others.

  2. You will need licenses for each user that wants to fetch data from an API call to a single production org. That being said, if your application only needs to access one set of data from a production org, than only one user license could typically be used to access all the data on the org if it is given the right permissions. Developers could develop against a 'test set' of that data.

  3. No, you can create and reuse as many developer orgs as you need. They have limitations on how much data you can store, so if you have issues building your test data into development orgs you might want to consider using sandboxes, or becoming a partner, and salesforce can help you address your individual needs.

  4. You can reuse development orgs as much or as little as you need. I have created hundreds for examples from doing everything from little experiments to full on development cycles.

  5. Salesforce is kind of confusing about the way attribute 3rd party data access so to speak, so I would look to various applications like 'Customer Portal' that work via the Salesforce application infrastructure. If your planning on giving 3rd parties access to their data (some of which is hosted on Salesforce) for security consideration they should have SFDC licenses, logins, etc. But it's also possible that you could use a go-between hosted service and fetch data as needed from Salesforce. Security is def. a serious issue in that arena though, so keep that in mind, once the data has left Salesforce your responsible for what happens to it, for better or worse.

  6. See my answer to question 4. Edit With the go-between service, I'd say that users whom don't need to access data on a Salesforce org wouldn't need credentials unless you patched them through to some sort of shared dataset and than you would need at least one login.

  7. See previous answers, depending on how you want to manage and organize data on Salesforce, an individual Salesforce user account can do a lot. However, Salesforce is built around the concept of business structures following a CRM, so individual user accounts certainly have their advantages when they fit inside of that structure.

Related Topic