What makes you productive?
I am currently writing a blog post about developer productivity. Even though there is a lot of research, productivity is a highly subjective topic. So my question to you what makes you feel most productive?
3.4K+ developers have started their personal blogs on Hashnode in the last one month.
Write in Markdown · Publish articles on custom domain · Gain readership on day zero · Automatic GitHub backup and more
There are a few things which help me to be more productive every day.
- The Perfect day plan
- The quite place Or Headset with music ( Favorite one ) - No lyrics because it diverts my mind
- Keep the phone away ( If you cannot do your Day work within 8 hours, you cannot do it in 16 hours as well - Personal Quote : p)
- Focus on something else or get some air outside when something does not work for a long time
- Automate repetitive tasks
I am a freelancer, who sadly got tied to multiple roles which have all different 'lifecycles'. A response to my team should be rather fast so I am not blocking the work of others for example on the other hand it means to be available while implementing an API in the backend according to specifications is something where I usually sit for up to 6 hours and just code.
I am still trying to figure out to be productive, I did certain excel approaches with hard structured schedules which work great if you're not in a 'leading' position since then you don't have to react to others to much.
So nowadays I try to build structured days:
- 08:00 - 09:30 breakfast, reading the news
- 09:30 - 10:30 available to customers / daily administrative tasks
- 10:30 - 11:30 codereview / comments / documentation / server tasks
- 11:30 - 13:30 bugfixes
- 13:30 - 15:30 break / reading / research / ops tasks / organizing meetups / preparing talks / ....
- 15:30 - 18:30 programming
and than the optional branching starts:
- 18:30 - 21:00 dinner / time with my girlfriend
- 21:00 - 22:30 programming
- 23:30 - 24:00 reading a book as bare minimum for the day
every monday or tuesday
- 18:30 ~ 23:00 rust hacking group
every last tuesday of the month:
- 18:30 ~ 22:00 rust meetup
every 3nd thursday of the month
- 18:30 ~ 22:00 php meetup
every 2nd thursday during the semesters
- 19:30 ~ 21:30 natural sciences up to date (biology, geology, physics, chemistry ... 2 professors from the university are talking about scientific - articles picked by the participants 2 Weeks before)
In between I do like 20 minute guitar playing a day
I already eliminated Facebook and don't have any messenger next I want to limit my daily access time of twitter / netflix / emails to a total of 2,5h so I get more things done. To get the longterm productiveness going.
So I think I am currently still on my way to structure my days in accordance to keep my output in a median as well as not being a total workaholic who work's all week all days.
That's how I am 'productive' at least in theory, life always tends to throw in random events.
Also I want to apply certain habit tricks like setting ridiculously low standards to establish a habit. for example 1 pushups a day for 2 week and than increase it. Same goes for code ... instead of waiting for the great time and the perfect moment.
15 minutes on my side project and leave it. Is it super productive? no but it's still better than waiting 8 months to invest 6h in it. because in total I will get 60h of work into it.
I try a lot of those tricks, also the 'and then' method. Instead of creating something new, I add an and-then to one of my existing habits / tasks. And addressing myself in my head as 'you' not as 'i' because it's proven to work well.
So to answer the question what makes me feel most productive, usually it's finishing something having small goals and treating yourself with something nice afterwards gives you this illusion.
I usually never feel productive until I got the comparison to others. I usually feel stupid, slow and incompetent. Talking to others help to seeing that actually it's not that bad. But the problem with IT is you're usually never done.
But I don't want to get into the meta discussion of what does being productive VS feeling productive could be :) since you asked for feeling.
Christophe El Khoury for that I would have to write more, link the papers and the books. But maybe, for a person like me self-organization does not come naturally so maybe others like stumble across similar issues.
But I still multiple programming blog entries in my mental pipeline ... lets see :D it's nice to hear though that you think it's blog worthy, I appreciate it.
For me, not getting interrupted is important, but I also need to get in a kind of "productive-zone". Getting there depends on many factors, however mostly my emotional state, the time of the day and the adrenaline in my blood.
- When I feel good, and I am happy (maybe looking forward to working on a feature), I get into the zone.
- I am a night-person. I am more productive in the evening, which is why I postpone hands-on work until the afternoon and do meetings and small tasks in the morning.
- Alternatively, if I drink a few cans of cheap, strong energy drink, I will be the most focused person on campus. That's not necessarily healthy, so I don't recommend adding it to a blog 😉
What makes you productive?
- Music with comfortable headphones
- A fast computer that can withstand multiple tasks
- Good desk peripherals
- I am the most productive after exercising and eating lunch
- A day with either no emotion 😐 or a happy day 😄 usually means I will be productive
- A list of tasks and a schedule for the day
Just a single thing - project goals.
Nothing gets me more productive than knowing there is a specific goal that I can put my focus into.
Getting these goals involves clearing up requirements, validating assumptions, removing unknowns, and just basically paving a clear way to your goal.
It doesn't matter whether it's noisy or I'm sleepy or tired - as long as there's a clear goal, I'm productive.
It's easy to get out of a productive flow for me. For example if
- Someone comes to ask me something.
- I have to go ask someone something.
- I need to wait more than 20s for compile/checkout/etc (it sounds whiny but 20s is actually an overestimate).
- There's some robot-like boring work.
When I was CEO of my own rapidly growing Software Development company the thing that helped me become most productive was the ability to clear my mind of the multitude of seemingly urgent tasks and be able to focus on the one task that was required to do next, even when priorities shifted.
Also being able to clear my mind and be assured that everything I needed to do in the foreseeable future had been captured and was not reliant on my memory was another important piece of the productivity puzzle.
This came about by understanding and adopting the GTD (Getting Things Done) Methodology en.wikipedia.org/wiki/Getting_Things_Done and implementing this in increasingly better software tools over the years.
I was then able to go home at night and not stress about all the things that I hadn't got done or I thought needed doing because I knew that the routines and habits built around the GTD methodology would enable me to deal with everything I needed to in the deadlines that they needed to be done.
This was literally a game changer for me and hugely improved my productivity.
Being an entrepreneur, it becomes difficult to plan more than 50% of my day but yes - to be more productive, it's best to plan your activities so that you have a sense of accomplishment.
Also, since there's no one to push me around, I have to stick to something to keep myself from being a lazy bum! :D
Makerlog helps me quite well. There the todos are published publicly and everybody motivates himself with the todos of the others.
At least it helped me not to forget the daily recurring todos. Unfortunately you can't publish all todos there, because there are some that can't be written anonymously.
But basically it is Makerlog and my filled notebook on my desk.
You have to believe in things that are not true. How else would they become?
Usually it’s when i work on an interesting feature or help a fellow coder.
When i work on something new it makes me super-productive, which means i outline the feature within a short time. Detailing can become boring, though, so the old saying that “90% of the work is done in 10% of the time” is extra-true for me.
Helping a fellow coder, be it a colleague or just a wild developer out there, also helps a lot. I’m very good at being a rubber duck, but can also provide useful insight on how to solve problems. I’m an empathic person so it’s easy for me to understand what the other person struggles with, make it my own problem, and solve it as quick as possible.
What is less necessary for me is interrupt-free work. I’m good at context switching, so if someone comes to me with a 10 minute work i can easily do it without dropping out of zone. If the job they want from me is a longer one, i tend to say no, or ask them to come back later.
Technical problems are usually just minor problems to solve, so i don’t suffer long under them. If something really big comes up that’s a bigger problem, and one must solve it to remove an obstacle, especially if that might happen to other users later.
People interrupting me don’t really pose a problem. Being a good context switcher allows me to work on really short tasks without getting out of the Flow. For bigger tasks i tend to say no until i finish the work at hand.
I’d like to answer this one with a larger part of what doesn’t make me productive. I mean, I need a few things to be productive, and I usually have to add a lot of other things to fight against the things that put that productivity at risk!
What do I need to be productive:
- an interesting problem to solve (ideally with some vision to understand why this problem is useful for the company, I really need to have a holistic understanding of what I’m doing)
- some idea of the resources (time, budget, team, ...) to solve this challenge (so that I can make informed decisions about the inevitable trade-offs we’ll have to make)
- good tools (although I’m a full-time employee, I pay many licenses on my own money to get the tools I really want, and I also invest a lot of time in mastering my usual tools.
If I don’t have those ingredients, then I won’t be really productive. Then when I manage to get those pre-requisites.... other things will come in my way and will reduce my productivity. Let’s have a look at those and the counter-measures I take.
I am very easily distracted by the human voice, and chitchat or meetings in the open space are something I really hate and fight on an everyday basis. I regularly remind people about the Library Rules (if you haven’t read Basecamp policies around open-office spaces, I believe this is a must-read for any open-office engineering team: Signal versus Noise blog: Library Rules: How to make an open office plan work ). This also means I invested in good noise-cancelling headphones, and usually listen to instrumental music (OST, jazz, neo-classical) to cover the ambient noise... some music with a not-too-slow and not-too-fast tempo and which is always instrumental! (I keep the fast-paced musical for urgent debugging, production issues, .... it’s draining but for short periods of time it helps me being fully aware)
This one is interesting because I have to manage conflictual goals. As a lead developer, I have to design and code stuff, which requires me to be able to focus. And at the same time, I must be available to help and answer the team’s questions. I try to set a rule: whenever there’s a question, unless it’s super urgent and high-priority, please let me know about it in Slack (e.g. «Hey, I have a question for you when you have 5min» (or ten, or 30.... depending on the problem) Most of the time I’ll be able to set expectations and finish the task at hand before to switch, but at least to a proper context switching (e.g. 5 minutes later I am either ready to switch or ask if it’s ok to wait for 30 min. This flow is not ideal, but it’s much more efficient than just random interruptions at any time of the day. If people have suggestions, I’d love to read about how people deal with this.
Noise and interruptions are different forms of distractions, and my phone is set up so that only phone calls (and I only get very few) are displayed on the lock screen. My lock screen shows almost 0 notifications (no email, facebook, linkedin, whatsapp, what have you). Our on-call solution (OpsGenie) and phone calls are the only things displayed on the lock screen. And it’s always in silent mode (obviously... although some people in the open-space still have sound turned on on their phone.... don’t get me started on this ;-)
All the points above are about the situation.
Then there are some pre-requisites. I don’t need a lot of sleep, but I take care to always have enough sleep. (that wasn’t true a few years ago ;-) Sleep deprivation is a major source of judgment impairment. And because judgment impairment is a bad situation to be when you develop software, or even worse when you’re working on a production issue. And if your judgment is impaired, you are unable to realize it, so you’re screwed! All that to say that having enough sleep is important! (And sleep is only one of the many sources of judgment impairment.... some might want to explore the Ballmer Peak ! ;-) )
There are probably many other details I don’t remember right now, but all based on contextual conditions. I believe that what I described above covers 95% of the situations which make me productive or not, and I wish I’d be able to achieve this every day, that would already be a great start! (Did I say I hate open-space offices?)
Michaela Greiler about the things I pay with my own funds to be more productive at work :
- GitKraken Pro (I do many git stuff at the command line, but when I need to browse history, an UI makes this just easier/faster. And the Pro edition let me switch between account and make it easy to integrate with other tools, like the awesome 3-fold-diff-merge tool which is P4merge from Perforce (I have been using it for years, and still don’t understand people who resolve merge conflicts without a 3-panel merge tool!)
- PyCharm pro. There are a few features from the pro which are really net (profiling, ...), but the trigger comes from their data explorer. (I mean, if I had a Datagrip license, I might wait to renew the PyCharm pro one).
Other stuff I bought to be more productive at work (and sometimes wish I could expense ;-) ):
- Good (mechanical) keyboard
- good trackball
- noise cancelling headphones (since companies choose open-space offices for economic reason, I believe they should buy us such headphones... Sone and Bose ones are great but really expensive... yet everybody in the team buys one....)
My productivity levels depends on the time of the day and my sleep. It also depends on the task. Some tasks motivate me to work towards it. Like I like UI development. I am drawn towards completing task quickly because it is one of the favorites. But for logical problems I need time to think about and execute it. So those task take time and I am not productive while doing those tasks.
In conclusion I am best productive on tasks that are best to my liking.
According to me, the things that let me less productive:
- Not be interrupted by someone who asked me a broad question about a code that I don't have any indea about it.
- Unlimited email notifications (PR merged, PR created, etc...)
- Long meetings to discuss a bug or problem.
- Developers who speaks loudly about something in the same room.
I feel you. The same things would totally throw my productivity off as well. Why do you experience the meeting for discussing bug or problem as unproductive? Do they go on after there is a solution? Are there too many people involved in the discussion?
Thanks for taking the time.
Personally, I feel most productive if I can work on my planned activities without being interrupted. Interruptions that are due to technical problems such as authentication, buggy tools or similar impact my productivity the most (as they also impact my mood in a negative way).
I am also most productive working from home in my desired environment. So, what about you?
10 years of Software Development, Husband, Father and Functional Programming enthusiast.
For me, I have to have a reason to come into work every day. Sometimes I use a little bit of my time learning something new, other times I refactor some poor quality work.
What makes me productive, from top to bottom:
- Minimum 8 hours of sleep.
- 3-5 hours of work without interruptions.
- Small breaks for 5-10mins each hour. Drink water, stretch.
- Tribal music 😏 😏 😏
I do not turn off social messengers notifications. If I jumped on the 'productive wave', nothing can distract me.