Get Things Done Faster With A Faster Version Of iDoneThis

 

Screenshot 2015-08-12 17.44.12

We heard you.

Getting things done takes time. Writing them down shouldn’t.

We realized that if we’re going to be the best way to log your daily progress, we’d better be lightening fast. Kind of fast wasn’t good enough. Fast enough wasn’t good enough. We wanted speed.

Our number one request from users has been for a faster version of iDoneThis.

We heard you loud and clear, and this summer we made it a priority to speed things up.

Because you and your team work hard. Your accomplishments should be logged and loaded up as fast as possible.

Let’s go over what we did. I’ll give you two options.

4b3d99b325a51a3b76f129ba701a1b1c

The short version (what do I need to know without all the technical mumbo jumbo)

iDoneThis is faster. You’ll wait less to get your daily Dones loaded up. And if bandwidth is slowing things down, you’ll see a spinning wheel to let you know that things are happening.

The long version (I LOVE technical mumbo jumbo! Give me the gritty details!)

We noticed our performance could speed up, so in July 2015 we launched a performance improvement project — aimed at making iDoneThis faster, smoother and more user friendly.

We added a loading indicator

One fix was adding loading indicators (or spinners) to all of the essential actions. So now if you’re posting, loading up or commenting on Dones — and the web connection is a little slow — you’ll see a spinning wheel letting you know that your request has been heard.

We owe some credit here to usability guru Jacob Nielsen, whose 10 Usability Heuristics for User Interface Design are as relevant today as when they were published in 1995. His first rule:

“The system should always keep users informed about what is going on, through appropriate feedback within reasonable time.”

Without a loading indicator, it was hard for you to know if anything was happening after you clicked something. Ideally, you won’t have to wait at all. But we understand that things happen. Bandwidth is a precious resource, connections slow down, apps load slower. We get it. You should at least know whether the engine is starting up or stalled out.

We cleaned up the front-end requests

Previously, firing up iDoneThis meant the front-end loaded up a whole month’s worth of Dones. This made switching to different days feel more instant. But it also meant loading up a lot of data initially. We realize it’s more important to get today’s data right away.

So now the front-end only loads up the Dones for today. When you switch to a different day, we’ll fetch the data for that day.

We optimized our back-end code

With the front-end now only pulling up one day’s worth of Dones, we took to optimizing the back-end so actions load up even faster when you request them.

We used a service called New Relic to track down the most expensive operations and found optimization potential in basically all of our back-end code. Almost all of the operations showed something we were able to make faster — sometimes by up to 70 percent.

Also, we optimized the platform we were running on along with requests and database queries. The old setup meant slow clients could keep our servers busy for longer, thus slowing down everyone else. With our updated platform, this won’t happen anymore.

We’re going to keep working on making iDoneThis the best way to record the things you’re getting done, the best way to coordinate with remote teams and the best way to replace your daily standup.

We’ll also make performance considerations a priority in all our future projects, so that a whole project dedicated towards performance won’t be necessary anytime soon.

You told us iDoneThis needed to be faster, and we made it our mission to turn your feedback into improvements. We appreciate the help. Let us know what you think of the improvements and don’t be shy about suggesting new ones.

Now go out there and get things done.

How to Work Together When Everyone’s Working Asynchronously

asynchronous work

Remote teams are forced to work asynchronously, but it can be an incredibly powerful constraint.

To Zach Holman of Github, that “everything is asynchronous” is his favorite part of working at the company. It kills distractions and interruptions—especially meetings—and helps people get in “the zone” or a state of flow for getting stuff done.

The problem that we’ve experienced recently is that to enable asynchronous work, we’ve felt that every developer had to have his own long-term project that he’d able to execute on totally independently.

The upshot is that in decoupling developer dependencies, we’ve lost focus and a coherent sense of what we’re executing on as an organization because the projects are too disparate. It feels like everyone is working on something totally different and that we’re going broadly on several things but not deep on anything in particular.

When someone on the team does need help, there’s a far more painful context switch to a project that’s potentially very different from what that person’s project is. Ironically, more help on big picture and direction is needed because the decoupled projects don’t present a unified bigger picture of product direction.

To fix the problem, we decided to go in the opposite direction—we had everyone in the company work on shipping one single thing, and that’s how we got our Slack integration out in a week.

Continue Reading

How to Start a Startup – A Practical Guide

startup guide

A Practical Guide for How to Start a Startup

iDoneThis is our first startup and the only thing we’ve ever built that anyone’s ever used. When we started, we had no cash, no paying customers, no knowledge on how to acquire customers, and no idea how to run a business.  We had to learn all of the lessons packed into this startup guide the hard way, through experience.

What you won’t find in this guide is a bunch of theoretical talk about startups in the abstract. Whether you’re contemplating starting a startup or you’ve just begun to take the plunge, you’ll find useful, hear-earned lessons and case studies in this guide to start you on your way.

This guide includes absolutely everything we’ve learned about how to start a startup.  It’s all of the lessons we learned going from zero to having a million-dollar business. We’d love to hear what you think on Twitter at @idonethis.

Continue Reading

My Job is to Learn How to Code

chad profile picture

That’s me, Customer Success Engineer Chad!

My name is Chad and I’m an IT Infrastructure Manager — make that — used to be one. Until just eight weeks ago, I spent most of my time managing a fleet of 120+ servers and network devices, hundreds of laptops and desktops, across six locations around the US, and a team of six others to help shoulder the load.

Being a Unix nerd that likes to talk to people, I had fun at my job, and I was pretty good at it. However I’m also a tinkerer that doesn’t like to have a knowledge vacuum in any one particular area of interest for long.

My team and I started using iDoneThis to replace status reports and extra meetings. I was hooked. I used a really neat plugin for the popular OS X app launcher Alfred to post all my dones.

When Alfred released it’s major 2.0 update my precious workflow had broken. When the author was no where to be found, I thought, “How hard could this be?” I ended up somehow building a working Alfred 2.0 workflow for iDoneThis and even a mini Python powered API, to act as a mail proxy (hosted at DigitalOcean). Sharing this with the Alfred + iDoneThis community (I didn’t know anyone would use it) got me noticed by Walter and Rodrigo (the co-founders of iDoneThis) plus a Skype call offering their personal thanks for my work.

iDoneThis + Alfred

Todd Clarke liked the workflow so much he made this!

Continue Reading

How Talking to Customers Helped Us Build a Better API

talking to customers - shopify

Hanging out at Shopify to talk with our customers

We decided to build an API for iDoneThis because many customers had requested it.  It would use OAuth2 for authentication and would support everything one could do through the iDoneThis web interface. You would be able to like entries and comment on them, aggregate exactly who commented how much on which days, and more.

We were ambitious!

But we noticed that a weird thing had happened—after having listened to customers to give that initial impetus to build the API, we stopped consulting them completely!  We didn’t know exactly what they wanted from the API—only that they vaguely wanted it—so our plans included building everything to fill this abstract customer need.

We decided to pause and that before we started building it, we would do some research to validate or invalidate our assumptions.  What we learned surprised us and helped us save an incredible amount of development time by focusing API development on exactly what the customer wanted.

Continue Reading

One Month’s Expenses at a Startup

image

Don’t tell me what you value, show me your budget, and I’ll tell you what you value.

 Joe Biden

When Everpix shut down and open-sourced their financials, one of the most fascinating and hotly debated points was the company’s expenses.

I thought that adding another data point to the conversation could be interesting to fellow startup folks. Here’s one month of expenses here at iDoneThis, for July 2014. What you see below is taken straight from our bank statement.

Continue Reading