The best thing about the force.com platform is that it's flexible. It comes with a set of standard objects such as Accounts, Contacts, Cases, Contracts, Orders, and many others. It is very easy to add new objects that can be tailored for your business use case. Originally designed mainly as a Sales tool, Salesforce now has a Service Cloud, Marketing Cloud, Analytics, and other modules that can be added on easily to provide a full enterprise infrastructure. Adding automation to user tasks via workflow rules and process builder can be done without coding. Adding triggers via Apex Code is also fairly easy for developers, since Apex is an easy language to learn.
Out of the box, Salesforce is not a very efficient tool. To prevent users from having to manually enter every piece of data to sync up objects, customization of some sort is really required. Some types of data syncing or data entry can be done with declarative tools such as workflow rules or process builder. Other things that require more complicated logic do require trigger code written by someone who understands development. The platform comes with built-in limitations on file storage, data storage, number of fields you can have on an object, number of lines of custom code you can add to the platform, and quite a few others. Platform limits of certain types can be increased, but you will definitely pay for the privilege. If you want more automated or customized functionality and don't have a developer on staff, you will have to relay on plug-in products from the Salesforce App Exchange to provide the functionality you are looking for. While some of these products are free, many of them aren't and have licensing fees per user. The cost of paying for Salesforce licenses along with licenses for one or more plug-in apps can get quite spendy.