Blockstack: Windows Toolbox

It’s a good thing I got on the Blockstack Slack, because the approach I was taking was not sustainable. Sure, you can use windows subsystem for Linux and get pretty far along. I feel like I did. But once I ran into troubles the Slack team, Aaron specifically, helped me out by pointing to the just recently created Windows installer. It sets up a set of docker containers that run the Blockstack core, the browser, and a proxy service to allow you to use the browser on your windows machine without any problems*.

So I went through the setup of that and now have a fully functioning Blockstack browser on my windows box. I’m not sure if the windows installer is really ready for prime time, but I got the impression that the team would appreciate help tracking down issues with it. I’m sure if you join the Blockstack Slack and want to check it out, they’ll make it happen.

* I did have one problem as I tried to get it working, and it actually turned into an addressable issue that I filed against their packaging repository. The browser and the core communicate with each other using a password to keep things secure. But because of how that password is passed, there are certain characters that are not allowed. After we tracked down that that was keeping my browser and core from communicating with each other, I got things working fine and filed the issue to have that documented, so it doesn’t trip others up in the future.

Blockstack: Buying My First Bitcoin

I’m going to need funds to participate in the Blockstack ecosystem, and right now, it’s built on Bitcoin. So it’s time to buy myself some Bitcoin.

I decided to go with Coinbase, mostly due to name recognition. As it turns out, setup is pretty easy. Just pick a username/password and a way to fund your account. I went with linking a debit card, because it’s faster. Giving them bank routing info would be cheaper and slower. So I will set that up for future transactions.

Coinbase has two factor authentication built in, and has you link your phone number to the account before you even setup payment information, so they can enforce that security.

Once it was all arranged, I bought quite a small amount of bitcoin. In other words, it’s really not worth trying to crack into my account. Now, I should be able to transfer some of those bitcoin over to my Blockstack account in order to handle the transactions that will need to occur as I setup my development environment and flesh out an actual application.

Blockstack: Getting on Slack

The Blockstack team has a Slack instance set up for communicating. I know I’m going to need help getting my onename registered name transferred into my personal wallet, so I can do development. So I decided to jump on so that I could ask my questions, and be a part of the conversation. To do that you just have to give them an email address and an explanation of why you want to join their Slack. Once again, the response was nice and quick.

Besides getting support, it’s also cool to see that Blockstack is fully transparent about their day to day work. You can see their daily scrum notes, design discussions, engineering decisions, and work on Blockstack apps in the various public channels.

Blockstack: Registering a Name

Time to get ourselves a name. As we learned yesterday, we could get a name by registering one ourselves, using our own Bitcoin wallet. But I don’t have one yet, and besides, the Blockstack team has built Onename.com to make it free to register a named id. The price to register the name still must be paid in btc, but Onename is sponsoring names to help bootstrap the Blockstack ecosystem. So we’ll do that, and then work through how to transfer that name for use in the Blockstack CLI later.

Obviously, we’ll start at onename.com.

The UI is very simple and clean. I just signed up for an account, entering my email address and a password.

I was then immediately prompted to choose a name. As I already know I want rockhymas.id, I chose that.

At this point, Onename gave me the option to save my Onename backup file to Dropbox, or to download it. I went with Dropbox, to make my life easier.

Next I set up my Onename profile, with an image, name, location, and website.

Finally, Onename lets you verify your identity on Twitter, Facebook, and Github. The process here is pretty straightforward. You claim ownership by posting public statuses provided by Onename in each service using your account. Then point Onename at those statuses, so it can verify that you posted the status they provided and then you’re all verified.

Finally, the name registration has to go through. Onename tells you it will take about 12 hours for that to happen. After waiting 24 hours, I contacted support to see if I could find out why it was taking so long. Support was really responsive, and got back to me within half an hour to let me know that registrations can take longer and to give it another couple days. After waiting over the weekend, still no luck. Contacted support again, they escalated to the dev team and within a day the registration had gone through. It sounded like other registrations may have gotten backed up as well. Yay for bleeding edge software!

So, at this point, I have rockhymas.id registered in Blockstack. Whew! The picture above comes from the Blockstack Explorer, which is a little tool that makes it easy to see blocks on the Blockstack virtual chain, and any associated names, including their history. You can check mine out at https://explorer.blockstack.org/name/rockhymas.id.

Blockstack: Exploring the CLI

Ok, it’s day two. Time to play around with the tools we installed.

We’ll be using the command line interface to lookup names, price names, find our deposit key, see which names we own, and get more information on names registered in Blockstack.

I don’t have my own name yet, but we can lookup other names registered with Blockstack, like so:

$ blockstack lookup fredwilson.id
{
    "profile": {
        "@type": "Person",
        "account": [
            {
                "@type": "Account",
                "identifier": "fredwilson",
                "proofType": "http",
                "service": "twitter"
            },
            {
                "@type": "Account",
                "identifier": "fred.wilson.963871",
                "proofType": "http",
                "service": "facebook"
            },
            {
                "@type": "Account",
                "identifier": "1Fbi3WDPEK6FxKppCXReCPFTgr9KhWhNB7",
                "role": "payment",
                "service": "bitcoin"
            }
        ],
        "address": {
            "@type": "PostalAddress",
            "addressLocality": "New York City"
        },
        "description": "I am a VC",
        "image": [
            {
                "@type": "ImageObject",
                "contentUrl": "https://s3.amazonaws.com/kd4/fredwilson1",
                "name": "avatar"
            },
            {
                "@type": "ImageObject",
                "contentUrl": "https://s3.amazonaws.com/dx3/fredwilson",
                "name": "cover"
            }
        ],
        "name": "Fred Wilson",
        "website": [
            {
                "@type": "WebSite",
                "url": "http://avc.com"
            }
        ]
    },
    "zonefile": "{\"avatar\": {\"url\": \"https://s3.amazonaws.com/kd4/fredwilson1\"}, \"bio\": \"I am a VC\", \"bitcoin\": {\"address\": \"1Fbi3WDPEK6FxKppCXReCPFTgr9KhWhNB7\"}, \"cover\": {\"url\": \"https://s3.amazonaws.com/dx3/fredwilson\"}, \"facebook\": {\"proof\": {\"url\": \"https://facebook.com/fred.wilson.963871/posts/10100401430876108\"}, \"username\": \"fred.wilson.963871\"}, \"graph\": {\"url\": \"https://s3.amazonaws.com/grph/fredwilson\"}, \"location\": {\"formatted\": \"New York City\"}, \"name\": {\"formatted\": \"Fred Wilson\"}, \"twitter\": {\"proof\": {\"url\": \"https://twitter.com/fredwilson/status/533040726146162689\"}, \"username\": \"fredwilson\"}, \"v\": \"0.2\", \"website\": \"http://avc.com\"}"
}

I want a name, so I can see how much it would cost by using the price command (at the time of this writing, registering rockhymas.id would cost me about $40 in btc):

$ blockstack price rockhymas.id
{                                                       
    "name_price": {                                     
        "btc": 0.00025,                                 
        "satoshis": 25000                               
    },                                                  
    "preorder_tx_fee": {                                
        "btc": 0.0028148,                               
        "satoshis": 281480                              
    },                                                  
    "register_tx_fee": {                                
        "btc": 0.0028148,                               
        "satoshis": 281480                              
    },                                                  
    "total_estimated_cost": {                           
        "btc": 0.0115092,                               
        "satoshis": 1150920                             
    },                                                  
    "total_tx_fees": 1125920,                           
    "update_tx_fee": {                                  
        "btc": 0.0056296,                               
        "satoshis": 562960                              
    },                                                  
    "warnings": [                                       
        "Insufficient funds; fees are rough estimates." 
    ]                                                   
}                                                       

If I wanted to buy it, I would need some btc in my account. To see which account the btc would be withdrawn from, I can use the deposit command:

$ blockstack deposit
{
    "address": "38FDVrfrexyoG3JNTCQkh8dpJbHT44YFuQ",
    "message": "Send bitcoins to the address specified."
}

The names command lets me see which names I currently have registered to this wallet (none, of course):

$ blockstack names
{
    "addresses": [
        {
            "address": "3MhaGGag9bKUM1yekMh24WGcteg3qAvgyo",
            "names_owned": []
        }
    ],
    "names_owned": []
}

And I can see more info about a given name’s registration using whois:

$ blockstack whois fredwilson.id
{
    "block_preordered_at": 374084,
    "block_renewed_at": 374084,
    "expire_block": 489247,
    "has_zonefile": true,
    "last_transaction_height": 374084,
    "last_transaction_id": "2986ec31ec957692d7f5bc58a3b02d2ac2d1a60039e9163365fc954ff51aeb5a",
    "owner_address": "1F2nHEDLRJ39XxAvSxwQhJsaVzvS5RHDRM",
    "owner_script": "76a91499e7f97f5d2c77b4f32b4ed9ae0f0385c45aa5c788ac",
    "zonefile_hash": "1a587366368aaf8477d5ddcea2557dcbcc67073e"
}

There is much more to the command line interface, right now we’re just dipping our toes in the water, figuring out the basics. Next up, let’s register a Blockstack name in the .id namespace.

Blockstack: First Steps

So I’m diving headfirst into Blockstack, because, well, why not?

The idea here is that Blockstack is building a new operating system on top of the blockchain technology, which was first and most famously used as part of Bitcoin.

A blockchain is a secure, open ledger of records updated via distributed consensus that removes the need for a centralized (i.e. “single point of failure”) authority. Bitcoin uses the blockchain to record transactions.

Blockstack is extending the blockchain in a few key ways. First, it introduces the idea of a virtual blockchain that sits on top of an existing blockchain. This allows changing the underlying blockchain, making Blockstack resistant to blockchain failure. Second, the blockchain tracks pointers to the actual data being tracked, rather than the data itself. This keeps the chain relatively small, while expanding the potential uses to large, internet scale applications. Third, like NameCoin before it, Blockstack uses the blockchain to assign human readable names to computer addressable locations. This provides secure identity and ownership of digital assets.

Ok, that was my best entry level summary of a new technology and company that I admittedly barely understand. How did I do?

Well, even if I botched that up, I still think it’s cool, so I’m going to document how I’m getting started with Blockstack. This is day one. Day one is all about installing the tools. Here are the steps I followed:

  1. Install the Windows Subsystem for Linux
    • Enable-WindowsOptionalFeature
      $ Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
    • restart Windows
    • run bash, which installs Ubuntu on Windows
    • Create root username and password
  2. Install Blockstack
    $ wget -qO - https://raw.githubusercontent.com/blockstack/packaging/master/repo-key.pub | sudo apt-key add -
    $ echo "echo 'deb http://packages.blockstack.com/repositories/ubuntu/ xenial main' > /etc/apt/sources.list.d/blockstack.list" | sudo -E bash -
    $ sudo apt update
    $ sudo apt install blockstack
  3. Install node.js
    $ curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
    $ sudo apt-get install -y nodejs
  4. Install the Blockstack browser
    $ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
    $ sudo apt install blockstack-browser
  5. Install regtest environment and integration test dependencies
    $ sudo apt install software-properties-common
    $ sudo add-apt-repository ppa:bitcoin/bitcoin
    $ sudo apt update
    $ sudo apt install sqlite3 bitcoind
  6. Test blockstack install
    $ blockstack info 

    This command failed with the error: “Failed to contact blockstack daemon. Please ensure that it is running with the ‘api’ command.” My next attempt was to start the blockstack daemon:

    $ blockstack api start

    This command also failed, with the error: “Wallet does not exist. Please create one with blockstack setup”. So I need to setup a wallet. Turns out there is a command for that as well:

    $ blockstack setup

    In doing this, it needs a password to protect your wallet. I saved that to my password manager, and also saved off new wallet information generated by this command.

    Now I could run

    $ blockstack api start
    Enter wallet password:
    {
        "status": true
    }

    And it works!

    And finally, I could run

    $ blockstack info
    {
        "cli_version": "0.14.4.2",
        "consensus_hash": "bc799939a8de6f258a55ea3ef9c32953",
        "last_block_processed": 482868,
        "last_block_seen": 482874,
        "queues": {},
        "server_alive": true,
        "server_host": "node.blockstack.org",
        "server_port": 6264,
        "server_version": "0.14.4.2"
    }

    And it works too!

So there you have it. We’re up and running with Blockstack. Next up, exploring the command line interface.

A Professional’s Home Office: 6 Keys to the Castle

My dad was the first remote worker I knew.

It began for him when I was just a kid. He started bringing home a portable computer that he could use to do work while he was a manager at Boise Cascade. This portable computer weighed more than today’s desktops do, and he carried it like a briefcase. The display was smaller than on a typical phablet, and only showed 80×25 characters. All in green.

It was the most amazing thing I had ever seen.

title-castleadventureHe installed Castle Adventure, and I played as often as I could. You’re trapped in a castle, and you need to find the keys that will let you out. It was my first introduction to computer games, and it was awesome.

A few years later, he started his own business, and built a home office where half of our deck had been, put nice bookshelves in, got a great desk, and a door to shut out the kids. I was only ten or twelve years old. From then until now he’s been working from home whenever he wasn’t traveling to teach courses.

So, no surprise, after a few years as a software developer at both large and small companies, I made the switch to remote work. As with most things, I’m still trying to catch up with my dad.

As a kid, I remember it being a really special experience to be invited into Dad’s office, where it felt so professional. I took myself more seriously there. And I felt like Dad took me more seriously too.

An environment for a professional

A professional home office is where a professional works.

Not an amateur.

A professional musician has the best instrument, but also plays in an excellent concert hall. The amateur plays on a street corner, or for friends at home.

As such, a professional who works at home must make his/her office a place where real work can be done. This is done by controlling the environment both outside and inside your office. It starts by recognizing that, when working from home, you are also your own office manager.

Let’s go over 6 keys that will get you out of a crappy home office and into your castle: a professional’s home office.

1. Outside

Control what is outside your office to be more productive inside your office

The first thing to look at is what is outside the office. Why does the outside matter?

What is just outside your office will affect your work life significantly. The outside is what you see through the windows. It’s where you go for a break from work. It’s where any noise may come from that will distract you. The outside is also where you keep the rest of your life, or at least try to. When there is no clear outside, it’s hard to keep your personal life from invading work, and vice versa.

A professional must separate his work from his personal life. Sure, it’s fun to share pictures of your cute kid, your new cat, or even your latest backyard project with your coworkers. But when it’s time to get work done, you want an “outside” for a crying baby, or a barking dog, or a messy room.

A bend in the hallway, or in other words, my home office
No outside, no inside. Pitiful.

My first little “bend in the hallway” didn’t even have an outside, unless you counted the kids bedrooms and bathroom that opened into the hallway. My more recent home offices were bedrooms, and so outside of them was the hallway and other living spaces in the house. Outside of my current office is a the backyard on two sides, and garage on a third.

Maybe your home is a small apartment. This can make it tough to have an “outside” to your office, especially if it has to just fit into a corner of your bedroom, or the kitchen nook. If you’re living alone, that may be workable, but even then your own mind will know that your workspace is not separated from your life, and that will make both work and life harder.

Some are driven to coworking spaces or even coffee shops. Why? Despite the noise, the commute, and the cost, the separation is still of greater benefit.

2. Boundaries

The boundary keeps work inside, life outside, and helps you transition between them

You need boundaries to keep the outside outside. Before you worked from home you had a natural boundary between your work life and your personal life: miles and miles of commute, and a completely separate building dedicated to work.

Give it up!
One way to have a boundary. (c) epSos.de

You need to keep a boundary there, or the your work and personal life will invade each other, making you less productive at both.

The hardest part of remote work is having your whole home as a constant source of distraction. A boundary reduces or even eliminates that distraction while you’re working.

In the early days of remote work, or telecommuting, or working from home, some held up the lack of a boundary between your office and your home as a good thing.

“Work from home, and you can take care of the kids while raking in the dough!”

“Telecommute to be able to multitask!”

“Mix and match your work and your personal life!”

While those ideals can be true in some senses, the fact is that to be a professional, you need a separate work space, free from interruptions, where your mind and your body can get into “work mode”. And that separation must be enforced with a boundary.

Without a boundary at home, you’ve just recreated the core problems of open offices in your own remote work office. And you took a remote work job in large part to escape the open office work style. By now everyone should know that cubicles are a death knell for productivity.

Nevertheless, it is all too easy to bring your job home and completely forget this principle, setting up a work area in the bedroom you share with your spouse, or taking a corner of the basement or family room.

Obviously the boundary will be different for a home office than one you drive to. The boundary in my first home workspace was just a long hallway. I asked my wife to keep our two toddlers at the other end of the house while I worked. Fortunately, I only used it at most once a month. It was not the ideal boundary.

Currently, my boundary is a fully walled off office that is part of my garage. The wall between me and the house is insulated, which greatly helps with the noise from the kids. The walls to the outside are too. The door to the garage can be locked, when I need to enforce the boundary.

Dmitry Dragilev called out the importance of separation between your work space and your home space in a great article on remote work productivity. In the section on separate spaces, he points out the value of a mini-commute that helps you transition to and from work.

Because I have to walk through my garage I get a little mental segue as I go both to work and come home from work. That transition is really helpful in keeping work and personal life separate, mentally. When I have to work after the kids go down, just going out to my office puts me back in work mode, even though I don’t normally work evenings.

Window ViewIn addition to keeping the outside outside, a boundary can also let some in.

On one wall I have a window, which lets me look into our backyard and see the grass grow, the leaves fall, the snow pile up, and the rare Idaho rainstorm.

It’s wonderful to be able to enjoy a window office without having to worry about seniority.

3. Inside

The inside of your office should put your mind in work mode

The inside of your professional office needs to be all about getting work done, and getting it done well. Just like you want to keep outside stuff outside, you want to keep work stuff inside. Entering your work environment should immediately trigger work related thoughts because of the things you see, the smells you smell, the textures you feel, the sounds you hear (or don’t hear); even the temperature of the air can contribute to the mood.

All of those elements that tell you that you’re in a work environment also signal to your family or living partners the same thing. When they interrupt they will know they are entering a place of work, and will be more respectful of what you are doing. Remember how I felt entering my dad’s office?

In addition, some things should stay inside your office and not leave. Since I don’t have ops responsibilities, Slack largely stays inside the office. Sure, the team can get me if I’m away, but I just don’t respond unless I’m in the office or it’s urgent. My work computers stay in the office. My newest machine is a pretty sweet laptop, which is great for when I’m traveling. But when I’m not, it stays in the office. I don’t bring work into the house.

The inside of your home office is what your coworkers will see when you are on video calls. And you should be on video calls. And you should be sharing the video from your side. When others can see your face it increases trust, easing communication.

Desk Setup
Progress!

A professional isn’t ashamed of their work environment or their personal appearance because it is up to par. Sure, you can be relaxed while you work, I’m not saying you wear a suit and tie to your home office.

But remote work is also not an excuse for hiding, being lazy, or avoiding others.

The best remote workers are those who can master the social conventions of remote communication, and video calls are one of the most important types of communication you will engage in.

I’ve made vast improvements to the inside of my office over time, but I also recognize that I’ve got some room to improve. The remaining principles of a professional home office all apply to the inside of it.

4. Space

Space gives your body room to move, and your mind room to think

Inside your office, you need space. My second home office was ridiculously tight, to the point that it affected my productivity. The room was a storage room, filled to the brim with boxes of stuff. I had a small desk, a big (at the time) 17″ CRT monitor, and the door would hit my chair when it opened if I wasn’t careful. Plus, no windows. It really was horrible, looking back on it now.

That said, for most remote workers, they start by just taking over a room, or half a room, in their own home or apartment. This is usually more than enough space, even if half of the room is being used for something else. Of course, if it really is being used for something else, it may be worth revisiting the concepts of boundaries, inside and outside. Maybe you can split the room in half with a permanent or temporary wall?

For the last year or so, my office has been our overflow storage area. And honestly, it was a mess. Half of the area was floor to ceiling boxes, buckets, and random junk. The other half was my work area. The work area half was not cramped, but to get through it I had to squeeze between the boxes in the other half.

A couple months ago, I took just ten minutes a day to declutter, throw stuff out, and reorganize. Within a few weeks, the space in the room really opened up. I now have a big open area where I plan to put a home gym. Thanks to the cleanup my office, while not overly spacious, feels plenty big enough.

I can stand up and pace if I need to think something through.

I can move around while on a call, to keep the creative juices flowing.

In a pinch, I can let my daughter sit on the couch and play games on the iPad.

Harking back to boundaries for a second, let’s talk about windows. A window can really open up the space in a room, even if the actual square footage remains unchanged.

A big part of having space in your office is mental. How much space do you feel you have? Do you feel cramped? A window on one wall (or on two) can remove that cramped feeling completely, and as long as the boundary to the outside still blocks out distractions, this will be a huge improvement over not having a window.

If possible, make it face in a direction where you won’t get direct sunlight. It’s also best if it is to the side. Right in front of you or behind you makes it harder to see your computer screen, makes video calls ugly, and can create more distractions.

5. Working Comfort

Working comfort is baby bear’s porridge: not too hot, not too cold

One thing I love about my office is walking into it in the middle of winter. I walk through the garage, which is freezing cold. When I do, I’m usually wearing my wool socks and slippers. I open my office door and step into a cool room.

It’s not warm, because I don’t need it to be. But it’s also not cold. It’s the perfect temperature for what I’m wearing – a long sleeved shirt or sweater, jeans, and of course the wool socks and slippers.

Because we live in Boise at the very edge of a time zone, it’s often dark when I start work in the winter. So I flip on the lights, sit down in my chair, and start cranking out the code. As I do, I’ll occasionally glance out the window and enjoy watching the sun rise behind the trees of our backyard. If I’m lucky, I’ll get to watch snowfall pile up, but just slowly enough that I don’t need to go shovel the driveway.

Slippers
The king of my castle

For some reason, in the winter, I’m comfortable in a way that’s sometimes hard to achieve during the other seasons. During the summer, my office always feels a little too cold, because I’m right under the AC vent, and I also happen to enjoy the dry heat in Boise. Fall and spring are nice, but tend to be louder, with kids outside. Plus when I look outside I’m reminded of all the yard work I need to get to. But in the winter, there is something wonderful about hitting the perfect temperature, sitting in a comfortable chair, and being able to completely focus on work.

Having a comfortable office is a pretty basic thing. But it can be hard to do when you commute to an office, where you might be in an uncomfortable chair, with a desk the wrong height, and fighting with your coworkers over the thermostat. Now that you’re at home, make the effort to get to a “working comfort” level.

Working comfort means you’re comfortable enough to not be distracted, but not so comfortable that you’re distracted from work. So get the temperature warm enough to not be freezing, but not so warm that you’re tempted to fall asleep. Make the office clean, but not so antiseptic that you won’t use a whiteboard because it’ll mess up the “look” of your office. Everyone has a different ideal level of decoration. If a busy set of walls helps fire up your creativity, great, decorate away. If it just distracts you from work, then tone it down.

Your office should not be a place you avoid because it’s uncomfortable. Of course, you also don’t want it to be so much nicer than the rest of your home that you hide out there just to enjoy it.

6. Simplify

Make work easier by making everything else easy

Simplify, automate, minimalize.

Whatever you call it, the key here is to eliminate stuff that keeps you from getting work done.

If you’re working from home, you’ve already eliminated a huge time suck: your commute. My brother Mason recently did that, and it made a measurable difference.

Congratulations! But don’t rest on your laurels by stopping there. There is more you can do. Find ways to automate manual tasks that make it harder to get work done.

Consider having a cleaning service come in, so you don’t have to worry about cleaning your office.

Get a motion detecting light switch, so you don’t even have to think about turning the lights on or off.

If you have a separate entrance for your office, you might consider adding one of those fancy new wireless locks, so you don’t have to remember to lock it when you’re done for the day. Oh, and let me know which one you use, and if it’s any good.

Eating and drinking are common interruptions of a workday. Though they have to be done, if you regularly spend time or mental energy figuring out whether to get a drink, or what to eat, it will sap your focus on productivity.

That’s why offices often offer free drinks, sometimes even free meals. More important than whether its free is whether the choice requires mental energy. It’s way easier to take a lunch break if you already know what you’re going to have because you prepared your lunches at the start of the week or before work that day. Staying hydrated is less disruptive if you’ve got plenty to drink in your office, and it’s the right temperature.

Develop a routine for the stuff you can’t eliminate, automate, or outsource. A routine simplifies your workday by reducing the number of choices you have to make, and freeing up your mind to solve the real problems your job throws at you.

Now what?

So, given these principles, what is left for me to do? Plenty. Though I’ve made a lot of progress, writing these thoughts down has given me all kinds of ideas for improvement. I want to get some nice light fixtures, add blinds to my window, get a better lock for the door, finish cleaning out the storage from my office, actually get the squat rack I keep promising myself I’ll install, brainstorm ways to increase comfort in the summer, put up some decorations on the walls, reorganize my desk area to better use the space, and get into a better habit of keeping the office clean, mostly by sweeping the floor regularly.

That’s my list. What’s yours?

homeworkSomewhat coincidentally, while writing this article, my 14 year old son had an assignment in his study skills class to take a picture of his workspace at home. The class then looked over everyone’s pictures and discussed how to make it better for getting homework done. As you can see, his workspace is a mess. That’s because he spends more time and effort building castles in Minecraft than he does cleaning up his desk.

And so we come full circle. Here I am, working from home, while my son plays video games with castles. He’s just a kid, not a professional. But I’m a professional. This series on remote work has covered a few different things; one was the story of how I built a professional home office.

How is your home office? Send me a picture on twitter, I’d love to see what others have done to create an awesome work environment at home. And I’ll share every picture I get.

Office Update

My home office has come a long way from the bend in the hallway where I used to work. And now it’s time to take the next step.

Why build my own home office, when I’ve got a perfectly good bedroom in the house that will do? Well, there are a few reasons. But they might all boil down to one reason: we home school our four kids. That means that a) we have kids and b) they’re home all day. To drive the point home, the oldest three are boys and if not kept completely occupied they will yell and scream, either while playing together or fighting together.

So yeah, it’s loud in the house. A bedroom upstairs just doesn’t block out the sound. Sure, I use background noise, listen to music, and keep the door shut.

It’s not enough.

So I’ve tested the sound qualities of the new office. It’s a garage bay separated from the house by an insulated wall. In addition, on the home side, the wall has built-in shelving and a fireplace, providing additional sound protection. I’ve had the kids sit in our family room and yell while I listened from the garage bay. I can hear them, barely. It’s ten times better than the bedroom I work from now.

So what’s left to do?

Well, I’ve had four contractors come by to give me bids for the work to turn our garage bay into a home office. Three of the four eliminated themselves pretty easily. One emailed me before getting a bid back to say that he was bowing out. One wouldn’t give me an estimate – he works primarily in commercial, but does residential only on recommendation by family and friends. A third sent me an excuse for not getting an estimate within the week, and now, two weeks later, hasn’t communicated since. But my first estimate was from a guy I’d helped move a year ago, and he’s been responsive to my questions and ideas. He’s busy, so he hasn’t been able to start yet, but I feel confident that he’ll do a good job.

The process of getting multiple bids from different contractors was good. I was able to discuss the unknowns with four different people who all approached them from different perspectives. One big unknown for me was how to handle heating and AC. We live in Boise, ID, where it’s hot in the summer and cold in the winter. Of the four different contractors, I got three different approaches to the AC/heating problem. One recommended a window AC unit and baseboard heating. Two recommended pulling a duct from the home system. Another recommended a mini-split system. Each approach had its pros and cons: initial cost, efficiency, control. I actually liked all three ideas well enough, so this wasn’t a deciding factor. I could probably convince the contractor I have to go with any of the three, but I’m sticking with his recommendation of a mini-split system. Though the up-front cost will be a little higher, it should be the most efficient, won’t put extra load on our home AC/furnace, and it will give me more control over the office temperature, independent of the home. The fact that we can crowd the whole family into the office when our home AC inevitably goes out is also a nice benefit.

So, having picked a contractor and worked out the HVAC plan, the next step was clearing the garage bay. It was still full of random stuff from our move last summer, as it became the default storage room for the house. Actually, the process started before the contractors came. I began by moving stuff piecemeal over a few weeks. Once it was clear enough for the contractors to come in, move around, and look things over, I did that, and continued the piecemeal clear out. Then, last Saturday, I spent a few hours moving all the rest, taking down wall mounted shelving, etc. The only thing remaining to do is sweep it out before actual work begins.

Cleared Garage Bay
Cleared Garage Bay

And that’s where I’m at now.

Remote Work vs Work From Home

Do you work from home? Or are you a remote worker? The answer may surprise you. I got interested in the different terms we use to discuss remote work/ distributed work/ telecommuting/ working from home while watching Office Optional. Sarah Milstein kicked things off and in her opening remarks she pointed out that we don’t have a common language for discussing the “office-less” work that so many people do.

I shared my initial opinion on twitter during the Office Optional livestream. But I realized that in order to come up with some scientific answers, research was required. Let’s turn to that source of all modern knowledge: Google.

Note: All searches were done in an incognito session, in an attempt to get less biased results.

First up, image search. Here’s the first page of image results for “remote work”:

Remote Work Image Search
Remote Work Image Search

And here’s the first page of image results for “work from home”:

Work From Home Image Search
Work From Home Image Search

At a glance, it should be obvious that people who work from home are mostly women. Remote workers are primarily men. Google said so.

But let’s dig in a little further. On the “work from home” search, we get the following statistics:

Women 16
Men 6
Women w/children 4
Men w/children 0

 

And on the “remote work” search we see this:

Women 2
Men 17
Women w/children 0
Men w/children 0

As you can see, remote workers don’t have kids. People who work from home do, but only if they’re women. That must mean I’m neither a remote worker nor a work-from-home-er.

Maybe I do “distributed work”?

Distributed Work Image Search
Distributed Work Image Search

Well, if so, then I’m a 3D model that vaguely resembles a human, and may be differentiated from other 3D quasi-humans only by color. We communicate via 3D arrows.

Aha, maybe I’m a telecommuter?

Telecommute Image Search
Telecommute Image Search

No, telecommuters are primarily cartoon characters, often from Dilbert. At least here, men and women, the real ones, not the cartoons, seem equally represented. Also, they’re all dressed, whereas the cartoon characters have about a 33% chance of being in some state of undress. Thinking back on the last week, that ratio sounds about right.

I also noticed that The Oatmeal got itself a cartoon on the first page of image links for both the “work from home” and “remote work” searches. Though the “worker” in both cases is a man, it’s shouldn’t be surprising that the cartoon with a woman showed up on the “work from home” search.

The Oatmeal on
The Oatmeal on “Work From Home”
The Oatmeal on "Remote Work"
The Oatmeal on “Remote Work”

Both are from this The Oatmeal post. Warning: The Oatmeal is crass, crude, and vulgar, in case it wasn’t obvious.

Ok, next up, trendlines.

From the chart, it’s clear that “work from home” is the most popular term. But it’s popularity has been waning over the last ten years. “Remote work” is the upstart, and seems to have replace “telecommute” over the last ten years, with definite gains since 2008. It appears that at the same time each year “work from home” searches drop and “remote work” searches surge. Not sure what’s going on there, but it would be interesting to study further.

Finally, we can look at the regular web results for each search. Here, both searches include links to job listings: career builder, indeed, etc. “Remote work” points to some other smaller sites like weworkremotely.com and skipthedrive.com. The weworkremotely.com link isn’t suprising, because the first link on that page is to the 37 signals book, Remote. “Work from home” has more big-name job search engines: Simply Hired, etc. It also has how-to type articles, one at womenforhire.com, and another at bankrate.com, of all places. The “remote work” search includes a link to the Wikipedia article on telecommuting, while the “work from home” search has the Wikipedia article on work-at-home get rich quick schemes.

Conclusions

Hm, I’m not sure I have any conclusions. Solving this problem by adding a new term seems like a horrible idea. But none of the existing terms are all that useful. Yeah, I “work from home”, but not everybody who doesn’t have an office to go to does. I’ve talked to testers who use cell data plans and roam the country in RVs. And while I like the term “remote work”, the fact is that at a company like Articulate, where everybody is “remote”, then you have to ask what are we remote from? Not a central office. Telecommute might make sense if I spent my days on the phone. I’m more of a ‘net commuter. I commute to our team “office”, i.e. the Storyline HipChat lobby, via my internet connection. I share my work via the net, I talk with my team via the net, my work is organized on the net. But seriously, let’s all stick with “remote work”.

So, now that you know the science, what are you? A remote worker? A telecommuter? Or do you work from home?

A Biased, Incomplete, Opinionated Summary of Office Optional

Many others have offered up their summary reports on Office Optional, the new conference on distributed work put on by the Lean Startup guys. This is going to be my biased, incomplete, and opinionated summary. It’s biased because I’m coming at it from a certain angle – that of a remote worker trying to get better at what I do. So I’ll go light on some of the HR stuff and “big ideas” talks that were outside the scope of what I face on a day to day basis. It’s incomplete because, even after just covering the stuff I’m biased to cover, I’m still going to have to leave stuff out. I’m not going to go super deep in this post, but will do that later in other blog posts on particular talks or themes that came out of the conference. And finally, it’s opinionated. My first opinion is that it was a great conference, and I hope the Lean Startup Foundation keeps it going. I’ll also be offering some suggestions on what could be improved, and feedback on some of the talks themselves.

Office Optional

So let’s dive right in and look at the themes of the conference. The themes I cared about and tuned into were Collaboration, Communication, Tools, Self-Management, and Human Resources.

Collaboration

The conference kicked off, after Sarah Milstein‘s initial remarks, with an awesome talk about the modes of collaboration by Teryn Rikert. She outlined three, increasingly complex modes of collaboration: informative, evaluative, and generative. Each mode involves some primary activities. For example, the informative mode is about asking, telling, showing, and responding. For livestream participants in Office Optional like me, this was the primary mode of the entire conference. I was learning, sharing what I learned and asking questions. The evaluative mode is all about challenging, defining, commenting, revising. This mode tends to be iterative and is about taking something and improving it. The most complex, and most valuable mode of collaboration is generative. In this mode, people are brainstorming, building, synthesizing, and capturing creation.

Tools exist for enabling the different activities that make up these modes of collaboration, both for remote workers and for those in traditional offices. Teryn could have easily gone on to discuss these tools, and what they should look like for remote workers, and the talk would have been excellent. Instead, she went deeper by examining what actually makes collaboration work: trust. The activities of collaboration become much more powerful when the participants have high trust. And certain behaviors embody and build trust in each mode of collaboration.

Tools can solve the problems of letting remote workers see, hear, and talk to one another. But for true collaboration, they need trust. And trust is built up by certain behaviors. In the informative mode, trust is built by revealing, pausing regularly, so participants can ask, checking on progress, and inquiring. You trust the professor who does those things more than the one who just lectures. In the evaluative mode, trust is built by reiterating others ideas, clarifying, focusing in, and eliciting feedback and input. In the generative mode, trust is built by aligning participants, facilitating involvement and creation, summarizing ideas and progress, and highlighting everyone’s contributions.

And so, rather than looking at the tools with respect to how they enable the activities of each collaboration mode, we can look at how well they enable the activities that build trust in each mode. Building trust in those modes is important when you’re in person, but absolutely vital for distributed, remote teams.

Joe Moore followed Teryn up by talking about one of the most intense forms of generative collaboration, remote pair programming. He emphasized using both screen sharing and video chat to build trust and ensure communication is as high bandwidth as possible. It made me miss the great pair programming I did at TrackAbout a little bit. One thing I’ve learned over time is that certain tasks lend themselves very well to pair programming, while others are just not a good fit. The Storyline team has been working on a lot of UI heavy stuff recently, and it doesn’t feel like a task well suited to pairing. Other features we’ve done for our upcoming release could have really benefited (and in some cases did) by pairing on the code.

A little later in the day William Donnell walked us through how they do brainstorming at Sodium Halogen using video chat. Although the discussion was tools focused, it was in the service of generative collaboration. The key, in his mind, was to provide as much video as possible, giving remote participants a full view into each other’s workspaces and whiteboards.

Both Cheryl Contee and Chris Byers discussed the value of culture, trust, context, and purpose over tools as well. For remote organizations to work well together, they need good culture, a context of shared purpose guiding them, and trust among team members. Without those, the best tools are not going to make the work any easier. There will be confusion, frustration, and lack of trust limiting all of the collaborative work they are attempting. With those, the productive work can get done even with suboptimal tools. Chris focused on the value of a shared purpose that everyone knows. This common shared purpose and mission gives employees the ability to work independently and autonomously to achieve it, which is a necessity when they’re working independently and autonomously through remote work. Cheryl discussed a variety of important cultural behaviors that build trust and establish a culture. Things like hiring slow and firing fast, celebrating birthdays, allowing flexibility for remote workers schedules, a yearly team retreat, always assuming good intentions of your coworkers and employees, etc. None of these behaviors are specifically about collaboration, but they grease the skids, making collaborative work more productive and possible.

Communication

For me, the highlight of the discussions around communication was David Yee‘s talk on group chat. He first pointed out that a shared group chat room is the “office” for remote workers. It provides a common area for us to talk, shoot the breeze, discuss both work and personal stuff, kick off deeper conversations, and create a common culture. Group chat is the solution to many of the standard problems of remote teams: having group conversations, limited shared time together, employees feeling isolated, a lack of “benevolent eavesdropping” that leads to serendipitous collaboration. He pointed out that group chat is your office, it’s the common area at the heart of your company or team. Everyone has their own office, and group chat is the common areas, the water cooler, the hallways connecting them all.

He then went on to discuss ways to use it more effectively. First, show up. That means logging in to your chat app, whether it’s HipChat, or Slack, or Campfire. Second, use it. If you need to talk with coworkers, put it in your chat room. There are advantages to persisted searchable chat that you give up when you pick up the phone. Conversations can go on and be picked up by people who weren’t at work when they started. Others can read through past conversations to know what’s going on, even if they don’t have anything to add. Next, say hello. When people say “hello” upon starting their work day, and say “goodbye” when they leave, it sparks conversations, it shares your work rhythms, and creates a shared team or company rhythm, just like in person offices have. Fourth, use chatbots. They can make chat more fun, easier to use, and inspire discussion based on automatic events, like tweets about the company. Finally, start with the lobby. If you’re not using group chat, just create one room, a lobby, for common use by the team. If you do have group chat up, default to having conversations in the lobby. The transparency that provides is healthy for a team, and allows for the benevolent eavesdropping that more easily happens in co-located offices.

The next session on communication that really struck me was Sieva Kozinsky‘s talk about how daily meetings can transform a distributed team. This struck a chord with me because on the Storyline team we’ve been experimenting with our daily status meeting to try to improve things. Over time it had become challenging. It lasted too long, had too many people in it, and became something I zoned out in. After some discussions, we agreed to only have it when there were people who had something to share. That’s presented its own set of problems, and I’m not really happy with the result there either. Sieva’s talk emphasized that a good daily meeting should be like a good habit, rather than a chore. A good habit, like brushing your teeth, is something you do daily, and it leaves you feeling good. A daily meeting can become a good habit if you make it quick, easy to participate in, and relevant to the whole team. I think our biggest challenge on storyline is just how big the team is. With a smaller team size (maybe do the daily meetings at a smaller granularity), they would be shorter, everyone could update each other on what they were doing and would do, and because the team is primarily composed of people you work closely with, the updates people share are more relevant to you. One other key part of the habit for Sieva’s team was that someone would share their screen during the meeting with notepad open and just type in a summary for each person of what they had done during the last day and what they would do in the next day. This pressured people to be realistic about their plans because there was a little accountability to the team in what they said.

As an alternative to, or in addition to, daily meetings Sadie Honey and Aaron Pava outlined their weekly meeting agenda. These lasted longer than a typical daily meeting and were at a higher level. The first step, which only takes a few seconds, is to have everyone share their “balance score”, which is a score from 1 (life) to 10 (work) indicating whether their work/life balance was tipped more towards work or life. This was then tracked so team and company leadership could keep an eye on things, while expecting natural fluctuations. The next step is to have each team share a 30 second updates on what the team is doing with the company. Then everyone who wants to can share something they are excited about, wondering about, or worried about. Finally, they wrap up with a 10-15 minute talk on some topic. These topics are chosen in a quarterly meeting where everyone brainstorms different topics they’d like to hear discussed. They could be anything from how/why the company is run the way it is, to technical talks. All of these components of the weekly meeting seemed like interesting ideas worth trying out on my own team. The continued to discuss other cultural aspects of their company that sounded fun. I hope to share more of those in another blog post.

Tools

In the category of tools, one discussion stood out, despite the taste of salesmanship that came across. Though Patti Chan‘s talk eventually became a pitch for Houston, an open source project created by her company, Intridea, it began with some intriguing thoughts about the evolution of tools for distributed work. After beginning with a review of the tools that her team uses, she went on to categorize them broadly as either tools for storing and disseminating information, or tools for talking to each other. She imagined an uber-tool in each category. For storing and disseminating information, a Frankenstein-ian hybrid of GitHub, Dropbox, and Google Docs. For talking with each other, a similar hybrid of Skype, Hipchat, GotoMeeting, and Yammer.

Though my initial thoughts were that single purpose tools will win out, and big complex apps like she imagines are ripe for disruption by smaller, quicker competitors, it’s not surprising that we see the tools actually moving in the direction she laid out. Skype just added free group video calls, Hipchat recently added video/audio calling to its chat app. GitHub is constantly building out new and interesting ways for storing and presenting the data that people keep in Git. And Dropbox definitely has the vision that could make it the sole repository of information for companies and individuals in the future. Whether or not it’s possible for a single app to become the communication or information hub for a distributed company, many apps are definitely trying to achieve that goal.

And I know that having less tools to deal with feels good to me, as a remote worker. I’ve been arguing for a while that our team needs to track its bugs and its feature work in the same tool. And the disconnect of communicating on Skype one minute, HipChat another, and GotoMeeting later in the day is frustrating. I’d love to have a single experience.

It also seems reasonable to assume that all of the disruption that has been occurring due to internet technologies over the last couple decades will have to taper off in time. It causes a certain amount of learning fatigue, and there is definitely value in being able to concentrate on getting work done, and not living on the hamster wheel of learning new tools only to discard them and move to the next shiny thing that comes along. It may take years, or even another couple decades, but I believe that our cost/benefit analyses will lead us increasingly to keep the tools that we have over switching to others for minor gains, especially as those tools fill in the gaps in their feature sets.

Honestly, I’d rather have HipChat add Sqwiggle as a feature, so that people’s avatars just update with webcam shots every few minutes, rather than having to use both HipChat and Sqwiggle. I’d also love to be able to handle screen sharing, audio calls, and video calls al through the same app, and, for company related business, have all of those recorded and archived, just like chat is.

Besides Patti’s thought-provoking talk, much of the focus on tools was on individual tools that people could use. Some tips and tricks came out of that, as well as some new tools I hadn’t previously heard of, like Murally and Popplet, which both seemed interesting and useful within their domains, even though I don’t often work in those domains.

Self-Management

Honestly, this was the weakest theme of the conference in my mind. I doubt the conference organizers even considered it to be a theme, though the one panel discussion of the conference was focused on this: how individuals manage their own remote work. And it was one of my favorite parts of the day. I had just hoped there would be more discussed in this category. Here’s to expanding this theme in the next Office Optional

Lynne Johnson began by asking the four panel members (herself included), what their daily rituals consisted of. Each person had a different schedule, with different challenges. Three of them spent time with their kids in some significant way each day, which is a recurrent theme among those I’ve talked to and worked with who love remote work. That said, Elisa Batista mentioned the challenge of being fully present with the kids, since when you’re at home you’re in your work environment, and it’s hard to turn that off without the reset that comes from a commute home at the end of the day. Because of this she mentioned the importance of having a separate workspace within your home. That separation can help you be more focused on work when you’re working and more focused on family when you’re not.

Two of the four admitted to regularly working in their pajamas. I regularly work in my gym clothes after a morning weights or running session, so I can relate. For Keith Fahlgren, daily habits are a key to his productivity, and one of those is his morning shower, so no PJs for him. He also mentioned the importance of checking in on the company chat room by saying good morning when he started work, which was impressive since he got up at 5 am and did a couple hours of work before getting his kids off to school each day. Lynne also avoided pajama work because she almost always worked away from home, at coffee shops, co-working spaces, etc. She liked the regular change that came from working in different places, but did admit to missing a workspace that was all her own, set up just the way she wanted it. She had one, but worked out and about enough that she missed it.

Each of them also had little tips to be more productive. Raina Kumra offered a fun tip for those who were one of the only remote workers in their company: have a mole in group meetings who could text you about nonverbal reactions and other things you miss by not being there in person. Keith encouraged remote workers to expect their company to pay for the tools needed to do company work productively (I’m really grateful that Articulate encourages us to expense everything we need to work effectively). Elisa and Raina both mentioned the importance of time trackers, not just when doing billable work, but also to keep productive. RescueTime and Harvest were mentioned.

All of that was great, but, as I said, I would have loved to have more talks and discussion on the topic of self-management.

Human Resources

A final theme for the conference was a focus on human resources: issues around interviewing, recruiting, onboarding, management, and the overhead of processes and team organization. It would be unjust not to kick off my review of this section by starting with anyone other than Articulate‘s own COO, Frazier Miller. He began by looking at the “psychographics” required for remote work. In other words, how to find people with the right mindset, personality, and approach to work for doing remote work. At the level of hiring and onboarding people, you need to find employees who can motivate themselves, stay focused, and work without the human interaction that an office provides. Articulate has learned that sometimes that means letting employees find you and your company, rather than going out and trying to find them. Too many people are recruited by distributed companies and get the wrong impression of remote work. It’s not a day on the beach, it’s a messy home office with family interruptions to deal with.

Once you’ve found the right people, having an onboarding process is important, especially as the company grows. Part of that onboarding process at Articulate includes the annual company retreat and also team inception get-togethers. We’ve still got work to do there, as I’ve been at the company more than a year and never been to a team inception face to face. I’d really like to see these happening 1-2 times a year, in addition to the annual company retreat, which we had back in October and was awesome. Some other improvements that Frazier wished we could make as a company was to use more video when doing calls and chats, both individually and in groups, and an Apple Pie as a Service. It would be nice to more easily recognize and appreciate employees, from something as simple as a pie on their birthday, to more formal rewards. In an office that can be easier, but it’s not always easy to do with a remote workforce. Not only does everyone live and work in different places, but because of that, we don’t really have an office admin (there’s no office to administer. Administrate?), who would typically handle things like that. It certainly seems like something that an enterprising person/company could turn into a business for distributed teams.

Before Frazier spoke, the Automattic team had a couple people talk about some of the lessons they had learned on an even larger distributed workforce. The most interesting idea from that discussion, for me, was that they hire everyone on contract to do a 4-6 week project in their free time as part of the interview process. I’ve heard many say they like this idea in the past, so it was cool to hear how it’s actually working at a good sized company. This helps them not only find people who can do good work, but who can do good remote work. Because it’s a paid project, the potential employee gets something out of it, even if they ultimately decide working from home is not for them.

Although there were other talks about HR, the last point that really struck was from the day’s closing discussion with Bob Sutton and Eric Ries. When talking about the need for process and hierarchy as an organization grows, Bob talked about a small company, Pulse, that started to fall apart when they got to 11 employees. They had been productive up to that point, but at that point nothing was getting done, there was fighting going on. They solved the problem by dividing into 4 different teams, of two or three people each, with a simple coordination process. Each evening, before leaving work, each team would share what they had accomplished that day, and any questions they had or blocking issues. This simple organization and process allowed them to work much more quickly, and stopped the politics from happening. This resonated with me, because something I’ve seen at both remote companies I’ve been at is that teams need to be smaller. Teams of 2-5 people seem like the sweet spot for remote work. I think co-located teams can grow a little larger, maybe up to 10 or so, before they start to get unwieldy. But remote teams of more than 6 or 8 leave people feeling disconnected, hidden, or able to hide, in large group calls, and less accountable to one another in their shared goals.

Next Time

As the day wrapped up, my mind began to turn to the next Office Optional conference. I fully expect that the caliber of speakers will be even better than this year. I called out some of my favorite talks above, and many others were good, but not necessarily applicable to me. There were some disappointments as well, talks that I felt could have been better with the right presenter, or where the subject matter was just unhelpful, or where a simple idea was spun out into a talk that ultimately had a low signal to noise ratio.

If at all possible, I’d love to attend in person. Though I was able to share tips and questions as a livestream participant, the fact is that none of my tips or questions got shared or asked during the conference. My primary participation, outside of watching it, was by tweeting quotes I liked. It would have been fun to be there, to chat with fellow attendees and speakers during the breaks and at lunch. There is definitely a time and place for in person meetings, and Office Optional is one of those times and places.