Showing posts with label worklifebalance. Show all posts
Showing posts with label worklifebalance. Show all posts

12/07/2018

Being a father and a programmer in the same time

Before I became a father I had totally different priorities in my life, but at that point everything changed. I needed to find a balance in my life between my new and old responsibilities. I wanted to be a good father, a good husband and a good programmer at the same time. In fact it is not easy at all. I can imagine only one situation which could be even more difficult: being a mother and a programmer in the same time. But luckily I will never experience that. Of course it is the some for every father, also difficult for non-programmers, but in this post I would like to concentrate on the point which are specific for programmers. So this is a non-technical post for programmers.

Let’s see the facts. One hand if you want to be a good husband and father you need to be at home in time, to be able take as much time as possible with your family. And during this you shouldn’t be too tired or stressed, you need to be mentally there and remember on things which are not in your calendar, not pushed to a version control system and are not documented at all, that’s challenging.
On the other hand you need to take care about the financial needs of the family. So unfortunately skip work is not really an option.

To be able to achieve it at your work you need to be mental fit as well, you need to be available in case of stressful project situation and make sometimes over hours as well.

So to summarize, you will have two responsibilities: at the first one everything is deterministic, documented and you have long years experience with that, at the second one everything is totally random, undocumented and you have no idea how to do it. One thing is common: both of them means a lot of work and needs a lot of time to fulfill all the expectations.

What advantages do programmers have compared to other professionalities:

  • Opportunity for home office: always more and more companies are providing such an option at least 1-2 days per week. I really suggest you to choose such an employer
  • Flexible working hours: programming is normally not a job what you doing from 8 to 4. You have here a flexibility and a chance to find the most convenient time for work. Do it, find the most fitting one. I personally always try to arrive early and leave early to have more time after work.
  • Good salary: I think this point doesn’t need more explanation, but it is really important if you have a family
Of course there are several disadvantages as well, but think in a positive way and call them rather challenges:

  • Critical situations in your projects where over hours are requested: at most of the companies there are sometimes critical project period, when everything is burning and you need to work really a lot to achieve your goals. And of course it is very difficult to let the family understand such situations. Here you need to do some self control as well: do over hours only if they are really needed, but avoid them in all other cases. You can use some hybrid solutions as well: do extra work at night when the family is sleeping.
  • It is a mental challenge: programming is a mental challenge, I mean I’m quite often thinking about the solution of my current tasks even out of work: at home, during travelling etc. Based on my experiences it is really difficult to take care about a child while you are just figuring out the best algorithm for your current problem. You need to stop thinking about such topics when you are with your family, even if it is difficult. And during this time you need to load some other memory areas where you are storing info like, what should your child eat, what time do you have an appointment at the child doctor or where are the clothes of your child stored. For me it is more challenging then solving any of my daily programming tasks…
  • You need to develop yourself: for most of the programmers programming related activities are not limited to the workplace: you are doing home projects, learning new technologies at home, reading technical articles and forums, checking for new work opportunities or writing blog posts. These are things which can make your carrier and salary up, but if you have a family it is difficult to find time for such activities.
Finally I just collected my suggestions to find your work-life balance:
  • Family should be always prioritized over project and work: you can always find a new job or new project if things are going wrong, but it is almost impossible to find a new family.
  • Don’t do too many over hours: too many over hours just destroying your balance
  • You need to know how to say no: Sometimes you need to say no even for good opportunities if it is not fitting into your time. Never mind, an other one will come later.
  • It is never too early to start to teach programming to your children!
Let me share thought: always think about that what you wanna remember in 40-50 years: on the time you spent with your family or on the project which you were working on and set up your priorities based on that!

So all things considered it is not easy at all to do these two things well in the same time but is is quite challenging, good luck on that!

8/31/2018

How to manage your holidays?

Let’s take an easy, but great topic today: the topic of holidays.
I think holidays are very important for programmers, that’s the time when you are really leaving your life, except is your work is your life.
The amount of your holiday is pending on the country where you are leaving and your company, but the big question is: how to use your holidays exactly when you need it?
At most of the companies there are critical periods from holiday point of view: the periods when all the colleagues would like to have holidays (summer holiday, christmas holiday etc.) and the periods which are critical from project point of view. The first ones are quite predictable, the second category is unpredictable.
At the beginning of my carrier I made the mistake: I thought that it is enough to request for my holidays two weeks earlier. So in the mid of the summer I just decided to visit a festival, I requested my holidays and the answer was: “sorry it is a critical period right now in the project, you can’t have holiday now”. Ok, shit happened. For the next year I set up a strategy regarding holidays which is working well. This is the following:
Plan your year in the beginning of January and request for holidays. Plan holidays for the fix yearly programs and try to predict when be enough from work (it is good to plan some day in every third month based on my experience). That means you are the first one who is requesting for a holidays for the critical periods, you are the winner. And in January nobody knows when are the critical project periods, so it can’t be a reason for rejecting. Later on if someone is telling that there’s a critical period during your holiday and you should cancel your holiday, you can simply tell, that you already reserved something for that period.
If your plans are changing in the meanwhile you can still reschedule your holidays, your chances are still not worse than without planning.
This is easy and nothing special.
And just a short suggestion: never cancel any planned holiday because of work pressure!
All the best!

RelaxedProgrammer

8/16/2018

How to deal with stress?


In this article I won’t tell you any secret magic which counts down with all the stress during your work and I don’t wanna write like a “positive energy coach”, because I think it makes totally no sense without some more concrete points. But if I ask any of the good software developers about that what is the most difficult part of their work, some of the following expressions will be part of the answer for sure: pressure, stress, too much work. So I think it makes sense to talk about this topic.
The stress if there for everyone, the most common sources of stress are time pressure, technically difficulties, bugs and communication with colleagues and customers. Some of the developers can handle stress quite well, some of them have a worse stress handling skill. Usually the ones with better stress handling can reach better positions during their career, better work-life balance and all things considered they are happier.
When I was a beginner sometimes I had the feeling, that I’m the only one who is under stress and the more experienced colleagues are not under pressure. Later I realised that it was not true at all. They were stressed as well, but they could handle it. Later on during the years I learnt to handle it in a better way, but sometimes I’m still having difficult weeks. These are the most important points in my view:

  • Always know what is your motivation to work there, why you are doing it at all. For example my motivation is to bring the best life quality to my family what I can. For that I need a job with a good salary and with good work-life balance. Next to that it is making me fun the develop my technical skills. Find what is your real motivation and think about that in difficult situations. It’s giving you some energy.
  • Try to always do your best, but not more than that. So if you have a challenging task first of all try to understand before starting with that if you are able to achieve it in time and if you have the needed skills or not. If not ask for support in time. After that try to do your best during your working time. But if it is not enough to finish the task in time, don’t worry, always think that you did your best.
  • Always communicate in a clean way. If you are seeing in advance that you won’t be done in time, just tell it to your team and manager, avoid surprises. But of course always make sure them that you are doing your best. Unless doing it in this way the others will think that you are not motivated enough.
  • Don’t let yourself stuck in uncomfortable situations. If you’re feeling yourself uncomfortable, because of your tasks, colleagues etc. always let your team lead/manager know that you are feeling uncomfortable with the current situation. That is the way to give it a chance to change your situation. But you need to know, most likely it won’t change immediately, sometimes it needs some time.
  • Never communicate in an aggressive way with your colleagues and customers. If you are angry rather go down and walk a bit or drink a coffee before writing your e-mail or talking to your team mates. Always try to tell them your point in a calm way. Aggressive communication is just generating a stressful working environment.
  • Don’t think that other projects are running better. I was working at different companies on different projects, but one thing was common: the project was always behind the schedule. As I was talking with other programmers they had similar experiences. It’s so because that’s one way how managers are trying to let work done faster: if something is running on schedule let’s reschedule it and let the project have less time/workforce.
  • Never forget: if you are a good developer you will have a job even if your project or company is failing!
  • Go through on previous articles about How to manage your work time and How to estimate your tasks.
These were all of my points, but I hope you can extend them with some new ones!



All the best!

RelaxedProgrammer

7/26/2018

How to manage your working time?

Most of the programming tasks have a due date for yesterday, but best case until end of the day. At quite a lot of companies it is a common practise to ask you to not to go home until your task is not done or asking you to cancel your holidays because of the current work situation.
On the other hand however people thinks that programmers have no life, most of the cases it is not true. Programmers have family, hobbies, friends and need for simple having rest.
And there is something what is called work-life balance by HR people, first it can sound as bullshit, but it is very important in fact, it is very important for you.
So normally you are working on a task which has a due date. And this due date is usually earlier than it should be. What can you do?
  • Do some over hours/work on the weekend or during your holiday and finish it in time
  • Being late with your task
  • Show to your manager before starting your task that it is not possible to finish your task in time before you’re starting it
What will happen in case of the first solution: you are working when you shouldn’t. You will achieve the due date. Your manager will be satisfied and will find your next task immediately. So you can continue to work on the next day and you are loosing the time to spend with friends, family or having rest. On long term if you are doing it frequently your manager will know that you can achieve the critical tasks in time and will assign all urgent tasks to you. And this situation will happen to you more and more often. On the other hand your boss will be satisfied with you, but to be honest at most of the companies it is not honoured enough.
In case of the second option your task will be done late. Of course your boss and manager will be unsatisfied. There won’t be any feeling of success from your side. And you can block your colleagues in their work as well, since they may are waiting for you or for your inputs. It is a loose-loose situation.
The third solution it the one I would suggest to follow. For that you need to be able to estimate your tasks as precise as possible. It’s up to the company and working model who is estimating your tasks. It’s either you or one of the most experienced colleagues of you. If it’s you then it is pretty easy. Otherwise always check the estimation/planned due date before start to work on the task and if it is unrealistic for you let your manager know about that. Always inform your manager about the followings: what if a realistic due date in your view and how did you calculated it (show him all subtasks you identified and their estimations). If there is a possibility to skip any of the subtasks to make it faster (not testing a part, less documentation, less nice solutions etc.) let always mention it with advantage and disadvantages. Then it should be clear to your manager that your task won’t be done until Tuesday, only until Thursday. He can adapt his plan and you won’t block the others. And you can finish the task until Thursday without doing overhours.
Of course there are situations when it is not possible to change the plans such way, but most of the cases it is possible.
This is the way of working which turned be best for me to be successful in my work and having time for my family and friends as well.

If you have any other idea feel free to share it with us in a comment!

All the best for you!
RelaxedProgrammer

How I prepared my first online course

Since long I didn't publish anything here. It's because I was busy with some other topics, but now it's time to share the result...