10 Things I’m Doing After Reading The Principles of Product Development Flow

A few weeks ago I showed this slide during a talk I gave to clients of RJMetrics.

Books on Flow and Throughput
Books on Flow and Throughput

The Goal is legendary in my family as a guide for unlocking throughput in manufacturing. Garvey Corp’s entire business model is helping companies exploit constraints and increase profits. It got me off to a great start in manufacturing, but the reality of workflow always seemed a little more complicated than Goldratt’s stories lead you to believe.

Later I devoured Jeffery Liker’s The Toyota Way, which describes the infamous Toyota Production System. It seemed to me that if you carried Goldratt’s constraint theory logically throughout your production system, you’d probably end up with TPS or something like it. As good as it is, the Toyota Way’s strategies always seemed better suited for a different type of manufacturing. One where you were producing roughly the same thing, slightly customized. My manufacturing reality had tremendous customization and variability.

The Principles of Product Development Flow by Don Reinertsen was what I was looking for. Here are ten things I’m incorporating into my workflow. (Manufacturing bits now instead of machines, of course)

1. Smaller projects – We’ve been shrinking our projects at RJMetrics for a while now, but initially I resisted it. “Some projects just take a long time, but are still worthwhile,” I thought. In 2015, however, the equations making projects worthwhile change fast. It’s better to hit a 2 week checkpoint and say “let’s keep going” than go for 6 months and say, “maybe we shouldn’t have done this.” I’ve even been making a conscious effort to make my pull requests smaller (under 50 lines) and more frequent.

2. No more backlogs – Keep TODO issues in a short list, but kill off the long collection of items that linger forever. This is super hard for a GTD’er like me, where you’re supposed to get everything out of your head and into a system. That system breaks when you get multiple people adding items to a backlog that will never get touched. The real backlog is in your brain. If it’s important enough, it will stay there bugging you to be completed and eventually you’ll add it to your short todo list. The key reason why backlogs are bad is this: Your team is smarter today than it was in in the past. Your issue backlog was created by an inferior version of your team.

3. Late assignment of issues – No one gets assigned anything until they can work on it. Have you ever been stuck in a grocery line behind someone who is super slow? You’ve already committed to that line! You’re stuck there because the physical constraints of a grocery store force assignment of a few customers to a register. When matching devs with issues, wait until the last possible second to make the assignment so that it doesn’t get stuck behind another slower than expected issue.

4. Fast feedback is critical – In 2015, everyone says we need to ship an MVP and iterate, but we still don’t always do it. There are many excuses: “The design isn’t ready”, “It’s not valuable without feature X,” etc. Not only is fast feedback worth overriding these concerns, it’s the best plan for fixing them.

5. Start teams smaller, then bring in reserves – “Make early and meaningful contact with the problem.” Planning is good, but plans get shattered once work starts. Things always turn out to be harder than we thought and the best way to find out where we are is to have someone start working on the project. A single developer will have a better picture in one week than a plan ever will. This is one reason why hackathons pay off so well for RJMetrics. Bring in other team members in week 2 and their start will be better focused. Plans should set goals, but be light on implementation details until work beginds

6. Use Little’s Formula – to provide more accurate response times for issues.

7. Make queues visible – Luckily we have a great BI tool to use for this called RJMetrics. Reinertsen recommends Post It Notes to track queues, but the book was written BT (Before Trello).

8. Queue = Todo + In Progress – Don’t just count items that are waiting. The item you’re currently working on is still in queue. The team’s issue queue should be judged on the sum of Todo and In Progress, not just one.

9. Have a framework for when to escalate team communicationPrinciples says to use regular meetings over irregular meetings, in person vs email, etc. I’m hesitant to escalate the communication due to the transacational costs associated with context switching, but when do you decide to stop emailing and start chatting? When do you stop chatting and start speaking? I’m going to start using the following framework for communication and adjust it:
– Email goes to chat after 3 emails
– Chat goes to in person after 10 messages

There’s no 10th item. Don’t feel like you have to fill every meeting/PR/project with content to fit the allotted time.

Best Things This Year (2014)

What I like about 2014 was that it was more about things I built, rather than found and enjoyed.

1. Lineage
How do you browse 250 years of genealogical data? My Aunt Peggy has been doing genealogical research for decades and I created a system to view this data and show family relationships. I demoed Lineage at the February Philly JS Dev Meetup and at the Digital Analytics Association Symposium in October.

Lineage screen shot
Lineage screen shot

2. Public Speaking
I did more public speaking this year, mostly talking about data visualization, AngularJS, and some of my projects, including Lineage and the Bulldog Budget.
Data Visualization and Expression at the Digital Analytics Association Symposium
Data Expression with D3 at the Philly Javascript Meetup
14 Slides on ng-repeat at Angular Philly
How the !@#$ and I Going to Upgrade to Angular 2.0? at Angular Philly

Digital Analytics Association Symposium
Digital Analytics Association Symposium

3. Kids Morning Adventure
I productized the morning routine I invented for getting my kids ready for school. Morning Adventure gamifies the process, motivating kids to be more independent and makes sure we get to school on time. I can’t imagine life without it now.

Kids Morning Adventure
Kids Morning Adventure

4. David Lynch
I got to see David Lynch give a talk at the opening of his art exhibit at PAFA.

David Lynch
David Lynch

4.1 More
I also got to see Biz Stone, a Peregrine Falcon, and this lady who skied to PATCO on a snowy day.

5. Books I read this year
The Design of Everyday Things by Don Norman
Thank You Eliot Rosewater by Kurt Vonnegut
Diamond Age by Neal Stephensen
Mother Night by Kurt Vonnegut
Thinking Fast and Slow by Daniel Kahnemann
Ingenius by Jason Fagone
All the World is Lost by Patrick Hipp
Eloquent Javascript by Marijn Haverbeke
A Feast for Crows by George RR Martin
A Dance with Dragons by George RR Martin

6. Movies / TV
This year I watched and enjoyed
True Detective
The Lego Movie
House of Cards
Regular Show
Wolf of Wall Street
Django Unchained

7. Space Bounce Game
A bunch of us at RJMetrics volunteer to spend time mentoring 8th graders from Philadelphia schools. We built Space Bounce with the kids during our fall session. It uses a great javascript library for making HTML5 games called Phaser.

Space Bounce
Space Bounce

8. The Report Builder
I spent 2014 at RJMetrics writing the best chart builder in the universe. I’m super proud of what we accomplished and how much we improved the experience of building charts.

RJMetrics Report Builder
RJMetrics Report Builder

9. Viz War @ Philly Tech Week
My colleague, Austin Lopez, and I participated in Philly Tech Week’s Data Viz War and we won Best Pro Team for our NCAA tournament visualization.

NCAA 2014 Dendrogram
NCAA 2014 Dendrogram

10. Monument Valley
I didn’t play too many new games this year, but I enjoyed Monument Valley with Sasha and Owen. You help guide Ida through a beautiful, Escheresque world. It reminded me a lot of Sword and Sworcery.

Monument Valley
Monument Valley

Read about my previous years
Best Things This Year (2013)
Best Things This Year (2012)
Best Things This Year (2011)

Presentation on Data Expression

Here’s a link to the presentation I gave on October 30th at the Digital Analytics Association Symposium on Data Visualization and Expression. It’s improved since I gave my first talk on the subject at IgnitePhilly 11.

One of my goals this year was to do more public speaking at bigger events. I’m glad I did it, but preparing for this talk drained me mentally in the weeks leading up to it. In retrospect I should have learned more about the association and the speakers. I think it would have mitigated some of my nervousness. It’s important to push the limits of your comfort zone and giving this talk definitely expanded mine.

I’m not sure what’s next for me in public speaking, but I’m planning a blog post on what Data Expression means and how I think it differs from Data Visualization.

Here are some of my favorite tweets from the event.

2014 Digital Analytics Association Talk on October 30th

I’m excited to be giving a talk on Data Expression at this year’s Digital Analytics Symposium in Philadelphia.

Some information about the event:

Thursday, October 30, 2014
12:30pm – 6:30pm
University of Pennsylvania Houston Hall
3417 Spruce Street
Philadelphia, PA 19104-6306

Digital Analytics – Art, Science or Both?

Stitching together the infrastructure, systems, methods and processes to find and gather vast amounts of digital data from disparate sources can require skills not unlike those of a scientist.

Transforming that data into compelling, actionable storylines, replete with elegant data visualizations that can motivate organizations to act, can require skills not unlike those of an artist.

Ingenious Review

In America there is no shortage of digital inventors, tinkerers, hackers, and dreamers. Companies form around the most ridiculous ideas, test them in the marketplace, often with unpredictable and surprising results. It’s an exciting time for innovators in the information age.

Go back one hundred years and you’ll find a similar state in the automobile industry. Look at this surprisingly long list of defunct automobile manufacturers!

Seven by Illuminati Motor Works, one of the teams competing for the Automotive X Prize
Seven by Illuminati Motor Works, one of the teams competing for the Automotive X Prize

Is there a peculiar combination of cleverness, determination, and blind optimism that compelling Americans to push the boundaries of convention and create great things? Or has America lost its ability to hack on cars forever?

Edison2's Very Light Car
Edison2’s Very Light Car

Jason Fagone’s book Ingenious: A True Story of Invention, Automotive Daring, and the Race to Revive America follows several teams competing to win the Automotive X Prize, a $10 Million cash award to someone who can demonstrate a production ready vehicle capable of traveling 100 miles at 100 MPGe or better. The contestants are not skunkwork projects at GM or R&D teams from Ford. They’re people building cars from scratch in their garage. They’re small racing teams using their expertise to increase MPG instead of MPH. There’s even a team of high school kids from West Philly.

Working in manufacturing for most of my career, I was not surprised to find there are still many car hackers out there. Without spoiling anything, the most frustrating part of Ingenious is how well the teams were able to do and how little anyone seemed to care about what they were doing. Government and industry pays lip service to the prize and the ingeniousness of the teams, but fuel economy growth in vehicles is still flat. I don’t think anyone believes industry will be held to the proposed standard of 54.5 MPGe by 2025.

But industry put at least $1 Million into an app that lets you send only the message, “Yo” to your friends.

I enjoyed Ingenious. It pairs very well with My Life and Work by Henry Ford, which captures the spirit of the early 20th century automobile industry (Note: Ford’s autobiography is a manufacturing masterpiece, but skip the anti-Semitic chapters that start around #12)

VizWar @ Philly Tech Week 2014

Fellow RJMetrician Austin Lopez and I competed in a data visualization contest/hackathon called VizWars at WHYY last night. It was hosted by Acumen Analytics and Tableau.

NCAA 2014 Dendrogram
NCAA 2014 Dendrogram

The goal was to come up with the best visualization from either NCAA Basketball tournament statistics or Earthquake data they provided. This is what we came up with.

The D3 animation shows the progression of each round in a clustered dendrogram. Each team is colored to make it easier to follow their path through the tournament. We won Best Pro Team, although we would have loved another 20 minutes to get more things working. Our goal was to set the line thickness to various game metrics like point differential, # of fouls, turnovers, etc.

Out of 5 teams, we took the title of Best Pro Team (of which I think there were only two).

Announcing Lineage: A Family Tree Data Expression Engine

Lineage screen shot

Last week at the Philly JS Dev meetup, I demoed a new project I’ve been working on called Lineage.

It all started as a way to try and visualize all the research my Aunt Peggy has done over the last 50 years. Using D3, I was able to build a way to search, filter and analyze thousands of family relationships in a network graph. It even lets you start at a given year and watch the family grow and connect as the years tick by.

See a live demo of Lineage here.
I’ve open sourced it on github.
My slides from the Philly JS Dev Meetup

I wanted the project to be useful, but also stand alone as art, so I kept the user interface as minimal as possible and included an option for music during play mode. If you like the music you can download it on Soundcloud. I’m happy with how it turned out. An enormous amount of gratitude goes out to Peggy Haley for doing this research over the last 50 years.

Note for anyone who is actually in the tree, I have done very little in the way of making sure this data is accurate. If you find anything incorrect, email me and I’ll try and get it fixed in the future.

Best Things This Year (2013)

Anecdotally, it seems like a lot of people shook up their lives in 2013. I certainly did. Here are the best things that happened to me in 2013.

1. RJMetrics – In March I started working at RJMetrics, an e-commerce data analytics firm in center city Philadelphia. Leaving Garvey Corp was a difficult decision, but being a developer at of the best SaaS data visualization companies in the world has been amazing.


2. The Bulldog Budget – I worked with Philadelphia City Controller candidate Brett Mandel to implement his vision for the city’s open data future. We built a visualization tool using D3 and MySQL that gives both a high level view of the General Fund budget, but still allows you to drill down to individual transactions. A lot of people got excited about it and I think it made an impact in Philadelphia. It also influenced similar projects in Italy and Oakland, California.

Treemap of the Philadelphia General Budget
Treemap of the Philadelphia General Budget

3. Coffeescript – I was skeptical at first whether Coffeescript was a worthwhile abstraction from Javascript. After 9 months of using it at RJMetrics, I’m a fan. Here’s why:

  • Cleaner syntax: No parenthesis, braces, or semi colons. The time I save writing console.log instead of console.log(); has been worth the switch.
  • Improved workflow: Continuously running the Coffeescript to Javascript compiler alerts me of stupid mistakes (ie. ones that won’t even compile) faster than finding them after I’ve loaded the browser.
  • Existential operator: I can’t count the number of bugs I’ve fixed with one character are due to Coffeescript’s great ? operator, which checks to see if it’s null or undefined before proceeding. For example, if in javascript you previously did this:

    if (player != null) {

    In Coffeescript you just write:


  • Comprehensions: The Coffescript.org docs say you almost never have to write a multiline for loop and they can be replaced by comprehensions. For example:

    for (player in players) {
    if (player.health < 0) { player.kill(); } }

    In Coffeescript you can write:

    player.kill() for player in players when player.health < 0
  • I'm looking forward to getting better at Coffeescript in 2014.

4. AngularJS - I don't want to develop another interactive UI without AngularJS.

5. Bought this swingset from craigslist - With the help of my friend Mike and my father in law, we disassembled, packed it up and a U Haul, and reassembled it in my back yard. I'm amazed it went back together so well.


6. Read 13 Books - My morning commute afforded me more reading time. Here's what I did with it.

  • Bonfire of the Vanities by Tom Wolfe
  • Ready Player One by Ernest Cline
  • Look at the Birdie by Kurt Vonnegut
  • The Trial by Franz Kafka
  • A Beautiful Mind by Sylvia Nassar
  • Boys from Brazil by Ira Levin
  • Game of Thones (books 1-3) by George RR Martin
  • Life of Pi by Yann Martel
  • Timequake by Kurt Vonnegut
  • How to Win Friends and Influence People by Dale Carnegie
  • Thinking Fast and Slow by Daniel Kahneman

7. Public Speaking - I got way out of my comfort zone this year and did some public speaking at Ignite Philly and Technically Philly's Civic Hacking Demo Night.

8. Built the Gonginator

9. Spark Program - Some coworkers and I participated in an apprenticeship program for Philadelphia school kids where we spent 2 hours a week with 8th graders interested in programming and computers. Together we built a game!

That's as much as I could remember from 2013. Check out my lists from 2012 and 2011.