Productivity Tips - Getting Stuff Done

Is Productivity Overrated?

Some think it is and honestly, I think it depends on the person and the job. In some jobs, productivity is a measure of performance. In other places, it’s a status symbol of how quickly you can accomplish tasks.

My personal preference is to be productive. However, it’s not how much or the pace that matters, but the quality of the work that matters most. Getting quality things done makes anyone feel as if they’ve accomplished something even if they didn’t do anything major to better the world or impact society.

Regardless, different things come up every day, and your job is to solve those problems and cross them off of your virtual or physical ‘to-do’ list. We recently featured some great content on how to be more productive with your email testing and how to get stuff done in your day-to-day if you are working on engineering projects that you might find useful.

In my career both past and present, I pride myself in being efficient with my time and work. This is why I’m sharing my productivity tips – so that you can be efficient too!

7 Productivity Tips for Getting Stuff Done

  1. Develop a routine: Every morning I check my email, Slack and Twitter (for world news) which shapes my entire day. Is there a crisis in my inbox? A coup on Twitter that I should be sensitive about? This will all help me with #2.
  2. Scale Priorities: I prioritize my to-do list based on this question, “What will impact customers today?” I address these items first. Following that, I prioritize items that my boss will deem important or a priority. Lastly, I do the stuff that I actually enjoy doing on a daily basis. Seems backward, but ending my day on stuff I actually like doing makes me heart my job.
  3. Prune your to-do list: I never put any more than 7 items on my daily to-do list. Five is the optimal number for me, seven is a stretch goal. I put the items that I least want to do at the top so that I do them first and don’t have to keep looking at them. However, it’s super easy to procrastinate the crappy tasks.
  4. Block off time: I block off work-time on my calendar to do any task that takes longer than 15 minutes. I block off 30 minutes for that type of task to account for interruptions. In a meeting-driven week, this is especially important. To combat doing nothing but attending meetings, I add an additional “work-time” meeting to my calendar for 1-2 hours. This way I cross at least one or two things off the list and feel good about it.
  5. Take a lunch: I take a minimum of a 30-minute lunch (sometimes 90-minutes) and get out of the building if I can. It’s important to clear your head and walk away from your computer. Plus sometimes it’s where I draw my inspiration. If I can’t get out, I go socialize with others at their desks.
  6. Manage your email: Even though we’re an email company and we love email, I don’t respond to email every second I receive one. I check it a few times per day. I always read it all, reply to the important stuff and flag stuff as unread if I need to go back to it.
  7. Be realistic: It behooves you to commit to what’s realistic instead of a stretch goal every time. If something takes 2 days to complete, block out the appropriate amount of time for yourself.

Lastly, I have a reality check. Some days you can’t get everything done – end of story. Your to-do list will always be there. So, if you at least tackle #1 above, the rest of your list will wait until tomorrow.

What are your productivity tips? Let me know in the comments.


Clipboard Briefcase Clock image Developer Productivity Tools

Developer Productivity Tools You Might Like

Staying productive in a modern software firm can be a challenge. You might be physically remote, in a different timezone or maybe you just have an excitingly active user community. Whatever your situation, we each have productivity tools, techniques and coping mechanisms for maintaining momentum in the modern world.  I often learn from others on this topic so here is very quick overview of my own thinking.


Slack is one of the most useful developer productivity tools available to me today. Slack’s modern grown-up take on IRC makes traditional corporate IM completely obsolete. I could not function without live group comms with all my colleagues and our user community. Our founder and CTO George Schlossnagle says this and more here.

I also can’t imagine, due to Slack, how many fewer hours of meetings, memos, dry papers and otherwise slow-boat conversations we now have, but it’s alot.

an alot developer productivity tools blog Image c/o: an alot

My home within SparkPost is the Developer Relations group. We’re spread over 8 time zone hours and some of us move around quite a bit. Slack’s backscroll, the body of messages sent while I was away, lets me catch up when travelling, eating, asleep or whatever else. There is no substitute for backscroll to stay connected and in sync with the team.

So much of the work we do is visible in backscroll and it’s searchable too! I sound a little like an advert but Slack is an unprecedented new capability for me. I can now answer a great many of my own questions with Slack search – thats huge win for group productivity. I’ll touch on that a little more in the anti-patterns section later.

Of course Slack is not a replacement for deliberate documentation but it certainly raises the knowledge floor, does it not?


Ok, yes of course we all have calendars. We use Google Apps at SparkPost and Google Calendar helps my productivity in a few specific ways. I like to put solo tasks in my calendar. This lets me block out my days and remind “future me” (read: confused and lazy me) to do things on time. For example, I have a calendar entry entitled “Draft blog post” for writing this article with a couple of hours allocated. I leave the calendar notification on screen while I work (I use Chrome) so I can see it right beside my clock.

calendar reminder to draft blog post developer productivity tools

I reschedule tasks as needed but I try to work as dictated by my calendar. “Past me” had a plan to make progress on multiple fronts and keep things rolling along.  I can also reduce my cognitive load by separating the planning from the doing. In an convenient twist, Google Calendar’s “find a time” feature also meshes my tasks with actual meetings.


Alright. So far, so obvious. I have also identified a few productivity anti-patterns (behaviors that negatively affect my performance) which I try to avoid or at least manage. Here they are now.

Slack (again)

I know. I just advertised Slack like I was getting paid for it but I also feel it’s possible to be too connected. In larger teams, Slack lets you watch the whole organization function in real-time. That can feel a little like staring directly up the Niagara Falls and it’s as alluring as it is unproductive.

In response, I have learned to limit my channel membership, to make liberal use of channel muting and to re-think things when I’m reading backscroll for longer than a few minutes at a time.

Twitch Culture

Have you ever heard: “Can you just quickly do X for me? It’ll only take a moment.”?

Our lives are made up of moments and they’re all precious. Technology can also exert unwanted pressure to be ever available and responsive throughout the working day. For tasks in engineering, education, research and writing, this “twitch culture” impacts our performance because interruptions affect our flow. They can be jarring and difficult to recover from.

As a coping mechanism, I tend to just be less available during intensive task periods (like now). It takes a little getting used to but it works. I also try to answer my own questions (Slack search, lmgtfy, …) before interrupting others. It’s a balance so I’m sure everyone’s is different.

We live in a time of explosive growth in information availability. With a little awareness and more of these excellent developer productivity tools, I hope we can all continue to have rich, productive, interesting and happy lives.

Productivity is an extremely important, ever changing and yet very personal topic. We’ve been writing about it throughout July and frankly we’re exhausted. Leave us a comment or tweet about your own developer productivity tools, tips and techniques.

– Ewan

Howdy there! You and I have talked before about how we build Slack bots at SparkPost, but I didn’t say much about how we use them. We use bots at SparkPost to do all sorts of things. We’ve learned a lot and I thought now would be a good time to share some of that with you. I love bots, you love bots, so let’s turn the lights down, light a few candles and have a nice glass of your favorite beverage over some bot talk.

How we use slack bots to stay productive people connected via slack

How We’re Using Slack Bots to Maximize Productivity

Like I said, we use Slack bots for a lot of things. We run our standups with bots, we use them to get links to our docs, to post sample data from our endpoints, and to encourage each other. We do internal reporting and monitoring from bots. We track the status of our deploys along with any new PRs and issues on our Github repos all from Slack.

Why do we use bots for all these things? I mean, there are other tools that do almost each one of the things we use bots for. Well, that’s the thing: there’s at least one tool for each of those things. Our Slack bots consolidate everything into one place and one interface.

There are some advantages to using Slack as that central platform for us at SparkPost. First, since we’re a distributed team, Slack has become lingua franca – it’s our primary communication tool – so everyone is comfortable with it. Slack access doesn’t require any special VPN connections (though you should set up two-factor auth for safety). It’s accessible on mobile devices so we can make API calls from just about anywhere. We make our Slack bots easy to use for non-technical people so they don’t have to use developer tools like cURL or Postman.

Basically, since we’re already in Slack on a regular basis, it’s easier and faster to simply perform as many of our everyday tasks from there as possible. Not only does it mean fewer steps to complete something, but we also don’t have to leave the interface where we’re already spending a lot of time. Just repeat this over and over with me:


Botify All the Things!

So how do you choose what to add to your bot? Be on the lookout for things that are inconvenient or painful. Start with the things you do a lot. For example, in our community Slack team we found we spent a lot of time tracking down links to our docs: we’d open a browser, go to the docs page, search for the right resource, copy the link, go back to Slack… It was just awkward. And in that time the conversation would often have moved on. Now we have a single command that will give us a link to the resource our users need when they need it.

Do you have something that only you can do because you’re the only one technical enough? Bam! Slack bot! Or do you want to empower your team to do things on their own? Botify it! Want to let new users know what’s up when they join your Slack team? Bot time! You get the picture. It’s open-ended, the only limits are your creativity and a few pesky natural laws.

How to Succeed at Bots Without Really Trying

Ok, you have this awesome idea for this bot that is going to save you time and frustration and probably the world. You set up a repo and a sweet continuous deployment pipeline for easy deployments. You’ve got 100% test coverage, the build is green. But nobody is using it. Nobody? Seriously? Yep, nobody.

Remember, bots are an interface, just like a web page. And just like any web site they can be hard to use or unintuitive or just plain off-putting. Bots have the extra challenge of being a pure text interface to your code and code is rigid and brittle. But human language is fluid and nuanced and weird. So when you build your bot be creative, funny, and offbeat. Find that unique voice inside of you and channel it into your bot. That helps offset your bot’s rigidity (and even make it endearing!).

Making your bot enjoyable goes a long way to getting users to engage with them. We’ve also found a lot of success by including help text for every command. The skellington library we use for our bots makes help text a first-class citizen and makes it easy to add help messages. The easier and more fun you make the bot to use, the more people will use it!

If you use Slack or some other chat program, bots are a great way to empower your team and make rote tasks easier. Make your bots useful, interesting, and entertaining (in that order) and before you know it your bots will take over the world! Ok, not the world but at least the hearts of your users.

– Cole Furfaro-Strode

We’d love to hear how you’re using bots! Either post a comment below, or come find us in our Community Slack channel.

we love developers

productivity tips graphic hands multi-tasking

Can’t Get Out of Your Slump? Check Out These Productivity Tips.

We all have those days… the ones where every distraction is far more enticing than what we’re supposed to be accomplishing for work. Sometimes we’re able to pull ourselves back with sheer determination and willpower. Other times, let’s face it, we’re driven solely by guilt and a sense of responsibility.

So how do we keep the productivity train rolling and the hazardous distractions from popping up? I turned to our community to find out what their best productivity tips and tricks are for keeping on track throughout the day.

Understand the Scope of the Project

One of the biggest enemies of productivity is ambiguous direction. Nothing is worse than finishing a large project, only to find out that your idea of “complete” wasn’t remotely the same as the person who requested it.

“If someone says ‘I want an artificial intelligence based recommendation system,’ that could be something I could do in 10 minutes or spend my entire life on. The entire “task” becomes unapproachable,” says David Antaramian.

“Whittling it down to ‘I want an artificial intelligence system that always recommends at least 5 users for me to follow and is updated every minute,’ that task is much more approachable because I have boundaries to the task and a definition of when I will be ‘finished’ with the task.”

Many companies use the SMART method to help define goals. This method helps you think through projects to make sure they are Specific, Measurable, Achievable, Relevant, and Time-based. This ensures that the project is both well-defined and aligned with company goals.

Work in Small Increments

Understanding the scope of a project allows you to break it into smaller, more manageable increments. This takes away some of the “Where do I start?” predicament that can so often paralyze and stall even the best minds. Getting Things Done author David Allen says, “You don’t actually do a project; you can only do action steps related to it. When enough of the right action steps have been taken, some situation will have been created that matches your initial picture of the outcome closely enough that you can call it complete.”

This also allows you to make your work visible to those around you. Darren Cauthon refers to this as producing output: “Tickets, screenshots, messages, unit tests, branches, pull requests.  There should be outwardly visible output on everything I do.” This gives you the satisfaction of crossing things off the list and also keeps you accountable to your team for what your progress is on a particular project.

Steve Lackey suggests making a game out of small goals, seeing how many things you can accomplish in 10-30 minutes perhaps, or how many Pomodoros you can check off in one day. “The first step is to break the projects down into a list of smaller tasks,” he says. “For a larger project I tend to use either a spreadsheet, tiddlywiki, or even markdown documents in a common directory to manage notes and lists.”

This helps keep the project manageable and also gives you a clear path to follow. For Antaramian, simply seeing results feeds into that feeling of productiveness, which furthers the productivity. “You could think of it as working with yardstones instead of milestones,” he says. “Break it down into smaller increments that show value.”

List One Key Goal for Each Day

Breaking your projects into small tasks also allows you to define a clear goal for each day. Barthelemy Dagenais says, “I need to have at least one clear output done by the end of the day.” This might only be one portion of your overall project, but having that one clear output that you can hold up as the day’s accomplishment can sometimes be just what you need to have the motivation to start the next task.

Take Short Breaks

Now that you’ve broken your projects into smaller tasks and started to whittle down that list, make sure you’re taking breaks to rest your brain in addition to your eyes! The Ontario Ministry of Labour actually requires it at some jobs and emphasizes that “short, frequent breaks are much more effective in preventing excessive fatigue… than longer, less frequent breaks.”

Jenn Lebowitz agrees that “brain breaks” are good for productivity after long periods of intense focus. Whether you head to Dunkin’ Donuts (Jenn’s favorite), to the beach (my favorite), or simply step away from your computer to stretch your neck out, it’s bound to make a difference in your focus when you sit back down to tackle the next task.

Need yet another push toward remembering to schedule breaks throughout your day? Ciphr lists 6 great reasons why breaks are useful, covering everything from increased productivity to improved relationships with your colleagues!

Hint: If you’re looking for apps to help you remember to take breaks and de-stress, Techlicious has a great round-up post

Optimize for Time of Day

Lastly, figure out your “brain schedule”. I set aside an hour or two early in the afternoon (aka after my coffee kicks in) to write blog posts and tackle strategic tasks that require my full attention. My mornings are reserved for smaller, more manageable tasks and teamwork, including reviewing changes, brainstorming new ideas, and responding to community members.

Dagenais’s schedule takes a slightly different slant: “I work on different tasks depending on the time of the day. Early morning and morning are for creative/software design tasks. I never work on software design in late afternoon or evening because I’ll probably have to fix it the next morning, so it’s not really productive. Writing tests and lots of code once I have a clear direction is best done during the afternoon. Meetings that require creativity or critical input from me are best done in the morning too.”

Optimizing for particular times of day and the way that your brain works keeps you from banging your head against the wall to solve a particular problem that you might be able to cross off your list in no time, if you were only in the right frame of mind.

What Are Your Productivity Tips?

What are your tricks for staying productive? Leave a comment below or shoot us a tweet to let us know where you stand on Pomodoros, goal-setting, and best times for brainstorming.

— Mary

Dev Survival Guide Blog Footer