How to blog An Article by Tom MacWright macwright.com Own your domain and use simple technology Never change the technology Write something on a schedule Never change the technology Things Learned Blogging blogging
Hacking is the opposite of marketing An Article by Tom MacWright macwright.com One of my favorite definitions of “hacking” is the creative reuse of tools for new and unexpected purposes. Hacking is using your email account as a hard drive, using your bicycle seat to open a beer, using Minecraft’s red bricks to create a calculator in the game. The opposite of hacking is marketing. Marketing tells you that this particular non-stick pan is the pan you’ll use to make omelettes, and you’ll do it in the morning dressed in fashionable clothing in a nice kitchen. It includes a photo and inspirational copywriting to drive this home. Marketing dictates a style, context, and purpose for even the most general-purpose products. This narrative needs to be specific so that you can readily imagine it: it’s you, in an Airbnb, laughing with friends. All sorts of ways to use the machineIn ways you didn't anticipateStretching the product toolsadvertisingcreativityutility
The return of fancy tools An Article by Tom MacWright macwright.com Technology is seeing a little return to complexity. Dreamweaver gave way to hand-coding websites, which is now leading into Webflow, which is a lot like Dreamweaver. Evernote give way to minimal Markdown notes, which are now becoming Notion, Coda, or Craft. Visual Studio was “disrupted” by Sublime Text and TextMate, which are now getting replaced by Visual Studio Code. JIRA was replaced by GitHub issues, which is getting outmoded by Linear. The pendulum swings back and forth, which isn’t a bad thing complexitysimplicitytoolssoftwaretechnologynotetaking
Picking better names for variables, functions, and projects An Article by Tom MacWright macwright.com Avoid weasel words Follow patterns religiously Don’t cheap out on characters Call things the same thing Don’t name internal projects When things change, change their names namescode
The Fidelity Curve An Article by Ryan Singer m.signalvnoise.com How do we choose which level of fidelity is appropriate for a project? I think about it like this: The purpose of making sketches and mockups before coding is to gain confidence in what we plan to do. I’m trying to remove risk from the decision to build something by somehow “previewing” it in a cheaper form. There’s a trade-off here. The higher the fidelity of the mockup, the more confidence it gives me. But the longer it takes to create that mockup, the more time I’ve wasted on an intermediate step before building the real thing. I like to look at that trade-off economically. Each method reduces risk by letting me preview the outcome at lower fidelity, at the cost of time spent on it. The cost/benefit of each type of mockup is going to vary depending on the fidelity of the simulation and the work involved in building the real thing. Four levels of fidelityTime to build versus confidence gained prototypesinterfaces
Four levels of fidelity Suppose we have four levels of fidelity… Rough sketch (on paper or an iPad) Static mock-up (eg. Photoshop or Sketch) Interactive mock-up (eg. Framer, InVision) Working code prototype (HTML/CSS, iOS views) Depending on the feature you’re working on, these levels of fidelity take different amounts of time to create. If you plot them in terms of time to build versus confidence gained, you could imagine something like a per-feature fidelity curve.
Time to build versus confidence gained Show image 0 Show image 1 Show image 2 Take a simple CRUD web UI, where you’re just navigating between screens. It doesn’t take much more time to build the real version than it does to mock it when the design is simple. If you were to build out an interactive mock first, you would end up spending twice as much time in total without gaining much out of it. Contrast that with a complicated Javascript interaction. Or a native iOS feature that requires programmer time to build out. If it takes substantially more time to build the real code version, then it may be smart to do an interactive mockup first.