We've been using CiviCRM for over 5 years. Out of the box its ugly and practically unusable, so it must be customized (cost for a developer who knows how to code). Because we needed it to integrate with a few proprietary systems of ours, we are fortunate to have some developer help. I would not recommend Civi for any organization wanting instant usability, or small or poor non-profits.