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?
What makes me productive, from top to bottom:
I do not turn off social messengers notifications. If I jumped on the 'productive wave', nothing can distract me.
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.
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.
According to me, the things that let me less productive:
What makes you productive?
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.
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:
and than the optional branching starts:
every monday or tuesday
every last tuesday of the month:
every 3nd thursday of the month
every 2nd thursday during the semesters
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.
It's easy to get out of a productive flow for me. For example if
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.
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
There are a few things which help me to be more productive every day.
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.
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.
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?
Making Code Reviews Your Superpower
In your experience, do you experience a difference in productivity for interruptions due to people or interruptions due to technical problems?
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:
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.
Noise
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)
interruptions
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?)