Lately, I’ve been astonished at how much you can cut from version 1 of a project, and how much is not only tertiary to the problem at hand, but how many of the features often deemed “necessary” are not only unnecessary, but they’re solving an entirely different problem altogether.
Before we get into it, an appropriate soundtrack:
I post this because:
- It’s a banger.
- Anything with Anderson Paak is very likely to be a banger, and should be shared far and wide.
- More appropriately for this blog post, it’s a hype song. It’s like “yeah, I’m getting shit done, passing every green light”.
Anyway. What do we “green light”, what gets the “yellow light” of a “v2 or later” deferral, and what gets a solid red stoplight of “nope”? How do we decide?
Lately, I’ve been talking with my friend Dane of v1Labs about micro apps, and although I think my work will diverge from his particular strategy, one thing stuck with me that relates to this: “do one thing”.
Sounds a lot like the Unix philosophy, right? “Do one thing and do it well”, IIRC…so that gives us a good litmus test. Does the feature or addition to the app help the app do the one thing where it excels? Does it do so well?
This line is fuzzier than I seem to let on, here.
Green or yellow, vs. red, is a fairly simple distinction – just use the litmus test I described, and be conservative in what you accept as a green-lit feature. The much more difficult distinction is green or yellow. Does feature X belong in v1, or a later iteration?
Of course, this is largely a judgement call on your part – you can probably tell what can wait. But that’s the question that has to be asked, a critical question: “can this wait?”.
In other words, can you serve the use case you set out to serve, without the proposed feature? If so, it’s an iteration. If not, you’d better add it to the todo list.
Speaking of which: I interrupted a project to write this. This was a green-light-type post. The rest I have to say, can wait.