Jeff, the statement "Before forking, try working with the developer to have your features or fixes integrated into the product" is incorrect. Forking a repository on GitHub is the FIRST STEP towards having your feature or fix integrated into a product. A developer forks a repository, makes changes, and submits a "pull request" to the original owner to have those changes incorporated into the original repository.