I recently had the great privilege to speak at self.conference 2014 in Detroit. I used this opportunity to share the idea of creating a Personal Life API with Detroit’s amazing developer community. Following is the summary of that talk. Be sure to check out all the other interesting talks at Github.
We all know that data is easy to collect, but difficult to collate and decipher. With the Personal Life API, we will simplify that process and liberate your personal data.
In this post, we will learn what data to quantify, how to automagically gather that data, and then we will discover the tools for creating a Personal Life API to access and analyze your data for tasks ranging from making real-time decisions to long term planning.
The post is composed of the following three components:
Phase 1: Use techniques from Personal Productivity experts to identify what data is important to quantify.
Phase 2: Create a template to determine what tools, services and devices will automate (mostly) our data collection.
Phase 3: Combine and expose our data behind a Personal Life API. We will design the API using APIary.io and implement it using Python/Flask. At this point we will also explore how we can use this API and put our data to work.
Part 1: What to Quantify?
Quantify with RPM
One of the first personal productivity experts I came across was Anthony Robbins. Specifically, his OPA, or RPM methodology. I’ve simplified this process to the following three bullets:
- Define specific and measurable Results
- Motivate yourself with Purpose
- Create a Massive action plan with specific, detailed actions
The order of execution is critical; take the time to move through each step in sequence and you will have a good idea of what your Personal API v1 should include.
Quantify with GTD
My current system utilizes many of the ideas that come from the Getting Things Done system. I recommend that you read the GTD book, or at the least, check out this wiki summary. When working on my own Personal Life API, I use the Natural Planning Technique, which is summarized below.
GTD Natural Planning Technique
Executing the following five steps in sequence will reveal a good foundation for your Personal API:
- Purpose / Guiding Principles: Why are we doing this?
- Mission / Vision / Goals / Successful Outcome: What does success look, sound or feel like?
- Brainstorming: How will we accomplish it?
- Organizing: When will we do these things?
- Next Actions: Where do we start, specifically?
You might find it interesting to compare your results from this process with that of the RPM methodology.
GTD Weekly Review
Similar to an agile retrospective, don’t skip out on your GTD weekly review. Lifehacker has a good treatment on how to execute your weekly review. I suggest you schedule the review for Friday morning.
GTD High Level Analysis
When developing your Personal Life API, you may want to make sure your objectives are tied closely to your long-term goals. Take a moment to think about the following:
- What are your areas of responsibility (e.g. Family, Business, Health)
Once you have defined your areas of responsibility, define the following for each area:
- What are your 1 – 2 year goals?
- What are your 3 – 5 year vision?
- What are your life purpose?
Perform this high level analysis at a monthly, quarterly and yearly cadence.
Quantify with Getting Results the Agile Way
Former VP of Engineering at SendGrid, Tom Albers introduced me to the idea of implementing software agile principles in a family setting. My favorite, and most used, aspect of this system is the rule of three.
Determine three outcomes for the year, month, week and day. This is a great focusing tool.
If you take the time to define these outcomes, you can be sure that the first iteration of your Personal API will provide real value from the start.
Agile Work/Life Balance
After you’ve defined your outcomes, make sure you stay balanced by going through these three steps:
- Define Hotspots (e.g. Career, Family, Health, Personal Growth)
- Set minimums for each of the Hotspots (e.g. 3 hours of exercise time per week)
- Schedule recurring meetings for yourself to: create a Monday vision, determine daily outcomes, and perform a Friday reflection
Dig deeper into the Getting Results the Agile Way system and compare your results with that of the RPM and GTD systems. Merge them all together for a complete picture.
Part 2: How to Quantify?
The goal is to collect as much relevant data that supports our Part 1 conclusions, preferably automatically. Between wearables, apps and services, we already have all the tools we need to get started today.
Features to Look For
When evaluating which tools to use for data collection, use the following checklist to help determine the optimal choices:
- Review the API and libraries.
- Is it easy to import/export data?
- Can there be automated data collection?
- What are the maintenance costs, in time and money?
- How is their support? Community?
Today, the easiest way to collect data automatically is to wear the sensor. Let’s take a look at a few that relate to health data.
The Fitbit automatically counts steps taken, stairs climbed, sleep quality and offers food logging (not automatic). Check out Fitbit.com for the details.
If you rely on taking and tracking your weight measurements regularly, check out a Withings scale, but instead of tweeting your weight automatically each morning, populate your API’s database instead.
Before diving into the wearables route, you might just want to dip your toe in with a few select apps installed on a device you already carry, your smartphone.
The Sleep Cycle Alarm Clock can measure the number of sleep cycles you get each night. It will also attempt to awake you at the lightest phase of your sleep.
To track your steps (walking or running) and your cycling/drive times automatically and accurately, check out the Moves app.
Get your heart rate, but not automatically, with Cardiio. You will need to set up regular reminders in order to get the measurements when you need them. Think through your goals and schedule accordingly. Same is true for food logging in the FitBit app.
There are many Internet services that can gather needed data relatively quickly, and automatically, in some cases. I suggest you begin by exploring the following. I’m sure the data will be useful to your Personal API.
IFTTT & Zapier
Part 3: How to Analyze
Ready to roll up your sleeves, get custom and code? Me too 🙂
Creating the API
Let’s take a break from this post, and turn to quickly prototype APIs using APIary. Walk through the process I describe there, utlizing the information in Parts 1 and 2. That post will give you a framework to create version 1 of your Personal Life API.
Building APPs On Top of Your API
Once your API is built, you open unlimited options for making your data work for you.
Here are just a few broad areas to get you stimulated:
- Automated interaction with external systems
In summary, I’d like to drive the following ideas home:
- Collect as much data as you can, automatically
- Manually collect key data
- Aggregate and normalize your data behind an API
- Develop systems on top of your API that move you towards your results
We would love to hear your ideas and how you would use your data if it were easily accessible via API. Please take a moment and share with us here on the blog.