Many times clients are confused if their vision for translating their business processes to Salesforce.com includes the need for custom APEX coding. Apex is the “strongly typed, object-oriented programming language that allows developers to execute flow and transaction control statements on the Force.com platform”.
APEX coding is used when there is a functionality that is not included in the “out of the box” licencing. A simple example would be populating fields in unrelated objects to avoid having to manually make duplicate entries across the platform. This is a fix solved by an APEX trigger.
There are, however, limitations. Such coding is only available on the Enterprise and Unlimited licensing levels. If you are on Professional, one work around is hiring a development a partner to create a custom managed application. One possible drawback to this approach is that it essentially ties you to the developer. So, if and when you need to make a change in the application, you will need to employ the developer further. With this in mind, a move to Enterprise licensing should be evaluated.
Often many of the solutions can be found in a third party application that has been developed on the AppExchange. Additionally, there could be a solution you are unaware of in the native functionality addressing the process, and would just require some creative thinking by your consultant. Never hurts to ask.
To really geek out, here is more information in a video: