The general flow is something like the following.
- (necessary) find or perceive an issue in a software application
- (necessary) describe the issue in a way that's reproducable or recognizable, by creating an
Issue
in a project/repository - (optional) conceive of a fix for the issue
- (optional) test that the fix actually works - by updating code in a dev console or in a local instance of the app, for example
- (optional) submit the changed code fix as a Pull Request in the repo