Why a need for routine?
As an engineer we take on many tasks. Coding is half of the puzzle, the other half contains problem solving, peer review, discussions and drinking beer.
Imagine each day you get a bag full of unknown items. These items are not grouped in anyway. Item 1 is peer reviewing some code, Item 2 is working on a feature, Item 3 is more peer review, Item 4 is some problem solving and Item 5 is more peer review.
During the day there is a set of pull requests that don't get merged into a branch because it was left for review too late in the day. Had we done this in the morning, the Pull Request can get merged and the rest of the day can be dedicated to the other tasks on hand.
I needed a way to give myself blocks of time to focus on important everyday engineering tasks specific to a sass platform that deploys on a daily bases.
I am one of those developers that took on the block approach to getting shit done. I am also one of those developers that finds it super interesting what other engineers do to solve this problem.
My Daily Routine (the blocks)
getting in 9:00am to 10:00am
Getting into work is always a random assortment of fun. It usually consists of chatting with my colleagues about events, news and sometimes work. I have breakfast at home so really it's just about making coffee, getting a big glass of water, setting up my computer and getting comfy.
reading slack and emails 10:00am to 10:15am
Slack Messages can consume so much of my time, but it is also integral to getting the latest information about what's been going on at work. I spend some time reading through all the messages of the channels I am subscribed to and take note of what needs doing.
reading and commenting on others pull requests 10:15am to 11:00am
This is another one of those tasks that gets done throughout the day but I find it really helpful to just give a chunk of time in the morning. One of my work mates started partner reviewing where he would explain the pull request and we would both go through the changes.
When you dedicate a chunk of time in the day to reviewing code it helps get features merged quickly into our development branch.
daily standup 11:00am to 11:05am
Daily standups need to be short, concise and helpful to the contributing teams. We decide on a team lead each week who then gives a quick update about releases, blockers and a short summary of the day's commitments.
This is also a perfect time for team members to share interesting issues they had with customers, code standards and any quick relevant general engineering news.
fixup, rebase and merge 11:05am to 12:00pm
This is the perfect time to jump on any of your own outstanding pull requests and get them merged into production. For me this includes reading and responding to any comments about my code, updating code from the reviews, linting issues and making sure tests are passing.
feature coding time 12:00pm to 5:30pm
This is the most important chunk of my day which is focused development time. It's sprint related features, bug fixes and writing tests. Just a shit load of good ol' fashioned programming!
winding down or up 5:30pm to 6:30pm
At this time I can find myself being extremely productive or extremely unproductive. Sometimes my brain gets to a point where it has had enough.
If I find myself being unproductive, I generally start setting up my commits, looking through my code for linting issues and updating my pull request documentation. Any work that does not require brain power.
If I find myself on a roll, then I just stick with it. At this point I forget about the time and get surprised that it's time to go home!
Our Weekly Routine
It really helps to have company wide routines that every developer can get onboard with. At TradeGecko, the engineering team has a day called Bundle Update Monday. The idea is that for all our repositories, we update our gems, libraries and anything else for that matter. It keeps everything moving forward and outlines potential upgrading issues for the future.
What does your daily routine look like? Have you got any tips that make your development day much more efficient?