Many of the companies that use VisionProject are consulting firms that deliver solutions on a project basis to their customers. Some examples include:

Build and deliver web sites to customers

Develop and deliver a custom applications/systems to customers

Deliver a new modules to for enterprise software to customers

And so on...

In these scenarios it is common to create contracts that cover the project, including the conditions, fees and it is also common to include some kind of maintenance (or even a warranty) period after delivery. During this period it is common that you are responsible for making adjustments, fix bugs, or add features that were missed during the project delivery. This is sometimes this is managed as a separate project in itself.

It is common to have certain conditions/service levels (see SLA, Service Level Agreement) that you need to meet during this maintenance/service/warranty period. For example reply to a customer within a certain time or fix a bug within a certain time period.

To manage this you can use contracts and set the SLA field on these, this will help you to make sure that you keep your promises (meet your service levels) regarding any change requests that customers report. More on SLA's here...

If you only execute on one project at the time for a certain customer:

Create a "service contract" and define the maintenance period for when the contract is valid

Set the company on the contract (to specify that it is that company's contract)

Set the SLA for that company. You can create a new SLA with specific SLA Targets for each company or reuse standard SLA's that you use for all customer

If you only have one project that you deliver to your customer at the time, you don't have to specify the product on the contract (you can still have different SLA's)

If you execute multiple projects for customers:

Create a product that represent the system/product/artifact that you deliver for each project

You can call the product, "Web site for www.mycompany.com", "ERP system module", "Custom App XYZ" or whatever is suitable

Create a contract for the customer (see above) to cover each of the projects and their maintenance period

Set the Product on the contract, i.e. the one that you defined above (you need different products to have active service/maintenance contract SLA's running att the same time)

If you execute several projects in a row, for the same product, it is recommended that you use the release field for your products. Then you use this on your contracts (such as Product XYZ --> Release 1.1). This way you can have one contract covering the first project/part (first release) and another contract covering the second project/part (second release).