Ask HN: Solo devs, how do you plan your development?

338 points by going_to_800 ↗ HN
I'm wondering what framework do you use to plan your product development.

Right now I'm using just Trello with a 4 lists, Planned, In-progress, Staging and Production. Works ok but I feel I can do better, like adding a progress % or something to get a better overview of my tasks.

Are you using any agile framework that's simple and good enough for a solo dev (and maybe to support a team of max 3 more devs in the near future)?

189 comments

[ 0.23 ms ] story [ 295 ms ] thread
I’m using https://linear.app. It plans “cycles” for you based on how much you accomplish.
What’s the secret to get past the Typeform and actually try this? Or should I seek out an invite link from a peer
Most tools have a lot of overhead. As a solo dev, your advantage is speed, but a little friction and grist is needed sometimes.

It takes only an hour or so to restructure it for more than one person, so cross the bridge when you get there.

For to do lists I use Sublime+PlainTasks plugin. It's fast, sticks in your head. If you want something cloud, Workflowy might be good too.

Without a product manager or scrum master it's also easy to get into tunnel vision and stray. I sometimes enjoy having an extra person to bounce ideas off and tell me to keep on track. If it's a startup, get a co-founder, give them 10%-50% just to tell you listen to you. It seems a little unfair, but it's worked for me.

Another trick would be a design doc to remind you of design decisions. I'm happiest with this format: https://random-character-generator.com/whatisthis

I agree, for my open source it's based on what I need and I throw code in and out quite fast. I have a mental "list" of things that bother me so I try to do these when I have a moment. If I forget something in the list, it was never important by definition.

This is mostly for projects made for fun though, I would not recommend this for a startup-like solo dev.

Edit: I also do an overview from time to time of the projects as a whole and decide if a larger feature is important.

Perhaps I'm too old school, but pen and paper works best for me at least for short term planning, for more general/longer term roadmap GitHub project boards do the job.
(comment deleted)
I have a file called todo.txt, with the current tasks at the top, and everything else below that. It is in version control.

As I finish stuff, I delete it out of the file.

I add new stuff towards the top if I want to do it soon, towards the bottom if I want to save it for later.

For things which are just ideas, I have a second file called brainstorm.txt.

based on your name, im guessing you have a `password.txt` also ?
Do you judge people by looking at their usernames, or by checking whether they end their sentences with "also" also? ;)
:) I find humour in odd places I guess, no ?
Yeah, I put once "experienced kamikaze" as a role in my resume. Frequency of interview requests did not change ...
That's almost word-for-word what I like.

I'm actually pretty certain this approach, with the TODO file in VC, would work fine at least up until 4-6 developers, as long as everyone hits a basic level of competence -- but in practice, someone always suggests a more structured tool well before that point.

Similar to that, but I try to group the tasks into upcoming releases. It's quite an effective way of forcing myself to do the unglamorous fixes along with the whizzbang new features.
Literally exactly what I do. I also wake up at 3 am with an idea and put it as a reminder on my calendar.
(comment deleted)
This is what I do too. I tried using things like Trello but found the friction to be too high. I use org mode instead of a regular .txt file though.
+1 for org-mode. I also used Trello. Once I found beorg for iOS, I decided to switch everything to org-mode.
More love for org-mode for development. You can also schedule items for major milestones ( or anything ).
Same here, though I handle the ordering loosely.

Basically bubble sorting the list frequently based largely on a combination of impact and what I feel like doing at the moment.

Does anyone else have a problem that this file just keeps growing?
My problem is that I lose track of where all of my todo files are; I work on too many (client) projects to keep everything in a single file.

Luckily, over time todos tend to become todon'ts, so losing track of the old ones isn't generally a problem.

It does grow quite a bit. Sometimes I go through the whole file and take out things which I've finished. I haven't found this to be much of a problem.
I'm old school, so I just constantly email myself replies to my past email with a reply to a past email with a past email with a todo list that I freshly created after finally crossing off the old ones.

It helps me sleep to add stuff to my todo list so I can offload anxiety about remembering said thing. It's great, I stole it a bit from a Buddhist meditation practice, but found I didn't trust promises I made to myself that if something is important I'll remember it later. Too much important stuff is planning and I don't like needing to burden others with reminding me to do things.

I use a todo.diff - so the text editor color codes my lines started with `+` and `-`
I'm stealing this.
Nice!! There is a cool Todo plugin for Sublime that I used for like a year.
Love it: simple and easy to maintain. Thank you for this great idea!
So you add tasks starting with `-` and change them to `+` when they're "checked off"?
Mine is called SCRATCHPAD.md. :D

Writing down the brainstorm stuff is important to me because if I don't write it down, I am tempted to drop what I'm doing and work on my ideas or else lose them. If I went and implemented every random idea that popped into my head, I'd never get anything done as was the case for me in the past. I write these huge long essays to get my ideas and frame of mind fully described and that usually satisfies me to where I don't have to drop everything and implement the idea right there.

I’ve been doing the same thing (todo.txt) for a while, surprised to learn it’s not just me. I like separating out brainstorm.txt, that would help keep it focused.
(comment deleted)
I use todo.md, and have VIM highlight "[ ]", "[x]", "[>]", "[v]", and "[-]" for bullet-journal-like TODO, DONE, Deferred, Dropped, and FAILED, respectively.
todo.org

Org-mode realllllly makes it better. I keep it open and have 'Pre-launch' and 'Post-launch' todo items, plus major design features have their own heading with steps broken out.

I think the right 'process' for each person is more important than the 'tools' etc.

The tools that will suit your needs , you will learn/make/find over time of use.. The process though is the foundation imo.

I have a few habbits that I absolutely know could be improved on, optimised etc, but they make me comfortable, they are my solid automonomous actions, meaning I never need to worry about them.

Autopilot mode kicks in.

That takes time and just noticing what you don't like and removing / changing those things.

Good luck.

PS: Beer helps! o7

> I think the right 'process' for each person is more important than the 'tools' etc.

This can't be overstated. We often get stuck into looking for "the perfect tool" for things, when the tool is rarely the most important thing. The process is king, and any tools should be chosen to support the desired process.

As a solo game dev, I've tried a number of various project management tools that I use in my DevOps day job... from Trello to Planner to Jira to Azure DevOps. I like Azure DevOps work items the best, but the reality is that for a solo developer, I've found all of these tools create far too much overhead (so that I spend more time managing the project rather than making actual progress on it).

So for practical use... I tend to write my ToDo list on a whiteboard near my workstation.

When I complete items from the whiteboard, I move them into an Excel spreadsheet where I can add greater detail about the resolution/solution.

When I'm ready to release a version update, I take the notes scribbled into that Excel sheet and turn them into properly formatted update notes.

It doesn't really matter. You can write todos down in a piece of paper and still wouldn't matter, because you are alone, everything is in your head mostly and you can go as fast as you like. There is no need to overcomplicate things with complex tooling.
Also using Trello and especially their checklists. Each 'iteration' has a checklist and as I'm done I check it off. I guess they are like issues in an issue tracker with less fuss.

Since I have all the 'iteration' there I also have a 'Future' iteration. As I'm approaching some self-imposed deadline I remove/add tasks from the current iteration to Future.

If I didn't do anything in quite some time I have the tasks right there waiting for me and I can pick one.

This mode of work for solo projects is quite good imho. Used it for openbeans.org / coolbeans.xyz, for mastodon.ro and for another project which doesn't have a website anymore (YaMeter).

I've been doing Trello.

Instead of a "Done" list, I make one with my next version number (e.g. 4.1).

Then, after I release 4.1, I move that list to a "Releases" board and replace it on the work board with 4.2.

After Jira (on demand), Asana, GoPlan App (which was quite good a long time), Trello, OTRS, RedMine and several others, i landed now, hopefully finally(?), at https://www.clubhouse.io

I like Jira at work if its self hosted, but on demand its that damn slow, its more or less unusable (every page load 10-20 sec. etc.).

Clubhouse is especially good since its free for very small teams while not limiting the number of projects/workspaces. And its mainly an SPA, so it feels really quick & responsive.

Personally I use the Notes app available on the MacOS / iOS platforms. I organize it with a folder per project. I love it because it is simple, supports checkboxes, formatting, freeform drawings via iPad+Pencil, syncs across all my devices, allows password locking certain notes (though I don't really use this - I use 1Password to hold sensitive info via its Secure Notes feature) and is even available via the iCloud website if needed.

Within that folder I keep one note that acts as the ToDo list / Work Log that contains all the work items plus dates of completion. The rest of the notes are ad hoc and usually contain stuff like "Meeting notes - <subject> - <date>", "Follow ups", "Questions/Clarifications for later", and so on.

Personal Kanban: http://personalkanban.com/pk/personal-kanban-101/

Try the book.

After the book, you’ll be better equipped to scale from 2 or 3 devs to 20 or 30 devs while remaining low overhead, because you’ll understand the essence of iterative and collaborative development versus what’s been watered down and ceremonialized into Agile/SCRUM.

Thank you! Finished the book already since reading your comment. Very simple, and encourages (and shows examples of) personalized variants, experimentation with the system etc. I like it. Gonna start today.

I've been just deleting things from TO DO lists when done.. which isn't very satisfying!

I use github's kanban board and like the concept of Kanban overall. Some people don't realise that Kanban is quite the opposite of Scrum.

One variation that has worked for me / peers over the years is having a "Next 5" column. i.e. something bigger than Current but smaller than the backlog.

That enables always having a practical, prioritized mid-term plan (assuming you regularly tweak the Next 5 selection).

At the same time you don't stress about a supposed deadline for forthcoming work. You just pick the next card, only when the current one is done. That's called "Flexibility in prioritization" as per asyncmanifesto.

Me too. I recently realized that you can have user level projects instead of repo level. This was a sticking point for me because sometimes a project goes across repos.

https://github.com/USER?tab=projects

I use the concept of demo days - where I demo something to myself. Some people would think of it as a sprint, but a demo enforces that it is something I can actually show. Like "I can launch the program and have it say print 'hello'". In my experience this works much better than stages or percentages. Lots of things just fall out. A demo that has bugs is not a demo for example.

I use a stack of demos, each as a 3x5 card. Low overhead, easy and quick to modify, etc.

As a solo dev it is was too easy to get lost in the process and tools, but this works well for me.

Evernote to record to do for the coming week. Airtable to record issues with priorities. Notepad++ to plan simple algo.

As a solo founder, thinking too much about optimization will just make things complicated.

For 1 person, you can keep most of it in very short form. Currently I use github projects for a prioritised list of items to do, a new board per release and an ongoing Evernote file for notes & ideas.
I’ve tried almost every tools out there but for some reason the one that makes me the most productive is just a plain old pen and a notebook. It is what keeps me in line and focused.

I don’t even write much useful stuffs on it but it keeps me actively engaged on my tasks. So I just have it next to me at all times.

I don’t even look at previous pages so I tend to write what I need to be doing that day.

Same for me. I feel like all these tools just get in your way and you end up spending more time writing cards and todo items than actually crossing them off the list.
A major problem I've seen with Engineers following a TODO-like tasks is that you get lost in the small things and lose focus of the bigger picture.

While they are useful, I also try not to forget things that are vastly outside of the list like regular user testing, talking about it with other fellow engineers (dev testing?), try to make a workable MVP and sell it early, etc.

Need an overarching vision. Absolutement. That's why I like to simply keep track of what I am doing or want to do in a calendar-like way. I never delete things from my logue of completed tasks, I just keep adding new dates and new ideas/finished tasks/want-to-dos at the top. It works well when you have an overarching goal.
I use Bugzilla to track both bugs and other wrok-to-be-done. When I close an issue in BZ, I also add a reference to which version control check-in addressed it.

Using Bugzilla as a general issue tracker makes it easier to prioritize both bug fixing and feature changes, as well as keeping a database of what work I've done, and when.

I use Google Docs. It's accessible from my laptop and phone and anywhere I go. It also has offline mode and auto-syncs when I reconnect to the Internet. Here's my format:

#Todos

- todo1

- todo2

#Dec 2019

Mon 2019/12/30

- Done

- Assessment

- Next

Sun 2019/12/29

...

I also have a big picture sheet for tracking multiple tasks at a high level. Each column is a project, and each cell is a milestone/task currently being worked on for that project. They are color-coded. If yellow, they're being worked on. If red, they're blocked by others. If green, they're done.

I also use Google Docs. I think it's the easiest and fastest to keep up to date and synced across devices. I put main milestones ("version" releases) at top with core features I want to implement and then a bulleted (and sub-bulleted) list of ToDos by prioritized feature below that. At the bottom I have a dump of both future ideas and resources. Has worked well so far.
I use Clubhouse and follow a modified kanban process. It helps me keep on top of dependencies, blocked work, and whether or not I'm overloading myself in a given week/month/whatever.
I've been using Clubhouse for a new solo project as well. I love it. It's so much faster than Jira. It's refreshing using something that loads so fast and has a UI that is nice to look at.
I migrated from Trello to Clubhouse because I really needed support for blockers and dependencies, but Trello doesn't have a good way to do that without paying for certain integrations.

I still use Trello for my non-project work, though.

I too migrated from Trello to Restyaboard. Restyaboard is a brilliant free tool and I've been experiencing it among other tools and it has some great features and ideas there! Restyaboard is an excellent free Trello alternative https://restya.com/board/comparison.
With KeyDB I keep my todo list in my head. Once in a while I’ll go scour github issues or feature requests. So far no other tools have been necessary.

I think when things are small adding too much tooling or process is counterproductive.