Salesforce is a terrific tool, and it continues to grow in capabilities as well as popularity. However, companies don't use Salesforce in a vacuum; they need to integrate it with their other systems to maximize value. Here are some pitfalls to beware of in Salesforce integration projects.
Working with Salesforce relationships is a little different from traditional relational database structures, but Salesforce has great tools for building custom data relationships and most people can adapt quickly to the SOQL model. As with any other system, though, there are a few "gotchas" to watch for when designing Salesforce relationships. I ran into one of these gotchas just recently. I needed a lookup relationship from our custom object to the standard Product table, Product2. No problem, right? Create the lookup field in the custom table, and there it is. Not so fast!
I'm not sure if there's any consensus on the definition of an emergent workflow. It's a term that I use to describe a pattern I have witnessed in business software. To me, an emergent workflow is a workflow that was not designed explicitly into a piece of software, but slowly evolved via users' usage of the system, and the development of conventions to support workflows as they develop. If you have ever developed a piece of business software that manages any form of workflow, and that software has been in production for more than a year, you can be certain that there is an emergent workflow within that software – whether you realize it or not.