Let us, for example, take a scenario of changing existing functionality in software, by changing some part of the code, to enhance its performance and applicability. The enhanced or re-designed code is supposed to give better performance thereby giving higher level of user/customer satisfaction in terms of business and application usage.
The process if not defined will change the code, without any traceability, documentation and revision control. On the other hand if the process is well defined, a team will definitely first of all introspect in the business and code in place to work out WHY this change is required.
The change in code should not happen just for the sake of demand of a user, or customer management. It has to be well researched by the coder team in terms of its impact and workload.
The process for such a scenario would be:
1. Segregate the code that needs changes
2. Define the changes required
3. Segregate the other parts of the software where above changes will impact
4. Sort out the changes required in those areas defined in step 3
5. Change the identified code areas
6. Test the changed code in isolation
7. Re-examine the already existing test cases if they need to be extended, changed or altered
8. Perform re-definition of test cases, write new test cases
8. Perform integration testing
9. And so on…