I recently downloaded an iPhone app called IFTTT (If This Then That). With IFTTT, users can automate phone and app functionality by constructing “recipes” that connect previously-unconnected features. For example, I could create an IFTTT recipe that sends an SMS message whenever I enter or exit a predefined area. After playing around with the app for a couple of minutes, I realized that this app essentially programs acceptance criteria into the user’s daily life.
Think for a moment of your daily tasks as user stories: As a human being, I want to buy groceries so that I can eat meals. As a son, I want to call my mother every Sunday so that I can keep in touch with my family. As a homeowner, I want to save money on my electricity bill so that I can spend the money on other things.
IFTTT closely follows the given when, then format for acceptance criteria. Take the grocery requirement. IFTTT could pair your phone’s location services with your Evernote account. Given you are at a grocery store, then IFTTT will send your grocery list in Evernote as an SMS text. Given I am at my house on Sunday night, send an email reminder to call home. Given the temperature is less that 75º, set my programmable thermostat to a higher temperature.
You can take any life “project” and apply an agile framework systematically using nothing more than some planning and IFTTT. Let’s take weight loss as an example. Pick 5-6 tasks that lead to better health, and automate as much as possible using IFTTT. Implement two new healthy habits every week, and you could make an impactful change in your health. Logging food choices, remembering to exercise, and getting enough sleep are all activities that positively affect health. Set reminders using IFTTT, and these will become second nature. In life as in software development, agile methodology can be a dynamic force for change.