-
Maybe you should build a faster horse
2021-04-09
Building features no one uses is the cardinal sin of product work, and building features merely because users are asking for them is a well-known way of committing it. To keep us from falling into this trap, product leaders often quote Steve Jobs: I think Henry Ford once said, “If I’d asked customers what they wanted, they would have told me, ‘A faster horse!’” People don’t know what they want until you show it to them.…
-
Building Better Code Review at Heap
2021-03-20
Note: This post was originally published on heap’s blog Heap — like most companies — has a code review (CR) process. Until recently, that process often involved manually catching trivial issues in PRs (Pull Requests), which led to slow, inconsistent, and low-quality PR comments. To address this, we adopted Prettier, Danger, some custom StyleLint rules, and a Buildkite step that automatically adds specific checklists to PRs depending on which files are changed in our monorepo.…
-
Exposing Imposter User Stories
2021-02-12
The law of raspberry jam — the more it spreads, the thinner it gets — definitely applies to “agile software development.” “Agile” is ubiquitous and nearly meaningless at the same time. You don’t learn much about how a company actually operates from hearing that it’s “agile.” This isn’t a new claim, and it shouldn’t be controversial. OG agile manifesto signatories and prominent programmers have pointed this out already: I was among the seventeen middle-aged white guys who gathered at Snowbird, Utah.…
-
When should we create abstractions instead of duplication?
2020-11-14
Because abstractions aren’t free, sometimes we’re better off duplicating code instead of creating them. If that claim doesn’t make sense to you, read Martin Fowler’s “YAGNI” or Sandi Metz’s “The Wrong Abstraction” or watch Dan Abramov’s “WET Code” talk or Kent C. Dodd’s “AHA Programming” talk. Each of these programmers give advice on when to duplicate code vs. create an abstraction, advice that broadly falls into two camps: either we are advised to follow some rule of thumb or we’re told to ignore rules of thumb, trust our feelings and to only introduce abstractions when it “feels right.…
-
Programming and Forecasting
2020-10-19
Good programmers are good at forecasting. They can often predict roughly how long it’ll take to accomplish a particular programming task. They can also predict when and to what extent a project will see ROI from a particular technical investment. Unfortunately, this skill isn’t guaranteed to develop as we gain more experience programming. In Superforecasters, the authors note that many experienced people are surprisingly bad at making forecasts and that time and experience often don’t make us any better.…
-
Why Mobile IDEs Are Bad
2020-09-23
An old coworker of mine (who is still an android dev) asked me a question earlier today: Why has it become acceptable in our industry to have tools that are such poor quality? He was referring to Android Studio, but we could ask the same question about Xcode, which is also bad: Was it really all that unexpected? pic.twitter.com/QU7GPbOhu0 — Code Standards (@codestandards) February 23, 2017 I mean no offense to the teams working on these products.…
-
Avatar The Last Airbender Language Model and Text Generation
2020-08-15
This week’s TidyTuesday data set is basically the script for all of the Avatar: The Last Airbender episodes. I thought it’d be neat to build a language model from the script and use it to generate new sentences that plausibly sound like they belong in the Avatar universe. In this post, I’ll quickly present some of the sentences generated from the model, and then I’ll dive into how I obtained those results.…
-
A Tidy Analysis of Astronauts and Their Missions
2020-07-21
Introduction I live in Orlando Florida, which is less than an hour away from Cape Canaveral. As you might imagine, visiting the space center and watching launches is a “thing” we Orlando folks do fairly often. I’ve also been getting into R and data science recently via Garrett Grolemund and Hadley Wickham’s excellent R for Data Science. To apply the things I’m learning, I thought it’d be fun to analyze this week’s Tidy Tuesday astronauts dataset.…
-
Analyzing Traffic Fatalities by Vehicle Weight and Size with Tidyverse
2020-07-03
I bought a car recently. I’m cheap and practical and I’m going to be a father soon, so the only things I really cared about were: will the car keep my wife and child safe if they’re in an accident will the car keep running reliably how do I get 👆 those two things on the cheap I’ve also been getting into machine learning and data science recently, so I thought it’d be useful to answer them using some data science tools.…
-
Should we refactor files we're working on?
2020-05-09
When programming, always follow the camping rule: Always leave the code base healthier than when you found it. — Martin Fowler, Refactoring The Boy Scouts of America have a simple rule that we can apply to our profession. Leave the campground cleaner than you found it. — Robert Martin, Clean Code Many of us share the attitude expressed by the above Fowler and Martin quotes. The attitude presumes that code we’re working on now will change again soon, and we’ll reap the benefits of a refactor when that happens.…