procedure button1.click() * Do the task endproc procedure button2.click() button1.click() endprocNow button1 needs to do something additional that button2 should not do, your first thought might be to add the code to "* Do the task", then you need to find where else button1.click() is called, and do something, like copying and pasting the original "*Do the task". Now you start having problems that will grow as you have more objects, some of them not even in the original form, all calling to the button1.click(), you will need to find and correct them all. On the other hand, if your code was something like:
procedure theTask() * Do the task endproc procedure button1.click() theTask() endproc procedure button2.click() theTask() endprocIf you now want to change button1 behaviour you can just do:
procedure theTask() * Do the task endproc procedure theAdditionalTask() * Do the additional task endproc procedure button1.click() theTask() theAdditionalTask() endproc procedure button2.click() theTask() endprocNow button2.click() and any other object/code that was calling "theTask" remains untouched, so you will not need to remember or find anything, you just change the behaviour of the one object that needed to change it's behaviour.