Whenever I start working on an existing wordpress project, I expect that plugins are in their original form, or as the developer/company, that developed it, intended it in the first place. If you need a slight change to a specific plugin, you either override it in your own (child) theme or ask developers of the plugin, to add that feature.
But often that's not possible, so you just change the plugin yourself, right?
Wrong! Or so they say.
But why is that true?
1. When that plugin gets an update, because the original developer found a huge security issue with it, it will possibly override your change and either the plugin, change or both won't work anymore.
2. When you use a published plugin in a project, developers working on it, expect it to behave like the version that you are using, is supposed to behave. They won't expect that minor change that you have and could loose hours or days trying to figure out why it's not responding the way it should.
3. Isn't that enough? Well if you know more reasons, leave a comment below :)
And if you do have to change a plugin, and its licence allows you to, just modify the plugin name and version and call it your own custom plugin. That way anybody that's working on this same project and plugin after you, understands that this is a custom plugin. Of course it would be nice, if you would also write comments to the code and documentation explaining the customization, that you did.