The human side of software development
Getting into the world of software development can be a really demanding task. Introducing clean code, providing tests to your solution, using the right tool for the job, keeping up with latest trends... these are all things that you were most probably told about at the time that you barely knew what programming was.
It seems that many people tend to neglect the side of development that hasn't got too much to do with machines, however in the long run should be at least as important for you as all technical skills.
As a developer (especially a newcomer), you may often feel that your contributions to the project could be easily replaced by someone else who would surely do it faster and better. You may also feel that the interview process did not test everything and it would be just a matter of time before "they" find out that you are not qualified for the job. If you've actually achieved something, then well... maybe it was just... pure luck? The problem is that you are probably the only one who has such feelings and at the same time others may be really satisfied with what you do.
It was a long time before I discovered that this kind of feeling has some psychological background and is something that many people suffer from. But by being just aware that it works like that will not magically remove all of your doubts. We should remember that maybe the situation in which a certain person is able to do a task faster is caused by the fact that one has more experience than you. Maybe the other person has already completed a similar task before? For a developer learning is a natural process of pushing things forward and nobody will expect you to know everything upfront - especially when you are just starting your career. But the feeling of uncertainty is not exclusive for newcomers. Even if you have a decent experience in your field of expertise, you may still feel that you're a part of one big fraud.
It's really hard to overcome this kind of feeling on your own and there may be a huge responsibility on people around you to help you deal with this. So if you face this kind of problem, try to find the environment that will support you and will build up your self-confidence. And if you do not suffer from this kind of problem, then bear in mind that people will usually not come to you and tell you that they feel insecure. So don't wait until one comes for help - be helpful, take part in creating culture that will be supportive for others and if you feel that someone is doing good job, then say it outloud. A word of appreciation is always welcome.
Long time ago, it was the first time that I had heard a statement that stress is a disease of 21st century. I have to admit, that at that time it wasn't really something that I could relate to. But now I can clearly see the problem.
There are many different opinions on working under stress. Some people claim that this is fine for them and that it actually makes them more productive in the long run. Others say that they do not really care about stress and it does not affect them in any way. But there is also a big number of people (involving me) who claim that working under stress causes more harm than good.
For a long period of time I really thought that I was kind of "immune" to stress, however, now I can admit that sometimes it's just really hard to notice how stress affects your life, especially if it sneaks in gradually. You may not feel it instantly, but people around you will surely notice that something is wrong. And do I need to tell you that stress can heavily affect your health?
If someone creates a stressful environment just because one wants to get more "productivity" out of you then let me tell you something - this is an abuse. There is no good reason for someone to make you uncomfortable while working. And if someone hopes for faster and better quality of work, then again... Pressure is surely not the way and will most often have a reversed effect. If we think about creating a healthy, long term relationship with people that you want to enjoy working with, then we should remember that there are also other motivators than stress.
If someone claims that working under stress is fine, then let me ask you a question - would you like to create a stressful environment for people that you care about? Do you think that they would benefit from that? Maybe they would be more creative if pressed hard enough? If the answer is no, then why do you ignore this impact on yourself?
When I was starting my career as a software developer I was really surprised when I saw people walking out of office at 3 o'clock and being unavailable until the next day. How could they possibly ignore and not respond to all these important emails that arrived while they were out? What if there was an expectation of a task being finished by yesterday? Shouldn't they sacrifice part of their free time to close the task ASAP?
Well... Being always available is not a reason to be proud of. Doing over hours is also not a heroic act. Take a moment and think - how often have you had a situation in which after coming back to an issue in the morning, you instantly solved the problem that you were struggling with the day before? This clearly shows us the importance of having a fresh mind, being well rested and feeling good in general. The fact that you cannot directly measure how much these things improve the quality of your work doesn't mean that you should ignore it.
Instead of working until your full capacity is reached, I would rather recommend clearly limiting the time that you spend working every day. If you know that you have to finish everything by a certain time, then you will value your working hours much more and you will use them more wisely. The same refers to your side projects - sometimes it's much better to say "I have 2 hours to work on this task today" than sacrifice your whole evening to it. There is a "law" saying that work will always fill the time that you have available for it.
So protect your free time and spend it with your family, friends or simply relax on your own. Remember that more is not always better.
I know that points that I've mentioned here may barely touch the surface of the iceberg, but I hope that they will make you more aware of the fact that software development is not only about programming - it's also about people. In the end it's us who build the software development community. As developers we are responsible for raising a culture around us that will allow others to grow and make them feel valuable.
This article is cross-posted with my personal blog.