Ask HN: Solo devs, how do you plan your development?
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 ] threadhttps://www.zenhub.com/
GitHub w/ Slack is enough for me
Best of Luck ;)
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
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.
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.
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.
Basically bubble sorting the list frequently based largely on a combination of impact and what I feel like doing at the moment.
Luckily, over time todos tend to become todon'ts, so losing track of the old ones isn't generally a problem.
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.
Like this: https://github.com/jodavaho/bashlog
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.
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.
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
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.
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.
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).
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.
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.
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.
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.
I've been just deleting things from TO DO lists when done.. which isn't very satisfying!
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.
https://github.com/USER?tab=projects
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.
As a solo founder, thinking too much about optimization will just make things complicated.
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.
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.
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.
#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 still use Trello for my non-project work, though.
I think when things are small adding too much tooling or process is counterproductive.