We should not think that programming is complicated. It is often the easiest part of an IT project, because one simply needs to communicate with a computer. The communication between human beings is far more complicated. Computers are the most predictable things in the universe. Humans are unpredictable by nature. They can lie, change mood or theirs opinions multiple times, decline an offer because they had a bad day or due to the weather, or the horoscope, you name it.