February 9th, 2020
This is my process to develop a feature quickly and efficiently.
I am, by no means, an expert at programming, design, product, UX, etc. In fact, I'm pretty mediocre at all of those. So take this with a grain of salt.
The hardest thing (for me) about building a feature is the "scope" of it. Before the feature is even planned, I have something in my head that I want to do, or something that needs to be improved in my app.
For this post, let's use an example.
The thought in my head was:
I am, by no means, an expert at programming, design, product, UX, etc. In fact, I'm pretty mediocre at all of those. So take this with a grain of salt.
The hardest thing (for me) about building a feature is the "scope" of it. Before the feature is even planned, I have something in my head that I want to do, or something that needs to be improved in my app.
For this post, let's use an example.
The thought in my head was:
"I want to improve the filters on Starter Story. If we expose these filters, it may lead to more signups, more money, and more people thinking the site is cool. We have been collecting a lot more data on businesses but we still haven't exposed these filters on the website."
Now, at some point that turns into an item on Notion roadmap/board, like this:
Now it's a feature, and I've planned that I want to implement it today.
This is the hard part. Where do you start? And how do maximize your time spent and get this feature shipped?
Checklists. Checklists. Checklists.
In that same Notion item, I open it up and create a checklist.
This is how the checklist looks at the beginning, I usually put some basic stuff in the beginning. And some of the more "meat" at the end.
Why? Doing small, easy things makes it easier to get started.
- As I start implementing each small item on the list, I check it off.
- As I'm building, I will think about more and more things I want or need to do. I'll keep adding those to the end of the list.
What usually happens is that I find random things I would never have found "as I go". Sometimes these aren't always "need to have". That's OK, you can still throw them on the list, and never implement them.
The important thing is that you just get them out of your mind so you can keep making progress on the feature.
As I get to the end, I'll have lots of "cleanup" stuff, like making sure everything fits on mobile, edge cases, etc.
At this point, I will probably knock off a few things that are "nice to have" and maybe throw those in a "someday" bin.
And then I'm done!
I find the checklist method to be an amazing way to break up even a small feature like the one here.
The end result? A very quickly developed feature.
Here is the end result of the feature, btw.
I recently came across this video that confirmed my checklists thing works!