Writing Workflow: Building a System that Lasts

This article is about the steps I’ve taken to iterate upon my writing workflow. I’m writing this partially as documentation of how to structure a writing project in the same way as a software project.

This workflow is one under development. I have had problems with writing cadence and writing over the past few months. Writing this workflow is a means to increase the quality and the frequency with which I publish.

Jamie Todd Rubin is an inspiration with detailed articles on his craft of writing. Jamie is a science fiction author and developer at RAND, who has written consistently about processes for writing and evernote for years [1]. The art of creating process is essential for producing great work in the long term. Habits that reduce decisions into processes are critical to long term success.

In recent months, I have been writing consistently about 6–8 hours a week, most weeks. However, there have been weeks that I’ve written nothing.

Learning a new skill is hard and uncomfortable. This article is documentation on what’s worked recently and follow-up experiments I’m going to conduct on learning how to write better and more consistently.

Tools

Screenshot of my writing environment with Marked / Sublime Text

  • Git is typically used by developers to share and collaborate on code. It provides a nice interface between changes by individual developers and changes to be shared with a group. Why do I use git for writing? It gives me the ability to easily pare what articles are published and not yet published, I have nice versioning, and best of all, github displays Markdown beautifully.
  • Markdown is a language for writing in plain text that converts to beautiful html. This lets me jot ideas down quickly without the formatting necessary in other formats. Markdown looks like a .txt file with
  • Marked is a Markdown tool (by Brett Terpstra) that previews live with every save. This feedback loop has been the most seemless of all the editors I had experimented with. I have the analysis tool open—this gives me a word count and rough complexity metrics.
  • Sublime Text is my favorite editor for development and Markdown. It’s lightweight and infinitely extendible.

Drafting

  1. Inception I’ll start a small note inside of /working folder. This start of an article is sometimes placed into the working folder then fleshed out at a later date. Typically, this is a sentence or a paragraph.
  2. Creation 2 –3 hour chunk to flesh out this original tiny idea. My goal is to have about 600 – 1000 words initially. Typically I’ll have Marked open and be looking at readability statistics occassionally.
  3. Editing I’ll spend another 2 hours to revise the idea for my reader. The initial draft is typically framed for what I find interesting. I frame this writing session for what is interesting for another person.
  4. Review I’ll send this out to a few friends for review. Also, I’ll make two fiverr requests for feedback. Fiverr is a service where small tasks (e.g. editing a blog post) can be done for five dollars. Within a few days (as the fiverr requests return), I will integrate the feedback from a fiverr editor.

Initial sketch of my git workflow for publishing

Git Flow: (defn) a strict way to use git for project release. I keep two branches of my git project (development / master) checked out simultaneously. The development branch is private whereas the master branch is public and accessible on github. The only common markdown file is the README.md which lists the index of my site. [2]

Publishing

This is a two part process:

  1. On Github:
    1. Move the article from my /working folder (development branch) to a specific month (the master branch) for organization purposes.
    2. Check the urls / images. Resize large images and adjust the formatting.
    3. Push to mainline. This makes the article public!
  2. On WordPress:
    1. Export html from Marked and copy paste into WordPress. This allows WordPress to do the css styling and allow for an easy transition between Markdown and another blogging platform.
    2. Correct image urls to final remote locations
    3. Hit publish!

Future Work

  • Automatic daily email / analysis My initial workflow does not have a good feedback loop outside of the time I spend writing. Since I save each revision on git, it should very easy be able to run analysis on things like word count, complexity (see the above image for Marked application’s reading analysis). Jamie Rubin receives an email once a day that summarizes his writing for the day, streak length (currently 400+) and progress towards a goal. I plan to create something similar for my private development git branch.
  • Faster feedback loop for external editors My initial experiment using fiverr as external editors has been too slow. The two editor requests came back in 4 and 8 days, which slows down my publication process. I hoped for a more immediate feedback loop as a forcing function to publish. I plan to try this same process on Amazon’s Mechanical Turk sometime soon.

More Reading

I have read each of these books recently and have enjoyed them immensely.


References

[1] Many of Jamie’s articles focus on the development of processes, such as automation or writing consistently. His transparency in the iteration of certain processes (such as his Google Docs scripts) are really insightful and can provide a nice model for anyone trying to learn and develop habits. Here are some awesome articles:

[2] Read the guides on gitflow by Atlassian & @Nvie


More? Subscribe to my “Habits, Design, and Learning” mailing list by clicking here!

How to Design for Habit: The Secret to Making Great Products

Let’s say you created a product. A product that solves a common specific problem for many people. Yet, after a sign-up or an application download for your solution, people continue to have the same problem and do not use your product.

“Why?!”

Why might someone continue to have a problem or use an inferior solution? These people already have routines based around their current solution. They may not even recognize they have a default routine. Help them use your product by developing new habits around what they already do. [1]

Design is making the unintuitive intuitive.

John Maeda

Designing products that people use is a process. Ideally, this process starts as a small conscious change in their routine and incrementally grows until the product becomes the individual’s go-to. At this point, the individual will have developed a new default routine for their use case.

Any new product trying to solve a person’s existing problem is in a tough position. This person regularly encounters a problem, has noticed it, and does not go out of their way to solve it. This problem has been part of their routine. Part of your solution must make this new behavior intuitive. Your product must fit into what an individual does regularly.

Penrose stairs are impossible stairs, they descend or ascend to form a continuous loop. This photograph (not Penrose stairs) is beautiful yet disorienting. People probably take these!

Penrose stairs are impossible stairs, they descend or ascend to form a continuous loop. This photograph (not Penrose stairs) is beautiful yet disorienting. People probably take these!

This article is about how to best design software products into the routine of what users already do.

What do people already do?

Designers should be thinking about how their solution fits into the workflow that already exists. Let’s take Evernote, one of my favorite applications. Evernote is a suite of software and services for taking notes that act as “an external brain.”

Bob is a student who has a problem with synchronizing notes across devices. He currently uses Microsoft Word for class notes. Microsoft Word works pretty well on his Mac, but doesn’t work on his iPhone and doesn’t have a way to synchronize online between his two computers. He wants to address some pain points:

  • Bob wants to take notes.
  • Bob wants to synchonize his notes online.
  • Bob wants to be able to change devices and take notes.
  • Bob wants to be able to take notes with consistent formatting.

The principal of least surpise: the person using the application should not be surprised by a software’s behavior.

The note taking process in Evernote is straightforward (see the “Getting Started” guide here). Bob might install Evernote on each device (PC, Mac, iPhones). Notes synchronize automatically between each of these devices (without the person needing to worry about copying or emailing the document). When Bob opens any note, the formatting stays consistent (Evernote looks the same and does not add additional “paper” formatting Word might).

The best software software should delight in only making small suprises— surprises that are subtle and seem intuitive. Intuition = non-intrusiveness. Design should give the right amount of information to guide the user through their interface.

A few years ago, Evernote released a usage graph they called the smile graph:

Evernote Smile Graph

In this graph, during the first year of install, the number of users that use Evernote on a monthly basis drops off from over 40% to 20% . Then over the course of the next two years, the percentage of individuals that use this tool increases. Many software products have a graph that is strictly decreasing. Evernote’s monthly user graph is different— over the course of the tool’s lifetime, the number of people actually increases over time. Interpretation: people start to recognize how useful Evernote. Bob may start using the tool even though they did not use the tool at first.

Software designers should design their tools to be adopted by hooking into what the user already does.

Fit into workflows

 

We are what we repeatedly do

Aristotle

Starting to use a new application requires you to think about how to start a new habit. Experts say it generally takes 21 days to establish a new habit [2]. In the world today, the world of applications, tv, consistent and constant notifications, and a bleed between work and non-work situations, new software products live in a tenuous spot. These habits compete with the automatic and established habits we already have.

Similar to creating new habits [3], there are effective patterns for software designers to create consistency:

  • Change environment Software should change parts of the user’s environment to help them use this new tool.
    • Software automatically start at system boot-up, so it is consistently at the taskbar.
    • Software can add extensions to applications that are already used, such as browsers plug-ins or integrations.
  • Notifications Software can add notifications to mobile phones so users can have another interface to its functionality
  • Import Software should import existing data. With any habit, there is always a bit of inertia to keep using the same pattern as before. Importing data from previous tools should help users bridge the gap between new and old by having all of the older data inside.
  • Trigger Software can change the operating system hook. Upon install, a software can ask a user to change this default to open your product.

Exceptions to the rule:

  • Disruptive technologies Software may create an entire new market and value network based around some value prior work did not have. Wiki link. Because no prior behavior or habits existed, this type of software establishes an entire new set of habits.
  • Inertia Software may have a high inertia that makes movement very difficult. Services and platforms build ecosystems around use, and switching is hard. For example, I’ve heard many twenty-somethings whine about Facebook and their dislike of the privacy controls, yet many of these individuals still use the service. “It’s what my friends use.”

Building Products as Habits

The most innovative and useful products of the future will be those that create lasting behaviors. Designers that understand how products fit into workflows can then better help their users find success in solving problems.

Now I want to ask you all a question:

  • What tools do you use do you use everyday? What makes them indispensible? (Extra credit: Is it for the same reason you used it in the first place?)

Email me! frxchen [at] gmail.com


References

[1] BJ Fogg, my mentor and Stanford professor who started the Persuasive Technologies lab, describes a simple model for changing behaviors here behaviormodel.org. Relying on epiphanies is hard, instead, use these methods to help your users do what they want to do.

[2] Dean, Jeremy, Making Habits, Breaking Habits: Why we do things, why we don’t, and How to Make Any Change Stick. Amazon link

[3] Design your Personal Operating System: habits. I discuss the basics of habit design with lots of references to things I like to read.

Images


More? Subscribe to my “Habits, Design, and Learning” mailing list by clicking here!

Playlist Your Morning Routine: Beat Complexity like a Boss

Some mornings start off awesome, and the day stays awesome. Other mornings start slow and create slowness throughout the day. These slow days suck.

What’s the difference between the two?

At dawn, when you have trouble getting out of bed, tell yourself, “I have to go to work—as a human being. What do I have to complain of, if I’m going to do what I was born for the things I was brought into the world to do? Or is this what I was created for? To huddle under the blankets and stay warm?”

Marcus Aurelius

Your morning routine shapes the arc of the remainder of the morning and potentially the day. By defining a crisp morning routine, you can maximize your day in whatever it is you’re trying to accomplish.

Dawn Geometry

We are all works in progress. This article is about how you can shape your morning routine.

Why You Should Minimize Decisions in the Morning

To be productive:

  • Every day, Barack Obama hits the gym at the same time and alternates between cardio and weights. He dresses in only blue or grey suits. [1]
  • Before the Olympics, Michael Phelps would eat the same 12,000-calorie meals throughout a day. While training 6 hours a day, 6 days a week, he would even play the same music playlists prior to each session. [2]

These routines critically minimize decisions. Research has shown that willpower and self-discipline are like muscles. We can strength them with training, but over the course of a day, willpower is a limited resource [3]. William James, the first American teacher of psychology, sought to form habits around routines to help us “free our minds to advance to really interesting fields of action.”

I call a set of routines a playlist. In music, playlists allow you to move items around, and a playlist has a certain progression. As I start making a new playlist, it’s important to move items around to find the best fit. I have a specific running playlist that helps me start my run; it starts slow then speeds up. The first song in my running playlist is typically at 120 beats per minute then gradually increases to 140–150 beats per minute and finally settles on a more consistent 180 beats per minute [4].

A morning routine can be thought of as a playlist of behaviors. There is an optimal progression, and iterating upon the order is best done through testing. The progression of the playlist leads me towards a productive day. The playlist allows me to minimize decisions in the morning and maximize my ability to do things later in the day.

The Playlist

My morning ritual

Writing out my morning ritual

Tim Ferriss recommended Daily Rituals as part of his book club [4]. I loved this book because of the sheer breadth of how people started their day.

From the author [5]

The book’s title is Daily Rituals, but my focus in writing it was really people’s routines. The word connotes ordinariness and even a lack of thought; to follow a routine is to be on autopilot. But one’s daily routine is also a choice, or a whole series of choices. […] a solid routine fosters a well-worn groove of one’s mental energies and helps stave off the tyranny of moods.

Halfway into the book, I decided to write down my morning routine. I realized I might iterate, so I wrote it on Post-it notes. This has been shuffled quite a bit, and I find myself adding elements every now and then.

This playlist starts the moment I wake up in the morning:

  1. Alarm I’ll sit up and take a breath while my alarm is sounding then swipe it off. I make sure I put the phone away so I am not distracted by emails and texts.
  2. Make bed
  3. Hygiene I’ll put on face wash then start brushing my teeth.
  4. Water I will place yerba matte into my French press and start my water pot to boil.
  5. Shower While still brushing, I’ll jump into the shower.
  6. Suit up After showering, I’ll weigh myself and dress for the day.
  7. Breakfast I’ll eat three raw eggs and drink one liter of cold water with my daily vitamins. The water will be done boiling by now, and I’ll set the tea.
  8. Meditate I’ll meditate for ten minutes.
  9. Create Without turning on my computer, I’ll draw, write, or do some combination of these two on paper.

Test and Iteration

The critical piece of any real system is the test and iteration on individual pieces. Every day, there can be different needs, and to start a solid routine, testing and adapting it is critical. Failures are important learning opportunities, and here are some of mine.

Furthermore, writing down my routine on Post-it notes was only part of the story. Many of these steps already existed as things I did; writing them down was simply a way to think through the problem. They helped me better sequence the order and transitions between different activities. Finally, I no longer need to look at this set of Post-it notes, as it’s become nearly automatic.

Here are some iterations that were less optimal:

  • Check email/social media These two types of applications are incredible time sinks when I need to get moving in the morning. In each of the steps above, I minimize my time on my phone.
  • Meditation sequencing When I first started meditation, I tried to do this as soon as I got out of bed but found myself too groggy to really focus on my breath for ten minutes. Similarly, I tried meditating before breakfast and found that my stomach growled way too much. When I did not boil water early, my water pot would typically start screaming midway into my meditation.
  • Falling off the wagon for meditation In the past, I would consistently meditate for months then fall off the wagon for a few months and return. Thus far, this playlist has kept me on the wagon.
  • Fractured toes In the past two weeks, I’ve fractured two toes. Before I sit down for writing, I have to clean and re-bandage my foot.
  • Pager duty Every couple of months, I go on pager duty for work as a Software engineer. This results in a rough two-week period where I really have to focus on individual playlist steps because my sleep may be punctuated by a midnight page. Read more about pagers: [7]

Routines as Playlists

Playlists represent individual actions to be performed. My morning routine has been a work in progress for years, and I expect this to continue to evolve.

What should you take away? Playlists are a way to think about behavior routines and a tool to increase productivity. After I wrote my initial list, I found that different combinations worked better than others. Listing out my “morning playlist” helped me optimize my output for the rest of the day.


References

[1] Vanity Fair: Obama’s Way

[2] Motley Health: Michael Phelps Workout and Diet

[3] HBR: Boring is productive. This is a great summary piece on some of Roy Baumeister’s work. The same mental energy you use to choose items of clothing or food is used for your higher importance tasks.

[4] Research shows that elite marathoners (regardless of height/stride/running form) settle on 180 steps per minute. Because people subconsciously attune to their environment (especially music), playlists set to this cadence likely attune running cadence to this speed, thus improving performance.

[5] Tim Ferriss blog: 1) Daily Rituals 2) The Odd (And Effective) Routines of Famous Minds like Beethoven, Maya Angelou, and Francis Bacon

[6] Daily Rituals: How Artists Work (link). I highly recommend this book. The ones I enjoyed the most were Benjamin Franklin, Frederick Chopin, Ernest Hemingway, and Haruki Murakami.

[7] For those not in software development, customers facing issues and system monitoring tools will page engineers. Our team has two engineers who rotate on primary and secondary pager on-call when one of these pages occurs. If the primary engineer does not respond within a set amount of time, the secondary engineer gets paged. If the secondary does not respond, his/her manager will get paged.

Image credit Jes: Dawn Geometry

BONUS Routines from blogs I love to read


More? Subscribe to my “Habits, design, and learning” mailing list by clicking here!

Design your personal operating system: habits

Habits are behaviors you do without thought. Your default. Your routine. Habits become the operating system you live your life through.

Marketers, advertisers, psychologists, designers have discovered tiny secrets that help them create behaviors and program an individual’s operating system.

Benjamin Franklin—statesmen, musician, author, inventor—asked himself every morning:

What good shall I do today?

He tracked 13 morals on a daily basis to see how he had been doing. He created a system to develop better habits and improve himself on a daily basis.

I want to share a slice things I have been a part of. I currently work as a software, software is the language I communicate in. I used to work in human-computer interaction for behavior design and research. While there is overlap in technique, this intersection of design, behavior, and engineering is unique.

Many of us have trouble recognizing the fact: You can change your habits, your routines. By using simple tools and frameworks, you can change even the hardest habits. According to a recent study, only about 12% of those who set resolutions achieve them [1]. This means, about 88% of people fail at their resolutions! As the new year starts they may say:

  • I will never smoke again.
  • I will not eat carbs again.
  • I will lose 10 lbs this year.

88% of those who create new years habits do not follow through

88% of those who create new year’s habits do not follow through

Many of these resolutions fail in the absense of a habit.

Habits are a series of choices that are individual behaviors. A behavior is a combination of time, environment, physical and emotional energy, and self-discipline. BJ Fogg, Stanford professor and godfather of Captology (the study of Computers as Persuasive Technologies), mentions fundamentally three ways to change behavior [2]:

  1. Have an epiphany
  2. Change your environment (what surrounds you)
  3. Take baby steps

A few months ago, an incredibly smart friend and I were talking about habits. He lost over a hundred pounds over the past year, which was mindblowingly cool to me. And he wanted to do more, though had plateaued. When I started to describe my process, I recognized some subtle framing changes to thinking about habits that combine two interests: developing software and designing behavior.

He asked me this question:

“Is there a secret to maintaining a new, hard habit?”

I want to share a bit of that conversation with you today.

Developing software

Day to day. I write code that defines what a user sees and how a user can behave in software. Software is designed and built with a specific purpose in mind. When it does not work, I use the equivalent of Spell Checker to have the ability to 1) stop time in software, 2) observe all of the complexities happening in code, and 3) change values in the system to see if it will allow the system to keep running. I can see how and when problems happen.

The tools we use in software development do not exist in the same way to develop behaviors. This software system runs on a computer. I can stop time, and observe, change, tinker with the system in action. We can take part of this framework in thinking the software of our everyday lives, the behavior.

Good habits free our minds to advance to really interesting fields of action.

William James

Developing behavior

Habits are social systems we operate in. People have said 90% of communication is non-verbal. The amount of signals we receive from different social situations is astounding and our brains are wired to process all of this without conscious thought. The way a software developer parses complexity to find issues is impossible for behavior. There is no analogue to pausing time and figuring out all the variables in a social situation.

Creating an individual habit is hard. Many books have been written about this [3]. Habits never arise in absense of a social situation. Marcus Aurelius once said “the intelligence of the universe is social”. Changing an entire social ecosystem is hard, and so is change in the absense of an ecosystem.

The key to creating new habits is automation: Create systems where the only choice is success.

There are specific tactics to this:

  1. Start small, simple.
  2. Make it social, maximize fun.
  3. Create small feedback cycles, learn, cut ruthlessly.
  4. There is no forever. Only define behaviors with a time-span.

Create automatic systems to maximize habits. Trying to run? Find a group and join them

Create automatic systems to maximize habits. Trying to run? Find a group and join them


References

[1] Wiseman, Richard. 88% of 3000 people failed in their resolutions. http://j.mp/RFd65w Sitenote: Many cite this study, but seem to miss out on a specific reference. Culprits: WSJ, Wikipedia, the Guardian, Buffer. They either contain no citation or cite other news articles.

[2] Fogg, BJ. Tiny Habits. At the time of this writing, over 24,000 have participated. It takes about 3 minutes per day and is a single week. http://tinyhabits.com

[3] Books on habits:
– Charles Duhigg’s Power of Habit
– BJ Fogg’s Persuasive Technology: Using Computers to Change What We Think and Do
– Nir Eyal & Ryan Hoover’s Hooked
– Chip & Dan Heath’s Switch
– Daniel Pink’s To Sell Is Human
– Richard Thaler and Cass Sunstein’s Nudge

Images


More? Subscribe to the “Habits, design, and learning” list by clicking here!

About @frankc

Taken on a run around Los Angeles. 2013

Taken on a run around Los Angeles. 2013

Hello world

This piece of internet real estate is reserved thoughts that generate ideas, conversations, and projects. I’ll be writing to find and explore my interests with a community of people.

I build stuff as part of my everyday life. I jot some of what I build in workflows, scripts, research notebooks, evernote, simplenote, sketch notebooks, note cards. Some of these things become permanent parts of what I do, some of it gets shared among friends, and most of it never gets shown to the world.

Because it’s much easier to start a project than to finish a project, I am writing consistently and forcing myself to hit the publish button. The best growth happens in spurts. So here we go. The inaugural post to my blog.

Who am I?

Part of my life was spent as a researcher. I worked in human-computer interaction and built technologies to help motivated individuals create habits by shaping their environment and their habits.

Currently, I spend most of my time developing software. I work with a highly talented team to change how people use enterprise software at AWS.

Stories

Sharing narratives is a part of the human experience. When you hear a narrative, you use your perspective to create a new and different understanding of the story than the one I tell. Your mind turns complex topics into simple narratives.

Etc…

I have a photo of me running at the top of this post. Running has brought me to see, hear and feel the world differently. I love swimming in every body of water I can find, eating as much spicy ethnic cuisine as my stomach can handle, and traveling by overnight train whenever I have the chance.

You can follow Frank Chen on Twitter at @frankc. Subscribe to the “Habits, design, and learning” list by clicking here!