Building For Tomorrow

I was listening to episode 412 of the Shoptalk podcast yesterday.

The host was Tom Preston-Werner, the creator of RedwoodJS - a framework for writing modern fullstack (JAMstack🤷‍♂️) applications in JS. It’s all the awesome stuff you would dream of - React, Typescript & Styled-components/tailwind on the frontend and NodeJs, Graphql, Prisma, serverless, etc on the backend.

Tom’s talks about building for the future and his philosophy for building stuff is awesome. He uses game development as an example. In his exact words

We’re building Redwood for a year from now. It’s much like game development. When you build a game, you can’t develop it for today’s graphics cards. You have to build it for the graphics card that’ll exist when you lunch.

Reflecting on this made me realize how shortsighted I’ve been. Lately, I’ve understood that projects to have an incubation period of at least a year. If you start building something for today’s use case, there’s a very huge chance no one will use it when it’s a year old.

NB: This sounds great and makes sense, but like any great idea, there’s a gotcha - going too far into the future and building something way ahead of its time.