Needless to say there are many perks for working on a big project like you get to learn lot of new technologies, get to know how to scale a system face many algorithmic challenges and become a better programmer day by day but this all comes at a cost which makes people start hating programming in projects with larger team size. A situation where you are pulling your hairs out trying to fix a bug or optimising things right?

Here are certain things which makes me hate programming sometimes, but this doesn't mean i am leaving it!

[source: xkcd]

Perfection

Writing a code that works flawlessly and without missing a single test case is what we want to achieve but we forget we are humans and humans tend to make mistakes, a perfect code is a myth. Writing a perfect code takes time and the amount of time given by your manager is obviously too less, which makes your frustration level a bit higher when a bug is encountered in first round of testing.

Dependence on others

When you are working on a large project we do have lot of people we need to coordinate with and sometimes even with different teams. While working on large project a part of functionality is given to each person. The worst case scenario is your implementation is dependent on some other piece of code that is being developed elsewhere. This brings unforeseen delays in project if the dependent functionality is delivered on time.

Poor documentation

The poor documentation doesn't harm anyone unless you are the only one who is working on a piece of code(which is rarely the case as you need to go on vacations and you too can fall sick).
The worst nightmare is debugging someone else's code, and this nightmare turns into death if the code is poorly documentented.

Finding bugs.

No system is perfect and no matter how perfectly we make a system there will always be bugs in it when looked from someone else's eyes. The most difficult part of developing software and launching it is to find and resolve all the bugs in the system, and this too it trickiest part, as you need to resolve bugs in a fashion that it doesn't breaks the current system.

PS: Last bug is hard to find than first one

Too much competition and every other person has better idea and implementations.

This is another pain in ass, when you implemented something with all your hard work and there another person with better idea, approach for solving the problem and it will hit directly on your ego. Though it is good that you learn new everyday but deep down you are devastated and will surely feel low the entire day.

If you have any other reason for the hate let us know in comments.