Programmers life is hard. I do not mean that other jobs are easy. However, living as a developer requires constant focus and strong effort. Us developers must work with many people such as marketers, designers, managers, content writers, investors, clients, and many other. But our non-conventional life style is often misunderstood.

What developers wish Their buddies Understood About Their Jobs.
- Other may not "understand" what we do, but we love it!
- We sometimes gamble to fix a few problems, which either work or do not.
- There is no perfect solution; they are either good or bad
- It's worth all the hard work to finally achieve victory!
- We've dedicated our lives to solving problems the smart way, supporting our users and colleagues- just let us know how we can help!
In this post, I will be describing many temperaments we techie experience at different points in our work. If you're a developer, you're most likely way too familiar with these scenarios
1.Realizing that Software Development is not Easy- But the results are worth it to our Users!

Here at Hamro, we developers have a catch phrase:
"Software development must be easy "
When something looks easy, it's probably the other way around and hard to execute. We do not realize that every line of code is a potential point of failure; new projects are custom built, and every code of line is unproven and therefore should be tested. Moreover, to add another knife to our throat, clients and end-users do not really know how software development works and they will not know what they want until they see it.
Additionally, lack of user input has made things worse for us. The research company Standish Group surveyed for over 10 years on IT projects and ranked lack of user input as the number # 1 cause of failure.
2. Creating a Custom Piece of Software - Despite Your Better Judgment .

Creating a custom piece of software is generally not a great idea. Any changes to the main libraries are almost certain to break it.
However, the temptation is always there. Even if you decide not to include custom elements in your software, you'll eventually break this rule.
It is just because of the fact that cool stuffs are not built in the main library. Is it our fault that the product does not have pop-ups that shoot angry birds? If your sales team sold this feature, you must put it there.
3. Refactoring Your Code.

From time and again you realize something suddenly.
You discover something new in tech (which is always changing) or a better way to do something. You feel anxious and excited. Your gut feelings will tell you that this is the path to make your code optimized, cleaner and faster. You feel energized and start sweating on it.
However, this step often doesn’t end well.
Your awesome idea wasn’t necessarily a bad one. But, just like the thoughts, assuming it as a minor adjustment goes out of the window. After days or even weeks of refactoring, you realize two things:
- This is too big of a dumpling to eat all in one go.
OR
- This idea just isn’t working out with the current codebase.
4. Getting over the Bump and Feeling That Magic Moment

You sometimes spend hours and probably days to solve a problem which is abstaining the overall progress. They drag you down, sucks your brain on and on and on..until you find that needle in a haystack.
Whatever it is, it’s something that you just can’t finger on. You surf the web, read the relevant documents, post in forums and read a bunch of other stuffs from Stack Overflow .
At the end of the day, you might have no progress whatsoever in cracking that problem. You may have spent your entire week cracking a code and trying many things-all to no avail. In the end, your commit count is somewhere around 0. You will have no more lines of code than you did when you got to the work in the morning.
However, after finding that Exuberant moment, you feel incredibly relieved. You will be shocked to know about a simple and candid fix.
After days of work and pulling your hair, one little line of code rescues everything.