I'm a one man developer PHP/MySQL developer. The contents of our database come an excel file produced by a group on non programmers. They are smart people, but often don't see how small changes in excel file can totally make the logic in my PHP codes meaningless. Does anyone have tips for communicating with non-programmers in these types of scenarios?
Provide them with a template which you require them to use. If they get in the habit of asking before making any change, then maybe they'll either stop making changes, or figure out what kinds of things are okay and which are not.
Just a tip: When I have to describe general/logistical topics, I try to relate the programming phenomenon with an analogy/metaphor using things familiar to them.
Try to relate things that they encounter in their occupation to programming operations.
When I explain things like this to non-programmers, I usually tell them that a computer can't figure out anything that I don't tell it SPECIFICALLY. Ask them how you would write a program to go get gas for the car. When they answer, explain the details they've surely missed (like how to get the keys out of their pocket, and how to take steps, etc.).
Use metaphors and real-world analogies in terms of things they can understand.
I was explaining to my aunt how the hard disk filling up can make a computer slow:
"Just imagine that you're in a small room and it gets completely filled up. Now to put anything new in, you have to move one pile out of the way, then another, just to get to the shelf by the wall. It gets slower and slower to put anything else in".
or, since they use Excel spreadsheets, you could say
"Imagine you have spreadsheet macros to calculate the costs for all kinds of things that we buy, and to automatically calculate the tax as well. Suppose the government changes the tax on everything by 1% .. it's just a small change, but now you have to change every one of your spreadsheets".
Have you considered using password protection and macros to dissallow the changes that cause the problems?
It is impossible to write a perfect code.
Hovewer, for a PHP application a small changes in the specification make the code meaningless more often than not.
There are better things out there. You might wanna try Django.