I thought it would be worth some time to get a couple of quick things said about computers and how they work. Computers are stupid. They are actually entirely useless unless humans tell them exactly what to do. Forgetting this can lead to a lot of misunderstandings about what computers and smartphones are capable of. Many people see them as smarter than humans, that they are at the mercy of the machine, and in some ways, that they are infallible. They very much are not.
I like to think of computing devices as dogs that have been trained to open doors. Sure they can do it eventually with enough training, and can even be good at it like us humans. But somebody painstakingly trained them to do it. And go ahead and try asking a dog to remove a door and re-hang it, you'll get one of those curious cocked head looks like you just showed it a card trick. They just can't understand the complexities of it, of course they also lack opposable thumbs, which really has an impact on the outcome too :)
That said, humans that tell computers what to do, known as programmers or coders, can make mistakes. And computers are SOOO stupid, the mistake could be as simple as forgetting one single } when a human types hundreds of lines of code, and it will grind everything the coder was trying to do to a halt. This is because the computer think in 1's and 0's, everything is binary, and that equates to "right" or "wrong". One little typo = "wrong" and a computer can't make it's own decisions about what was actually meant when trying to "read the instructions".
Despite what people tell you about Artificial Intelligence, it has a long way to go to overcome this kind of black/white interpretation of the world. Humans are great at that, sometimes it only takes one mistake before we learn something permanently. But computers aren't quite there yet, they don't spontaneously correct themselves, unless of course they're taught how to correct themselves. Which is not only the most difficult part of perfecting A.I., but also the most frustrating part of debugging and correcting software problems, first us humans have to nail down that one thing that went wrong, which can take an incredibly long time in some cases. That's a good thing to keep in mind next time you bring in a computer for a software problem and you wonder why it's taking so long to fix, we're dealing with a stupid computer. You wouldn't expect to train your dog how to open a door in a one-hour session would you?
In many cases, starting with fresh, clean code is the most efficient and economical choice, for everyone involved, this equates to just uninstalling and re-installing the software usually. It's not an elegant or challenging solution, but it's usually effective with minimal headaches and time invested for everyone. And do you really want to invest a week of your time and hundreds of dollars trying to figure out why your iCloud photos won't sync to your laptop? Sometimes starting fresh is a good option, especially when it comes to computers. It may just keep you from turning into this guy, too:
Keep in mind that computers also don't have feelings, so the next time your computer "acts up", take a deep breath, call it stupid (eh, it might make you feel better), and if it's something you can't figure out how to get working, call some people like us who deal with re-training these stupid things all day ;)