Modification of packaged software to meet individual requirements. Before an enterprise can automate its operations using packaged software, it must first make sure that the software caters for all the processes it needs to automate. This step is called implementation. If the software already includes all the necessary capabilities, it is simply a matter of selecting the correct configuration (often a complex operation in itself). Adding extra capabilities that are not included in the off-the-shelf package involves writing additional software code. This is known as customization.