Author: Matt

  • Pace of Innovation

    Our ability to be productive is the most critical metric that determines quality of life. It’s a fundamental measurement of how the economy is doing, identifys where we are stagnating, and shows where the biggest gains are.

    There are many factors that go into improving productivity – capital investment in tooling, factories and better software, also education and training. Those examples all suffer from limits. With the best people, using the best tools and methods you’ll hit an upper ceiling of productivity that cannot be surpassed without an innovation.

    Here’s a story I heard about the UK cycling team. In 2002, the UK had an abismal record of only 1 gold medal in the previous 76 years. It had gotten so bad that not only did they have a difficult time finding a bike company to sponsor the team, but several bike companies actually requested that the UK team NOT use or be seen using their bikes for fear of being associated with such poor performance. However, in 2002 they got new leadership from Sir Dave Brailsford who focused intensely on innovating in every minute detail. They found new ways to shave weight from the bikes, new clothing, better diets for the athletes, improved routines, tested supplements, tweaked aerodynamics, and tried various greases and lubricants. Every possible variable that could be optimized was systematically researched for innovations and many of them eeked out small improvements of less than 1% performance gains. In aggregate however these small changes had an outsized impact and resulted in a dramatic turnaround from absolute failure to domination.

    Not only are the individual innovations important but the pace at which those innovations happen can quickly become a massive advantage.

    So what kinds of things can you do to increase the pace of innovation. Here’s some ideas:

    • shorten iteration cycles of build-test-learn-repeat
    • focus on quantity early on rather than doing it right the first time
    • apply project planning on what can be done in parallel
    • be creative at un-blocking people and their tasks – avoid being stuck waiting for external people/services/deliveries etc.
    • replace external dependencies with more reliable internal ones
    • reduce parts
    • simplify or eliminate processes
    • everything is wrong, it is only temporarily the best solution
    • look out for local maximums and have the courage to back out to try something better (one step back, two steps forward)
    • put things in place to reduce the time it takes to get a new person up to speed – good documentation, simpler onboarding
    • always try to find analogues in other industries
    • apply A/B or multi-variate testing where possible
    • know the goal, keep it in focus
    • calculate the fundamental limits
    • periodically step back to get a 10000ft view
    • periodically dig into the minutia
    • use the right words for things
    • make change easy
    • encourage ideas from everyone and everywhere
    • even small changes are worth doing

    I think it’s worth spending considerable effort on things that improve the pace of innovation. Leave a comment if you have more ideas for things that will accelerate innovation personally or where you work. I’d love to collect as many ideas as I can

  • Value of Vision

    In business, when talking about writing a business plan, or when a consultant evaluates a business, sometimes a vision or mission statement are things that get discussed.

    For a long time I have looked at these kind of things as fluff. It’s a bunch of people wordsmithing a document that will never be read outside of the announcement that it has been completed. YAY! The people writing the software, building the widgets and making sales are often scarcely aware that a mission or vision exists for the company they work for.

    In those cases, yes, a vision statement is less than useless. It is wasted effort, it might even conflict with the actual evidence of the company’s actions.

    But when used correctly, it can align thousands of people to all pull in the same direction. A great mission, can make people excited to work 80 hours/week, to jump out of bed knowing that what they do matters. It can get past the roadblocks to decision making by proving a roadmap to everyone about what they should or can work on.

    In the early days of Google, they had a mission to organize the worlds information. This galvanized an army of amazing engineers to build some truly monumental technology to store and find everything on the internet. It encouraged them to tackle projects like scanning all books, and re-think email. Google has long since outgrown that mission

    SpaceX is a company with the vision of having a sustainable colony on Mars. This ambitious goal underpins both top level strategy, and also bottom up decision making. People work there to be part of something amazing and as a result they are able to hire some of the smartest people.

    There is a reason why spaceX will not go public until after they reach Mars. The stock market doesn’t care about bold missions, they want quarterly reports that show revenue growth and profits. Looking at Google as an example, the pursuit of business growth for shareholders eventually resulted in the cancellation of many benefitial products. The justification of a project requires a solid business case that it must not only be profitable, but also big enough to be worth pursuing.

    All it takes is one bad quarter for some pencil pusher to call for the cancellation of a fun mission-aligned project. After a few of those, we stop believing that the mission is the mission. It stops being fun to work there, it becomes harder to attract the best people.

    The thing about making a vision or mission work is repeating it ALL THE TIME. Put it into every presentation, every memo, every email, talk about it in every interview. When people believe that the vision is real, that the company can actually achieve it that’s when the positive benefits of having a vision.

    As the leader of a company, only create a vision if you are going to do what it takes to make people believe the vision is real and possible based on the actions the company makes.

  • Ideas, big and small

    I have 3 big ideas. The kind of legacy making change the world ideas that are big and bold. These ideas are things I would pursue if I had the means to execute on them but it requires vastly more capital than I have access to, or that others would put me in charge of. And more skill than I have the ability to muster.

    Those big ideas are in the areas of construction, access to space and energy.

    To set myself up to achieve those things in the future I look at what other successful business entrepreneurs before me have done, and model them. It is common to have started with a more modest businesses and leveled up several times before developing the skills and confidence to achieve unreasonable success.

    This was on my mind recently. That before tackling the big ideas I need something that hits exactly the right level of challenge that I don’t get discouraged, but hard enough that I learn what I need, and that is within my means to succeed at. It would be an added benefit if success also brings with it the assets required to tackle a bigger idea next time.

  • The Last and Biggest Industry Primed for Tech Disruption

    The wave of tech disruption has been picking off industries one after the other since the early 70’s. Until today when it’s hard to think of any remaining sector of the economy that hasn’t gone through, or is in the process of being converted into a software driven market.

    The current biggest industry that is seeing major disruption is automotive and energy with Tesla taking the lead on a major shakeup to how cars work, and eventually with how the energy grid functions. This sector was a long time hold out due to the cost and dedication required to create a successful new car company. Should Tesla’s strategy play out they could find themselves with a global automotive monopoly on an $8T market.

    There is, however, an even bigger market that has not really been touched by technology discruption yet. It is long overdue for modernization and a shift towards software driven margins. Productivity in this sector has been essentially unchanged since the 50’s.

    Construction, and Housing is the biggest untapped market yet to be infiltrated by a technology company.

    Amazon is a technology company that sells books, Tesla is a technology company that makes cars and somewhere out there is an entrepreneur who will start a technology company that happens to build houses.

    What does a technology housing company look like?

    It will re-evaluate housing from first-principals – what is the ideal wall assembly? could you build a house with vacuum double-walled insulated panels? Would people buy a ‘branded’ home with a badge on the front? Could you provide home insurance as a service, have fully integrated smart electrical panel? an integrated thermal management system of heat pumps that moves heat from the freezer/fridge to the hot water tank? Could you change the perception of a home to be a computer you live in? Would it be possible to work with every jurisdiction to have these homes pre-approved for building inspections? biohazard protection level air quality filters, integrated security systems, off-grid by default?

    The ultimate house would be built to a tolerance of micrometers, and be produced at a rate of 100’s per day. It would be termite proof and impregnable to insects or rodents, the exterior would be zero maintenance.

    It would also be a general housing platform that, like Tesla, uses software to unlock the features you pay for so that manufacturing can be streamlined to fewer SKUs.

    Many of the existing problems with houses can be delt with – house insurance is expensive because a flood or fire can result in massive remediation costs. To counteract this, the builder should provide the insurance policy to the home owner – all claims are dealt with by the builder which provides the feedback loop to inform design decisions that improve future houses.

    The real differentiating factor though is going to be having a house that is software upgradeable and gets better every month with upgrades. If you could re-imagine a house as a software platform what kind of things would it do (that you don’t get with smart but dumb “smart home” systems)? perhaps a home that can play hide and seek with you, maybe it can find your lost stuff, talk to you in the room you’re in, lock all doors in the house, identify and trap intruders. maybe it would not require manual light switches, and it would auto-open doors for you. video and audio calls could follow you room to room. A smart home that makes being at home fun and social, or relaxing and serene with a single command. A house with a fart app.

    There is the need out there for order of magnitude better homes than what is currently constructed. Nobody has invented it yet. And to the company that creates the first computer you live in, they will have the chance at dominating a $13T market.

  • Current Thoughts on Software Testing

    When I was a younger developer I didn’t see the value in writing tests for the projects I worked on. I was focused on being as productive as possible during the day to turn out new features and fix bugs. Tests doubled or more the amount of code that needed to be written, it added delays and distractions waiting for tests to run, and sometimes they were actually very difficult to write (figuring out how to mock out things is not always easy).

    That approach works for a while, but has it’s limits.

    There are 3 main things that tests solve for me and it took a while to appreciate:

    1. It catches stupid mistakes earlier
    2. Improves ability to take on or hand off a codebase to new developers
    3. Helps stave off fear of making changes in the future

    Catching mistakes early is accomplished because, tests force you to think through some of the error cases, it makes sure that you’ve actually run the code before launching in front of users. I have come to see unit tests as comparable to double entry accounting in some ways – you write the credit and the debit separately, and then can do a validation step (running the tests) to confirm that both sides are in agreement. This is valuable but it is the least valuable of the 3 points that make tests worth writing. For non-critical software, and if it is quick and easy to identify and fix issues in the deployed software then it’s easy to see how fixing errors after the fact, and writing half the amount of code is a productivity trade off that has a strong argument.

    Being a developer that comes onto an existing project, having tests are a life saver. If you don’t know how to quickly identify and fix bugs, then every bug becomes a lengthy investigation. This process of having new developers have to re-learn how the existing software was built is one of the biggest cost factors in software development. The time it takes to understand how previous developers decided to solve problems in a complex pile of files can be upwards of a year or more. If the average tenure of a developer on a project is only 2 years before they are promoted or move to another project, then the company gets very little time of a developer working efficiently. At this point in a projects life, having tests improves the productivity of developers. Tests allow new developers to catch issues they wouldn’t have known about, helps them learn faster about why things are done the way they are, and reduces the likelihood of introducing a bug that takes a long investigation to diagnose and fix in unfamiliar corners of the software.

    As developers our job is to write software that adds new features and continues to provide value to users and that stays competitive. After a few big bugs have slipped through from lack of test coverage both developers and project managers will lose confidence in the ability to develop new things and make changes to the code. Simple library upgrades and security patches may be delayed or ignored for years out of fear of breaking things. When a team has fear of making software changes it can doom the project unless addressed. The ability to work on innovative new ideas is replaced with more mundane fixes and patching bugs. It won’t take long for things to get so out of date, so unmaintainable and so boring to work on that two things will happen: The best developers will jump ship and move onto more interesting projects and the remaining good developers will start to push for a re-write from scratch. This is a doubly bad spot to be in as a business. The parting developers take with them the knowledge and expertise that’s required to be productive leaving holes in the team that will require new people to relearn what has been lost. And secondly, the cost of a re-write can be massive and not viable, it’s risky and time-consuming. Not addressed, this will rot a project until failure.

    These are the lessons I have learned from working on dozens of software projects over 15 years about the value of tests. I started as a huge skeptic. It took a while, but I’ve come around to see them as indispensable.

  • Global Kick Towards Abundance

    The utopian future portrayed in Star Trek takes place is a post scarcity society where money has lost it’s importance and people more or less have the access to food, energy and housing they need to live as well as the freedom to acheive their personal life ambitions without worrying about where the next paycheque is coming from.

    We’re not there yet.

    But we do live in a time where technology is advancing very quickly, and around the forseeable corner is things like self-driving, automated factories, delivery drones and AI that could smash millions of jobs out of the economy faster than we can adapt. Technology is driving a deflationary effect that is causing prices to drop at an accelerating pace. This has been happening for a while now (though not always apparent) and the only way that the global finance system has staved off deflation is by printing massive amounts of money to counteract price drops. This has been critical to avoiding the situation where the massive amounts of debt in the world cannot be possibly paid off with future dollars that are more abundant due to inflation. For over a decade now, we have had near-zero interest rates and massive government spending attempting to goose some inflation, but it’s been less and less effective at doing so.

    The gobal situation with massive job losses, and work from home, lockdowns are a potential trigger that could cascade into a future where deflation finally takes over and prices start to fall. Suddenly people are being forced to use online shopping, click and collect groceries and finding out that there are a lot of products and services they don’t need. Stores may start to adapt by making contactless delivery the preferred way to purchase. and as a result start scaling back on retail presence. Ultimately the cost savings from this will turn into lower prices for consumers.

    I’ve always thought that things will transition to the point where ultimately the end-to-end creation and delivery of a product will not require humans in the loop – automated mining machines composed of high-quality mining equipment parts or farming or tree cutting will deliver materials to factories built and operated by automated robots, powered by electricity from solar panels made and installed by robots. The only scarcity will come from patents, information access, and land-use.

    What would happen to the cost of electricity if robots could turn sand into solar panels and ship them to your house with zero humans required? What if the robots were open-source designed and mostly 3D printable?

    Despite the unprecedented amounts of money that governments around the world are using to keep the current system going, I’m not sure it will be enough to restore consumer confidence and get people back into their old habits of spending and borrowing and investing. Time will tell if the current experiment with helicopter money directly into people’s pockets keeps things rolling forward for long.

    Right now millions of people are finding ways that working from home can be productive. Businesses are going to be looking at the productivity benefit of having office space and many will come out of this forced work from home with a realization that the ROI on office space is not worth it in some cases. retail shopping will take another shift towards Amazon for everything.

    We will have perhaps a year or more of people investing in ways to continue operating their businesses without needing to have people interacting with eachother with physical proximity. These investments will accelerate towards more robots and drones.

    The march towards abundance is unstoppable. Staving off deflation will necessarily fail at some point as a result. This current crisis will be the kick that forces a re-think of many of our most established institutions and accepted norms.

  • Lockdown Projects

    Making the most of things when stuck at home for the last couple of weeks, and plans for the next while. I’ve been chipping away at various small projects. I’m looking for things that I can get done with the things I have at hand and not going to the store.

    One of the recent purchases I made that has made a good difference was a package of 8 T5 LED strip lights for the garage and crawl space.

    replacing some flickering flourescent tube lights with new LEDs has made the garage a place that is bright and workable.

    Continuing with the garage parjects I modified my workbench to build in a table saw, add hooks for rolls of tape, wheels were added to make it possible to move, and the shelves were improved:

    Indoors I spun up the 3D printer to create a soap dish for the bathroom:

    Most recently I created a small box/shelf so that I can put the tool box on the hand truck and move it around easily.

    Improvements to the garage are turning it into a space that is clean and functional. One of the design motivations I have with the garage is to put everything possible on wheels. With a small space, having the ability to move things around on carts helps make the tools more useful. I can pull things out to the driveway for bigger cuts, and tuck things away to make space.

    There’s more things in the in the plans to get done.

  • The Frequency of Disaster

    In the midst of the current global crisis for COVID-19, I was reminded just how often we have found ourselves in Bug-in situations over the last decade. We have been personally impacted by 4 significant events in the last 12 years.

    In 2018 a tornado ripped through a power distribution station in Ottawa knocked out power for the better part of a week. All our frozen food thawed, we were without internet and hot water for long enough to be worried. The limited communication and power made it difficult to know what was going on, or keep our phones charged.

    In 2013 we were in Calgary for the flood of the century. My office was flooded and closed for several weeks when all of downtown Calgary was under several feet of water. Luckily our house was on high ground.

    And back in 2008 we were in Vancouver when the power substation downtown exploded. This time as well, my office was impacted and shut down for a week.

    These events that last long enough to outlast all our laptop batteries, or the normal week worth of food in the house are where it starts to get into the territory of an emergency scenario. And given just how often these events seem to come up, having some preparation is probably a good idea.

    We’ve averaged one emergency scenario every 3 years, there’s no reason to believe that those are unusual odds to continue into the future.

    Probably not a bad idea to have emergency preparation as part of an annual re-assessment calendar reminder.

  • Making Things Happen

    There’s a limit to the things a single developer can accomplish as part of a project. I get a great deal from checking things off my todo list. You can write great code and propose great ideas, but there’s a limit to what a single person can accomplish without a team.

    A team can accomplish a lot. Multiple people with different perspectives and expertises can pull together in the same direction to build amazing things. Even still there is a limit to what a single team can do.

    Making things happen can take the effort of someone to reach outside the boundaries of the team they belong to bridge the gap between teams. Getting teams to work together towards a common vision is how mountains can be moved. Getting developers to work in coordination with sales/marketing, and management. Getting developers that work on different individual goals to all pull together in the same direction is an amazing challenge.

    Communication is the key skill that can accomplish so much. An individual team member can often perform amazing things quietly working on tasks. But the communication of who you talk to, the words you use, how you connect people and ideas you push out of your brain can build teams, can inspire people, and it can make bigger things happen.

    But saying that communication is the the critical main component to make things happen is not particularly helpful without understanding the vast complexities of the individual tasks. How to run a meeting, the various types of meetings, how to handle difficult conversations, how to distribute ideas more broadly, how to propose ideas, how to shut down ideas, how to keep people on task and focused, how to know what conversations need to be had, what people need introductions and what people should be on a team or taken off the team. Much of this come down to practice, experience and organizing your thoughts. But for anyone who doesn’t stumble onto being good at this kind of thing, it’s very difficult to find books or resources on getting better at them.

    If there was a formula for what to say when to whom in all situations, then humans wouldn’t be relevant. Until then what you say when you say it, how you say and to whom you say it to is perhaps one of the most open-ended problems we can think through. Saying the right thing at the right time in the right way to the right people can change societies or more simply, help you get a promotion.

    In an effort to make things happen, sometimes those things are simple physical things like fixing a squeaky door in which case some how-to knowledge is what it takes. Other times it’s convincing someone to build a small business with you. But getting 1000 people working together is a completely different game, and this is something that I’m spending some more time thinking about.

  • Change Begets Change

    It’s amazing just how much making a change can trickle to other changes in life. Moving and a new Job are things that can kick off a cascade of other impacts. This year I did both of those things.

    Switching from a self-employed, and renting back to employed in a normal 9-5, and owning + mortgage resulted in many changes in my day-to-day.

    I used to be engaged with personal projects – multiple websites I was working on launching plus writing, drawing, and creating a youtube series. These were things based on my interests and ambitions. I had time to go to the gym everyday.

    Since buying a house, all of those things have stopped progressing. Of the 24 hours in a day – 8 are sleeping, 8-9 are working and the remainder are spent in traffic, eating and working on the house.

    It’s been a near complete change in my day-to-day patterns of living.