You don’t need more knowledge

You don’t need more knowledge

Read these 5 books. Take this online course. Subscribe to those newsletters. Watch these videos. Sign Up for this webinar.

Everywhere you look people are trying to throw knowledge at you as the silver bullet to solve all your problems. They tell you that you can’t succeed without their five step process for only three easy payments of $29.95. They tell you that the reason you didn’t succeeded before was that you didn’t know their methods; you need to build an audience, pick a niche, hire a designer, make a viral video, code it in ruby, create landing pages, create a hashtag. All of which you can learn from them.

The thing is: you don’t need more knowledge. You already know enough to start today.

Before starting we think we must be able to answer every issue that could possible occur, lest someone on the Internet think we’re stupid.

We watch inspirational videos. We drive to that coffee shop that plays just the right music. We research tools to to handle customer support before we have any customers. Anything that tricks us into feeling progress without actually making any progress.

You don’t need to read another book, you don’t need to take a course, you don’t need to watch more videos…you just need to start and work hard.

The thing standing between you and your goal isn’t knowledge, it’s work


Fear vs Shipping


Ask 100 makers what they want to do more of and the answer is always to ship more work. Ask them why they don’t, and the common response is fear.

It’s a common issue that all makers face. You face it when you release a new product or upload a new video. I’m facing it now with this essay. We all get scared when it comes to submitting our work to the public.

We fear we have nothing to say, that it has already been said by others and that everybody already knows and understands it. We’re scared of judgement from strangers, that people on reddit will think we’re stupid. That nobody will show up and read our work. We’re anxious that our English isn’t good enough.

All of these “what-ifs” run through our heads and stop us from posting. We get paralyzed by the “Upload” or “Post” button. We sit down and watch TV instead. Consume more content rather than produce it. That way we don’t have to face the fear.

You look at all the other makers out there and think they are better than you as they don’t have the fear of shipping. You see them writing blog posts, sending newsletters and shipping new products. They mustn’t face the same fear as you right?


They have just learned one secret.

The anxiety of shipping never goes away. It just affects you less the more you ship.


The rate at which we ship things is directly proportionate to the amount of anxiety we feel when shipping.

It’s a very catch-22 situation. You are scared to ship, but the only way to get over that fear is to ship; and to do it often. The reason why you see makers like Justin Jackson, Brennan Dunn and Paul Jarvis produce so much stuff is because they consistently press that “post” button and so they are less anxious each time.

With practice and consistency you too will reduce the fear. It won’t ever go away completely, but you will learn to live with it, and next time you hear the little voice in the back of your head telling you it’s not good enough.

Don’t listen to it.

Press the “post” button, ship your work, and reduce the fear for next time.


Quality isn’t an accident

How many times have you tried to plug in a USB cable and failed on the first try? If you’re like me that number is nearly the number of times I’ve ever attempted to connect a USB device. How many times has this happened with a network cable?

While most people have heard of the term kaizen, or continuous improvement, when talking about Toyota and it’s lean manufacturing principles, fewer have heard of kaizen’s unsung sibling poka-yoke, or mistake proofing.

The main idea of poka-yoke is to draw attention to human errors as they occur, so they can be corrected or prevented, reducing the number of defects in a product.

After observing a defect, we identify the root cause of the mistake, and then apply a fix or change in process that attempts to prevent the same error from happening again. This learning can then be applied to improve the design and function products.

Building your products with poka-yoke requires more initial effort, however the end result is a higher quality and more reliable product.

As developers, our tool to poka-yoke our services are unit tests.

Tests are small pieces of software that exercise a piece of code and verify that it’s behaving as intended. Writing tests are, however, many developers least favorite thing about creating software. We like to build new services and libraries because they’re fun and there is a sense of immediate gratification.

While writing good tests is time consuming and not fun. Setting up the scaffolding, defining test cases, and setting the test data can feel like tedious grunt work without an end in sight. However boring tests may be, they are essential to quality software.

With Kwoosh we’re aiming for high reliability, minimum regressions, and fast operations. Part of our testing strategy is to have “workflow” integration tests. These tests aim to help make certain that our tests are comprehensive while being easy to understand.

Each test currently has a maximum of two tests named ‘test_get_workflow’ and ‘test_post_workflow’. Each test then calls a series of descriptively named helper functions to assert behavior.

def test_get_workflow(self):
# Make sure that anonymous users are redirected to login
# and that users are denied access to data that’s not theirs

# Check that our filter interface is filtering data properly so
# calls to “mine” only show tasks assigned to me and so forth.
self.filters_response(self.sub_task_data[‘title’], ‘all’, [])
self.filters_response(self.my_task_data[‘title’], ‘mine’,

def test_post_workflow(self):
# Make sure that all post requests are redirect
# or return 405 and denied

As a lot of the tests will have some helpers in common (such as confirming anonymous users get redirected to login), we can bundle up these helper methods in small classes and include them into the tests, reducing the amount of code we need to maintain.

> Less code = Fewer places for bugs = Less maintenance

Having descriptively named helper methods will allow future me to glance at the test I wrote today and identify exactly what’s being tested, without having to read through hundreds of lines of code.

Quality isn’t many things. Quality isn’t free. It isn’t flashy. It isn’t fancy. And it sure as hell isn’t an accident.


Houston, we have a problem

Apollo 11’s Eagle lunar lander guidance computer source code was recently open sourced on Github. As a programmer, especially one surrounded by NASA, it’s fascinating to see and read code written and tested 50 years ago right here in my neighborhood.

Reading through it I’m left with many questions. What were their work routines like when developing this? What kinds of challenges did they run into? How did they overcome them?

I wonder what type of people the programmers were. Did they enjoy their work? What did they look like? I imagine the majority had short hair, slide rules in their pockets and wore ties to work. Quite different from today’s hoodies, headphones and baseball caps.

Reading through the code I found some interesting comments. It made me realize that as different as we may appear on the surface, the challenges that we face as programmers are now the same challenges from 50 years ago.

They ran into the same pitfalls a modern programmer finds themselves running into: code that should be temporary becomes permanent.

Lunar Landing Guidance Equations.s

50 years ago the developer who wrote this code had a time crunch. He likely had to hit a tight deadline. While we’re not in the space race today, the average developer’s life is still based on deadlines and the result is the same: temporary code is anything but temporary.

The code you’re writing today will probably not change. Those shortcuts you write to save 20 minutes today will be there tomorrow. And if the Eagle’s guidance computer is any model, it will be there 50 years from now as well.


This isn’t a masterpiece

Credit: Calgary Reviews

This isn’t a masterpiece

Building your own products is hard. There are thousands of tiny decisions that need to be made and nobody else to make them for you. To make matters worse, no answer is EVER 100% correct.

So we make the best decision that we can.

And sometimes the decisions we thought were right, were wrong. So we take a step back.

We tell ourselves that next time, we’ll make a better decision. We decide not to do anything until we’re certain. But nothing ever is.

We paralyze ourselves with this fear. Fear that decision will be wrong. Fear that our effort will be wasted.

But by doing this we miss out on a big part of the process. We forget that learning what doesn’t work is just as important as learning what does.

“It needs to be perfect before we can show anyone”, we tell ourselves, “This is our masterpiece.”

But we shouldn’t think of this as our perfect masterpiece because then our work will never see the light of day. Exposing our work to criticism and different perspectives is the only way we can complete the creative process and improve our product.

Stop aiming for perfection and ship.


I met Jason Fried last night

I met Jason Fried last night

I met Jason Fried last night. Except it was Skype call. Before I was boarding an ANA Flight to Japan. Where my seat was in a garage sale style over-stuffed sofa. Without a Seat belt. Did I mention this was a dream?

He asked me, “Are you focusing on what’s most important to you? Or are you focusing on what’s most important to your customer?” And I didn’t have an answer.

As makers, it’s natural for us to create. Given a choice we’d rather be building and making things than not. Our making is often constrained by one factor or another: time, money, tools, or passing interests.

However, these constraints aren’t bad. They lead to creativity. We figure out how to accomplish our goals within our constraints.

However, these constraints aren’t bad. They lead to creativity. We figure out how to accomplish our goals within our constraints.

But we often yearn for a world without these constraints.

“If this is what I can do without any time, tools, and money — imagine what I could accomplish if I focused on all of my creativity and had zero constraints?”, we think to ourselves.

“If I could just use my creativity to create a product that people would like enough that I could survive on it, I will be able to focus all of my energy on making and remove constraints from my creativity and my making will be endless and fun!”

What many makers fail to realize is that selling your product, while it may remove time and money constraints, adds another constraint. Yes, we are able to make whatever we want with the time that we have. However, we must now weigh what we’re building with what our customer wants.

Are you working on adding a new feature to your SaaS that you find intellectually challenging to build? Or are you fixing that workflow that trips your customers up?

Are you working on what’s most important to you? Or are you working on what’s most important to your customer?

If you’re trying to survive off your creations and creativity — the latter will always reap more rewards. And as makers we should strive so the most important work we want to focus on is the work that our customer finds most important.

And then I woke up and wrote down this message from fairy customer-service angel before it got lost to the ether.


Artifacts of Our Work

Artifacts of Our Work: What makers can learn from Edo-era Japan

During the Edo-era, Japan isolated itself from the rest of the world. All resources were precious. Re-use and recycling were the norm. Not because they loved and cherished nature, though that may have played a role with their Shinto backgrounds, but out of necessity. With limited contact with the outside world, Japan had to be self-sufficient. As a result, communities worked together to make sure that nothing went to waste.

Umbrellas were made of bamboo and paper. Once they started showing wear and tear they were refurbished. The bamboo was repaired and new oil paper was attached. The old paper was sold as packaging material.

Starch extracted from rice was used to repair ceramics. Human waste (night soil) was bought by farmers and used as fertilizer in their fields.

This kind of reuse of by-products was a part of life in the Edo period and the effects still reverberate in modern Japan. Letting excess go to waste even has its own word in Japanese: “mottainai”.

While we aren’t usually concerned about letting excess go to waste, mottainai is uttered on a regular basis in Japan.


Slow is not a dirty word

When someone says the word “Slow”, what comes to mind? People driving 10 miles per hour below the speed limit for no discernible reason? Snails sliming their way across the street? Business?

Probably not business. Business is supposed to be quick. We’re supposed to have gotten to market yesterday, rush around, be busy, work overtime, and grow forever.

We’re constantly looking for things quicker. We lay miles upon miles of fiber optic cable to get a measly 1ms faster transfer rate. We want our photos developed in an hour or less. We only have 7 minutes to work out, 4 minutes for a video, 2 minutes to cook noodles, and and 3 seconds for a sound-bite.

We bombard ourselves with pings from everything under the sun so we never miss an instant and we’re always on. For what?

What’s the purpose of all of this? Usually we hear something about demanding customers and better service, but usually it’s ‘shareholder value’. We focus on the short-term and neglect the long-term.

But is this the only way businesses are supposed to be run? Should we just accept it as the one true way? Does achieving all of this make us a success?

No, it doesn’t. This fast-paced always-on life style blends our home-life and our work-life together. We can no longer leave the office and are always just a text or phone call away. This makes sense for mission critical launches or in times of crisis, but it has become the norm.

There’s an alternative. It’s called Slow.

* Slow is recognizing that we work to live, not live to work and creating a culture that embraces this.
* Slow is growing at a considered and deliberate pace.
* Slow is building a business that respects its customers, employees, and community.
* Slow is quality craftsmanship and livable wages.
* Slow is long-term thinking and continuous improvement.
* Slow is sustainable and responsible.
* Slow is waiting for a well articulated response.
* Slow is cooking a healthy meal rather than going through the drive-thru.
* Slow is enjoying a sunrise and not tweeting about it.
* Slow is enjoying a moment for the moment that it is without needing to documenting it.

The best things in life: lovers, friends, wine — do not come in an instant, an hour, or even a year. They come over time. Slowly.

What can you Slow Down today?