I wrote a Mathematica notebook and a package using Mathematica 11.
Everything works fine there, so I tested it also with Mathematica 10.4 in my computer.
As I did with Mathematica 11, I click Evaluate Initialization Cells (to make everything in the notebook ready for the user) and everything works.
So, I sent my files to my teacher, who uses Mathematica 10.4, and he said me that, after clicking Evaluate Initialization Cells, everything stops working because (he guessed) the package cannot be found.
I load it at the beginning, putting this code in a initialization cell:
Why is the problem happening to him?
I can send you a google drive link to my project, so you will be able to test it on your computers.
Make it into a Mathematica Application, which in this case would include your package, an init.m file and any notebook you wanted to send to your reader. Put it all in your UserBaseDirectory/Applications folder. (It should have a dollar sign but I don't know how to properly enter it.) Zip it up and send it to any readers. They should unzip it in their UserBaseDirectory/Applications folder . Then any notebooks they have anywhere will be able to find the package because that is the STANDARD place WRI has made for such applications and Mathematica automatically looks there and finds all the resources provided, such as packages, palettes, stylesheets and documentation. But you don't have to have all of that to use an application.
For some reason it seems like few people want to put their package/applications there or they just don't know about it.
A fuller description of Mathematica applications is given at A Mathematica Style at my web site.