For the last 10+ years, I have been working as a Developer and Project Manager in projects of all sizes: huge monoliths, many microservices, apps with real-time functions and background jobs, etc. I can say that my success in every one of those projects is summed up in a single word: "Focus."
What this word means to me is: "Work one day at a time, perform one task at a time, in the most efficient way possible."
The first question I ask myself at the beginning of the workday is:
If the answer is yes, this will become my first and most important task of the day (with certain exceptions). On the other hand, if the day before I successfully completed a Ticket, Pull Request, or Research just at the end of the day, then I go directly to the next question:
Once identified, while respecting the priority within the project, I proceed to make an estimate (if it hasn’t been made already). This will help me understand how many tasks I should include in what will become my to-do list for the day.
Once I have made the to-do list, I start working one task at a time where I apply a very basic rule: "Divide and conquer." This is how each task is divided into smaller and simpler subtasks, which I will sequentially develop one by one. The key to the success of a common workday for me is to concentrate during each subtask from start to finish, focus stubbornly and seek to finish it in the most efficient possible way.
Some days I spend some time on other tasks not directly related to a project, like courses, research, tech articles, etc. These should also be included in the to-do list.
We are social beings by nature. Evolution has made us like this; who am I to go against it? Breaks during a workday help us to clear our minds, free ourselves of stress, and improve our work environment.
I usually take at least two breaks a day (one in the morning and one in the afternoon), go for a coffee (I prefer mocha), stretch a bit, laugh at some memes, and chat with a colleague. (Only if he is not focused!)
When we are in the middle of a task/subtask, unforeseen situations usually arise and inevitably take us out of context. What to do when our carefully prepared to-do list is interrupted by an email, text message, call, or (terrifying) production error? Depending on the source, the required time for dealing with each one is different. For example:
Production Error: Stop everything, go to the rescue, be a hero!
Email: People do not expect you to check your email very often, much less respond immediately. So if you’re doing something important, feel free to ignore emails as they land in your inbox. Instead, have certain hours of the day scheduled to check your email or check them between tasks.
Direct Message: In this case, the person who writes you is waiting for a response in less than 5 minutes. If it’s related to work, read it carefully and understand the requirements.
Once you’ve identified the requirements (from email or DM), you should take action according to the time it will take you, in this way:
Task will take less than 5 minutes: Do it immediately, but not without first writing down where you left off in your current task, so you won’t forget where to pick back up.
Task will take between 5 and 20 minutes: Respond, letting the person know that you have received the message that you will do it as soon as you finish the task you are doing. If possible, give an estimated hour. I usually do these requirements between tasks or before/after a break.
Task will take more than 20 minutes: In this case, this requirement already becomes one more task for the day. Now you must evaluate if the priority of this task is higher than the ones you have written down for today. If so, include it in your list. You’ll probably have to remove another task — that's fine, you’ll do that one the next day. Now, if the priority of this new task is lower than what you have scheduled, tell that person that is not possible for today and that you will do it tomorrow. Usually you will receive something like "of course, no problem."
If this work methodology was useful to you, these are some of the things you would probably want to include on your daily to-do list:
Keep in mind that the tasks must always be divided into subtasks. I wish you success in your projects. Work hard and have fun!
My fellow developers here at FullStack Labs work in their own ways, but we are all highly productive and produce high-quality solutions for our clients that they love! If you like the way I work and would like to join us, please visit our Careers page. If you would like to reach us for any other reason, please contact us. We look forward to hearing from you!
We’d love to learn more about your project.
Engagements start at $50,000.