My tinkering with kanban

This post briefly describes kanban in terms of personal planning and management, and then explains how I combined a kanban tool (Trello) with Google Sheets to give me an easy way to record the things I get done so I could review them and reflect on how I’ve been doing.

Not nearly enough about kanban

Kanban (“sign” or “billboard” in Japanese) began as a system for improving efficiency in manufacturing by making tasks and progress visible. Here’s a simplified kanban board:

A kanban board showing tasks in three groups: to do, in progress, and done.
A simplified kanban board from Wikimedia Commons

The “to do” column, sometimes called the backlog, shows all the tasks that need to be done. The next column is “in progress.” One rule of kanban is to limit the work-in-progress, because you can only do so many things in, say, a week. At the beginning of a work cycle, then, you move cards from “to do” to “in progress” based on your capacity. As tasks are done, you move them to the “done” column, and you’re now able to move another task from “to do” to “in progress.”

There’s a lot more to this, but since I’m not a manufacturing plant, for me it was extremely helpful to read Personal Kanban by Benson and Barry.

The following video explains kanban in terms of software development. You can cheat and watch just the segment from about the 1:00 mark to about the 2:15 mark; that’ll be plenty for this post’s purposes.

A kanban board to plan

I’d seen coworkers using Trello on projects at my last job, so I got myself a free account. Trello has three levels: a board (think of this as a high-level category), a list (a stage in progress), and a card (a specific task). The following image is a board I set up for a trip I’d like to take.

A kanban board made in Trello, with three lists labelled backlog, in progress, and done.Here’s the same board with some cards added.

A Trello board showing three tasks under backlong, and one task under in progress.At the beginning of this imaginary week, I looked at the backlog — the pool of all cards — and dragged the “check visa requirements” card to the “in progress” list.

In real life, I might set a work-in-progress limit of four cards, forcing myself to prioritize items from the backlog.

When I finish a task, I drag it to the “done” list. Over time, that’ll be a big list, and it’ll be hard for me to see what I did when. One recommendation from Personal Kanban is periodically to review your accomplishments and reflect on your process, which is harder with a constantly growing list.

Laziness, the road to efficiency

I knew I could create a spreadsheet to record those completed tasks somehow, but I didn’t want to be copying and pasting all the time.

So I poked around in IFTTT (“IF This Then That”) to see if I could create a little app to do the grunt work for me.

Of course I could. The start of an IFTTT app is the trigger, the thing that kicks off an action. In IFTTT, when Trello’s part of the trigger, you spell out which group of Trello boards, which individual board, and which list on that board you’re talking about, as you can see in the example on the right.

In other words, the trigger is “if I drop a card here…”

That’s the IF THIS. The THEN THAT is an action. Trello’s already set up to take action with Google sheets. In fact there were two or three, and one was “add a row to a spreadsheet.”

Details from IFTTT for adding a row to a spreadsheetClick the image on the right to see the default setup in IFTTT for adding a row to a spreadsheet based on a Trello card.

The format confused me quite a bit, and I had to play with it for a while to figure out what the options were, and which ones I needed. All those labels in the formatted row section, for example, are the names of fields used by Trello; you can pick from them to make column headings in Google Sheets.

What the action section of IFTTT is really asking is:

  • What sheet you want to add rows to?
  • What do you want to put into each row?
  • What’s the path to the sheet?
The action portion of an IFTTT app, which will create a new row in a spreadsheet when a Trello card is moved to the DONE list.
The actual “add this stuff in the new row” action I use.

I made a lot of practice cards, dragged them around, checked the results, moved columns in the sheet, and so forth.

What did I end up with? A spreadsheet cleverly named COMPLETED. In the “formatted row” section, you specify the names of the columns, and those names come from the field names in Trello.

I was interested in when a card moved to “done,” what board it was on, the card’s title (the short description on the Trello card), and the URL in case I ever wanted to see it again.

Strictly speaking I didn’t need to specify the done list, since the whole app is about cards that got moved to a done list, but I put it in in case I ever want to add other lists as well.

The results

If you don’t have a spreadsheet named COMPLETED, IFTTT will create one the first time the app gets fired. I made the sheet ahead of time and practiced with dummy data. That seemed a lot easier.

What does the record look like?

A Google sheet showing data imported from Trello via an app in IFTTTThe first five columns were spelled out in IFTTT. Because Trello’s timestamp (date) is so clumsy, with help from an online colleague I learned the formula you can see in the formula part, which parses the long-form date and turns it into a more searchable, sortable one.

Details on making it work

At the beginning of the month, I (try to) go to the spreadsheet and create my own monthly archive. I copy the completed items and paste them onto a new, month-labeled sheet. On the main sheet, I then hide the rows I’ve just copied, so I’m ready to start recording the new month’s completions.

Usually, looking at a month at a time is better for me. If I wanted a longer slice of time, I can unhide rows on the main page and look at whichever I want.

I haven’t figured out how to automatically insert my date-simplification formula mentioned earlier, so every now and again I visit the sheet and just copy the formula to rows that don’t yet have it.

I have half a dozen kanban boards — one for professional concerns, one for personal development, one for household items, and so on. It’s a way to compartmentalize things; it works for me. That’s why, in the BOARD column of my spreadsheet, I have conditional formatting that changes the color of a cell based on the name of the board it came from. It’s a little stunt that I like, and I can use those labels to filter the display as well.

 

Singing in Gaelic, thanks to Sibelius

I started to write about learning new software. But no one learns software for its own sake. Software’s like a second language: you learn it because you have a goal. Even the well-intended “everyone should know how to code” silliness has a goal, which is less about coding and more about something like logical thinking, understanding complex systems, or producing a result that the coder finds worthwhile.

I decided I wanted to write about two things: why I wanted to learn this particular software, and how I’m not learning the way the program’s developers think I should. I’m not even learning the way I might have thought I should. It’s going to take me a couple of posts; this is the first.

What I wanted to learn

Last year, I joined the Victoria Gaelic Choir. Gaelic (Gàidhlig, Scottish Gaelic) was the language of my ancestors and even my grandparents. I know only a few words and phrases, but I’ve know Gaelic singing for a long time–and if you don’t, there’s a list at the end of this post to get you started.

As I said last year, this opened a clutch of challenges. I needed to learn lyrics in a language I don’t speak–one whose spelling and pronunciation aren’t always easy for an English speaker:

O seinnidh mi dàn do dh’eilean mo ghràidh
(O, I’ll sing a song to the island that I love)

“oh shay-nee mee dawn doh yell-un mo gr-eye…”

And before the lyrics, I needed to learn the melody for many songs I’d never heard. (Tune first, words second; trust me.) Even for those I did recognize, I needed to learn the tenor part.

I can pick out a tune or a tenor line on guitar, but that’s not a practical way to learn a choral piece. I seriously considered buying an electronic keyboard, but my son (thank goodness) suggested I experiment with a 30-day trial of Sibelius First.

avid_sibeliusfirst

With Sibelius, I know what I’m doing. Or what I should do.

This $120 package lets you compose music on your computer and share it with others. I didn’t plan any composition, but the features that caused my son to suggest Sibelius include the ability to scan printed sheet music, to create an editable digital score, and to export sound files.

Sheet music to an mp3? Does it work?

Let me show, rather than tell. That line of Gaelic above is from Uibhist Mo Ghràidh (Uist, My Love), an archetypal Gaelic song about the island of North Uist, where my mother’s people came from.

O seinnidh mi dàn do dh’eilean mo ghràidh
far an d’fhuair mi m’àrach nuair bha mi nam phàisd’
Far am bi mo chrìdhe gu deireadh mo là
ann an Eilean Uibhist an eòrna.

O, I’ll sing a song to the isle of my love
where I was raised as a child
where my heart will be to the end of my days
In the Isle of Uist of the barley.

If you want some idea of how I felt when everyone else in the choir knew this, listen to Linda NicLeòid — Linda MacLeod — singing. (I’ll resume below below the video.)

A recording like this demonstrates the melody, and from Wednesday night choir practice I had a nodding acquaintance with the tenor line. But “once a week” takes the idea of spaced practice to an extreme. I needed to hear the tenor part on its own, a lot, so I could practice.

I chose Uibhist Mo Ghràidh for this post to show what I was able to do after working with Sibelius off and on for about three months. Starting with a good copy of the sheet music, arranged for soprano, alto, tenor, and bass:

  • I scanned the music into Sibelius.
  • I edited a few errors the scan didn’t quite catch.
  • From the digital version, I exported audio files for each part and for the four parts together.

Sibelius allows me to choose instruments–which means I can make the audio sound like piano, or like human voices. I went the latter route. Here’s the full choir audio, and here’s the tenor part.

The audio comes out as .wav files. It takes me less than a minute to convert them to mp3s, which I can then send to my phone or share with other members of the choir.

That’s where I went. Next time: how I got there.

It’s taken me a while to write this post, because I kept rethinking what it was I wanted to learn and how I could explain the context. If I had to summarize my own learning goal, it’d be “have the tune for the tenor parts to Gaelic songs I want to sing.”  That’s an oversimplification, but it was also a 14-word target I wanted to hit.

It took some effort before I could hit it, and the process of that learning is what will be in the next post.


Those Gaelic songs I promised

Raylene Rankin
(Click for an appreciation from the Halifax Chronicle Herald)

Song may be one of the most enduring ways to preserve and transmit a language. Here are a few examples–the links in the song titles lead to a recording of the song. When I’ve been able to find an online translation into English, I’ve put a link for that as well. (The links are set to open in a new window.)

Working at learning, or, pluggin’ for results

When I read about the Organize Series plugin for WordPress (a focus of Monday’s post), I thought, “This could do it.”

No I didn’t.  I don’t know about you, but I rarely think to myself in complete sentences.  Phrasing like this is how we capsulize a more complex experience.  What I believe was going on at the time was something like this: I had a situation I wanted to change (the way I used to manage a series of posts here on my blog no longer worked). And the Organize Series plugin at first glance looked like it could accomplish at least two things:

  • Provide automatic navigation between posts in a series (so I wouldn’t have to hard-wire the links).
  • Display a list of all the posts in a given series (for me to use as a summary or as a table of contents for the series).

If I’d thought about it longer, I might have articulated another goal: have some way to list all the different series I have.  But I’m not usually that strategic.  Still, what I came up with (provide navigation, display a list) acted as my critical-to-quality elements.  CTQs were widely used at GE when I worked there; I use that acronym partly tongue-in-cheek and partly to highlight informal criteria.

So, I put Organize Series to work, and within 10 minutes I had automatic next/previous navigation for posts in a series, along with an indication that they were part of a series:

No, this isn't the entire post.
(You can click the image to see the entire post.)

When I was still considering whether to use the plugin, I said to my wife, “Wouldn’t it be great to know how to write a plugin?”  On reflection, I realize this statement was another capsulization–a series of them, nested inside each other.  “Know how to write a plugin” really means:

  • “Know how to write a plugin” really means “write a plugin that works….”
  • Which in turn means “write one that produces results…”
  • Which means “write one that people use to accomplish things that matter to them.”

To me, this is an important distinction for workplace learning: You can learn on your own for your personal satisfaction, and if you’re satisfied, then that’s a sufficient result.  In the workplace, though, you’re part of a larger group (even if that group is you and one individual client), and so the result has to matter within that context.

What’s this got to do with my plugin tinkering?

Think of it as my own workplace learning.  At this point, I was still some distance from my (loosely articulated) end state.  I hadn’t moved much toward my other CTQ of displaying a list of all the posts in a series. In fact, I didn’t yet grasp all the options in the plugin, let alone know how to make them work in a way useful to me.

I only put this here to scare you a little.
About 5% of the info from the plugin's page of options

But…In my first 15 minutes with the plugin, I’d achieved a result that I found valuable.  That left me more willing to experiment–which, put another way, says I was somewhat more willing to spend time trying to achieve the next valuable result.

To me, this is a core principle for any type of workplace learning: formal or informal, face-to-face or virtual.  I need to be able to accomplish something that looks to me like real work–produce something that I see has having on-the-job value.  And I need to do that sooner rather than later, which is why twenty minutes on introductions, half an hour on expectations for this workshop, and twenty minutes on learning objectives will invariably drive me to teeth-clenching frustration. Or to eating more of those lowest-bid-hotel pastries.

One of the unexpected outcomes of achieving an initial on-the-job goal is that you end up better able to visualize other goals.  In a sense, learning leads to new problems (or opportunites) because you’re better at grasping the current situation and at visualizing different ones.

In the course of my experimenting with the Organize Series plugin, I did find at least one way to display a list of all the posts in a series.  I can make a box like this appear alongside the title for each post:

Example of a 'series post list box' - a box listing posts in a series
The posts in my most complex series

You can click that image if you’d like to see the first post in the series, though I’ve turned this “series post list box” feature off for now, until I learn how to control the way it displays.  Having managed to produce it, though, I’ve picked up several more goals for myself.  I was about to write “learning goals,” but I want to stress that they’re all tied to accomplishment.

  • I want to learn how to use code that’s part of the plugin to, for example, display a list of posts like the last example where and when I want it.
  • I want to find out how to modify the plugin’s template (the tool it uses to display the full text of all the posts in a series).
  • I may even want to learn how to modify the PHP or CSS code to make things happen.

That last is quite a goal for someone who doesn’t really know how to program.  But my various experiments to date, and especially the things I see as successes, have taught me that I can learn to successfully modify small bits of PHP code and achieve relatively high-value results.

So I’m accomplishing what looks like real work to me.

 

A series of learning events, or, keeping up with the past

Dave’s Whiteboard marked its fifth anniversary last month.  (No, I didn’t notice, either.)  You might not think it, given my recent output, but my Whiteboard means a lot to me — so much so that whenever I think about changing the theme (the package of files that controls the appearance) I end up considering one that looks much like what I’m currently using.

Looked real good at the timeSticking with what I’ve had has more and more often meant I run into technical problems.  My current theme is out of date in several ways–for example, it’s not widget-aware.  That means is that I can’t take advantage of simple ways to customize and control the appearance.

I’ve occasionally written several posts on a single topic (a series of posts).  At the time I used a WordPress addon (a plugin) that automatically added previous/next links so that a reader could work through a series without worrying about date or about intervening but unrelated posts.  That same plugin created a table of contents as well, so you could tell where you were in the series.

That plugin stopped working a few months back; I have no idea why.  The effort to manually input the links–to hard-wire them, so to speak–was more than I was ready to expend.  Still, I plan to write a series or two in the coming months, and I wanted to have a low-maintenance way to present all my series.

So this past weekend I started experimenting with the Organize Series plugin. I tested to see if it could link the three posts in my series about the book Improving Performance, by Rummler and Brache.

And it could.  What’s more, with a $15 add-on, I’m able to use a little bit of code and automatically generate a list of posts in a series, like this:

Improving Performance (the book)

[post_list_box series=65]

I had to do some tinkering, and I had to purchase a $15 add-on for the plugin, but I’m content so far: I’ve accomplished my short-term goal of making each of my series work like a series again–without a lot of hand wiring.

That list of posts in the Improving Performance series, for instance: to make it appear here after installing the Organize Series plugin and the add-on, I inserted the following code into my post:

[ post_list_box series=65 ]

Enough WordPress mumbo-jumbo.  I’m going to revisit this from the perspective of learning on the job.  My hunch is that there’s a kind tradeoff that a person’s willing to make when he has a problem to solve (or an opportunity to seize).  What going into figuring worth is the amount of effort expended, and the value of the results… as seen by the person with the problem or opportunity.

CC-licensed photo by Craig Bennett / theclyde.

How to Save Google+ Items to Evernote

(I haven’t figured out how to embed images in a Google Plus post so they show up where I want, rather than as a gang of photos at the bottom.  I also haven’t posted here in a while, so I thought I’d ignore the figuring and sneak in some posting.)

Here’s an easy way to save items from your Google Plus stream to Evernote.

Step 1: Get your Evernote email address (the one Evernote assigned to you when you signed up.)

Sign onto Evernote.
Click Settings.
At the bottom of the Settings page, you’ll see
Emailing to Evernote.
That’s where you’re find your Evernote email address.

Step 2: Create a new Google+ circle.  (I named mine “Evernote.”  You go wild like that, too.)

Step 3: Click “add a new person.” Enter your Evernote email address.

Enter your Evernote email address.

 

Step 4: Enter a name for this new “person.”

Enter a name for the Evernote email address

 

Step 5: You’ll see the new person in the new circle.  (You can add others, but I didn’t.)  Be sure to click “create circle.”

Create the new circle.

 

That’s it for setting up the circle.  Here’s how you use it:

When you find an item in your Google+ stream that you’d like to send to Evernote, click the Share button, then select your Evernote circle.  (I made Evernote the first in my list of circles, mostly so it’d show up first in the screen shot below.)

Sharing an item in your stream

 

Google+ reminds you that someone in that circle isn’t yet on Google+.  They mean “your Evernote email isn’t,”  which is true.  You can share the item with additional people or circles, but I’m trying to stay simple here, so I just click Share.

Confirmation (part one)

 

I don’t know if Google+ is being solicitous or just fretful, but when you do click Share, you’ll get a second reminder that someone you’re sharing with isn’t on Google+ and will have to settle for email.

 

Confirmation (part two), or, are you sure you're sure?

 

Within a minute of my having shared the item in Google+, Evernote had it in my default notebook.

 

How it looks in Evernote

 

The only quibble I have here: the item received by Evernote comes from me — I was sharing stuff in my stream with Evernote, right?  And so, if it’s an item that someone else posted (one that was in my stream, but not originally from me), there’s no indication in Evernote of who originally shared the item.

If I click that “view or comment” link in the Evernote note, I will see the item as it originally appeared in my stream — with, in this example, a link to Jane Bozarth, who originally shared the item.

 

Back to the source

 

I’m grateful to Beth Kanter, who’s shared a number of useful Google+ tips, and to Vikki Baptiste, whose comment on one of those tips led me to search for the details of how to do this.