DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Please enter at least three characters to search
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

Last call! Secure your stack and shape the future! Help dev teams across the globe navigate their software supply chain security challenges.

Modernize your data layer. Learn how to design cloud-native database architectures to meet the evolving demands of AI and GenAI workloads.

Releasing software shouldn't be stressful or risky. Learn how to leverage progressive delivery techniques to ensure safer deployments.

Avoid machine learning mistakes and boost model performance! Discover key ML patterns, anti-patterns, data strategies, and more.

Related

  • Overview of C# Async Programming
  • Alexa Skill With Python
  • The Impact of AI Agents on Modern Workflows
  • A Developer’s Guide to Multithreading and Swift Concurrency

Trending

  • A Modern Stack for Building Scalable Systems
  • How to Configure and Customize the Go SDK for Azure Cosmos DB
  • Building Enterprise-Ready Landing Zones: Beyond the Initial Setup
  • From Zero to Production: Best Practices for Scaling LLMs in the Enterprise

An Engineer's Guide to TODOs: How to Get Things Done

Engineers are constantly searching for ways to get more productive and meet their deadlines. Here are the best ways and tools that'll help you get things done.

By 
Cate Lawrence user avatar
Cate Lawrence
DZone Core CORE ·
Mar. 10, 22 · Opinion
Likes (7)
Comment
Save
Tweet
Share
5.8K Views

Join the DZone community and get the full member experience.

Join For Free

We've long been promised a world where automation and other tech would free up our time to focus on more creative, rewarding pursuits.

However, we still find ourselves battling with small, but time-sucking tasks. We all want to surrender ourselves to the deep focus we need to complete more important work, but there are two big old-time sucks:

  1. Finding and committing to all the small tasks that need to be done
  2. A lack of focus
  3. Lack of visibility into the codebase problems

Let's go against the grain and start with point 2.

A Lack of Focus

  • How many times have you looked up from this article? 
  • Checked your email?
  • Checked your phone?
  • Or received a Slack alert?  

The case seems to be clear, our ability to focus has been stolen.

Cat focus image

So, let's find ways to get through the TODOs that have been nagging, niggling, and keeping us awake at night.

How Do We Record and Track the Rest of Our Tasks?

Ok, you're probably familiar with a combination of creating TODOs or tickets, but these might not be working for you or your team in their current state. Let's take a look:

The TODO Option

Many devs create TODOs to note down unfinished work or things that need fixing in the codebase, but do they actually improve codebase communication? Sure, they offer an alternative to a typical product or tasks management tool, but, as the makers of Taco say:

"Most of us don't need another way to create tasks. We need a way to get them done." 

If we think of the typical TODO as a small piece of text, how do other people know what the original note is meant to indicate? That's if the person who wrote it can even remember in the first place. As Alex notes, tools like GitLens or git-blame (great name hehe) show the owner of a snippet of code or the person who has last modified it. This means they make it easy to leave that person to assume responsibility, usually without the ability to check if the problem is actually dealt with. 

You could have a lot of tasks that you thought were someone else's problem.

Further, it's hard to check TODOs as the codebase changes over time. Code refactoring is painful enough but made much harder with unclear, or obsolete TODOs.

What Else Do Developers Use to Organize Their Tasks?

Developers have loads of different work styles and suggestions for how they organize their tasks and workflow. Some examples, some of which are better than others:

  • Sticky notes (They’re gonna get stuck on the cat or end up on the floor under someone’s shoe.)
  • Whiteboard  (Have you ever tried to transcribe whiteboard scrawl? It's not fun!)
  • Notebooks
  • Google Keep 
  • Trello
  • Evernote
  • Word documents

I think the golden key is consistency and efficacy. As one commenter notes, “One more app is one more thing I have to find, learn, remember to check, and eventually delete because I don't like how it works.”

Those of you working freelance for multiple clients will know this pain as well as I do.

What Can You Delete or Reassign?

Feel like you're drowning? Ok, it's time to reassess your tasks and look at your backlog. First things first, is there anything you've committed to that no longer needs work, like editing a codebase that's already been updated? Cross that stuff off your list.

If you haven’t updated your backlog in a while, backlog grooming is here to help.

Tickets Are the Death of Focus

Welder focus image

What is the biggest problem with tickets? They mean you have to step out of the IDE, and that's a bad idea. Remember what we said about the fight to focus our attention? Every time we context Twitch by leaving the codebase to concentrate on something else, we lose focus. 

I know we're now all cool, working asynchronously in our slippers at home. But anyone with a workplace that relies on Slack knows the PAIN of context switching every time you get some urgent alert. Even worse, think how many times it happens a day, and imagine that time added up over a year. It can not only kill your focus and concentration but lower your IQ and burn through cash in terms of lost productivity.

Simply put, the more tasks we pile on, even those small, easy tasks that we can be doing while listening to podcasts and chatting to colleagues, the more focus we've taken away from the big stuff. 

Place in the context of tasks like grooming your backlog, code maintenance, refactoring, and dealing with technical debt, and you can end up with a world of small things that never get done, but eventually converge and result in a world of pain.

Getting Things Done

How do we get all these small but important tasks done?

Honestly, one of the best approaches is intentionally blocking out chunks of time. The size of the pieces is up to you, really. Just keep it consistent, like making that cup of coffee when you start work every day. While you're there, block out at least one chunk of time every day for deep focus where you block out your co-workers, Slack alerts, and dig deep into what's left of your concentration. It will feel weird like you're doing something wrong by being slightly untethered from the mothership, but it'll make a difference. 

The worst thing is when I hear co-workers say they have to start work early or late or work on the weekends in order to concentrate and get stuff done. This is bad and shows that something is going wrong in your work style and your workplace. You have the right to focus enough at work for both the big and small tasks.

Bringing Visibility into Your Codebase Problems

Developers spend lots of time reading and understanding code. If you feel like most of your time is spent on trying to fix old codebase issues and your productivity is suffering, you know the name of the problem: technical debt. TODOs and tickets are not working for these types of problems because they are not linked to code, they are hard to create, and lack context.  

The easiest way to fix this is through extensions. Stepsize is here to help with our free extensions for VSCode and JetBrains. These enable you to:

  • Create issues directly from your editor
  • Create TODOs and code comments
  • Add issues to your sprints with Jira, Asana, Linear, and other PM tools integrations

Creating issues that are linked to your code will help you quickly and easily find and fix any codebase problem. As a result, your team will create more issues, they will be visible in your codebase, and you’ll see how your tech debt is getting fixed continuously.

Task (computing) code style

Published at DZone with permission of Cate Lawrence, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Related

  • Overview of C# Async Programming
  • Alexa Skill With Python
  • The Impact of AI Agents on Modern Workflows
  • A Developer’s Guide to Multithreading and Swift Concurrency

Partner Resources

×

Comments
Oops! Something Went Wrong

The likes didn't load as expected. Please refresh the page and try again.

ABOUT US

  • About DZone
  • Support and feedback
  • Community research
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • support@dzone.com

Let's be friends:

Likes
There are no likes...yet! 👀
Be the first to like this post!
It looks like you're not logged in.
Sign in to see who liked this post!