Readit News logoReadit News
Posted by u/going_to_800 6 years ago
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)?

closed · 6 years ago
Many comments are focusing on kanban procedures, but the most important parts of solo development for me are social milestones. For example...

* Who will I show X feature to?

* When will I show it to them?

* Can I show them a draft?

To me, the biggest risk of solo development is not how I manage a todo list, but that I'll build the wrong thing, because I waited to get feedback.

Some things that have helped me a lot...

* set up a time to show someone your progress on feature X before you feel totally ready to.

* ask someone to try and pick up and tweak some layer of your code (or pair with them)

* if you are developing a library--record hour long screencasts where you use it in a realistic way. Prioritize issues where you say, "oh, I should fix that...". Repeat but with another person driving.

I use github projects and a calendar (the calendar appointments feel more important!)

lliamander · 6 years ago
This is really good advice even if you are not a solo dev. A lot of devs that I have worked with (and this includes me at times) come with the expectation that they will be handed a task with a list of requirements, and all they have to do is check off the boxes and turn in the code. If QA found no bugs, then it's good.

Even when things really are that clear cut, junior developers still often need a lot of feedback that they are on the right track. Part of maturing out of that initial stage comes from when you can autonomously take a well defined task, break it down into steps, and execute it.

Maturing to the next stage requires that you be comfortable working in situations where the requirements are not clear or set in stone. At that point, your objective is not merely compliance with the spec (if there even is one) but that the code solves the problem as intended. Since developers are rarely in a situation to determine that for themselves, you have to become comfortable again with asking for feedback.

closed · 6 years ago
That makes a lot of sense!

> Part of maturing out of that initial stage comes from when you can autonomously take a well defined task, break it down into steps, and execute it.

It seems like this is the scariest part--since often whether a task is well defined feels more like an assumption. In a lot of ways, I think this is the value of social approaches--you have to answer, "how could I convince so-and-so that this is well defined?"

pezo1919 · 6 years ago
On validation: totally! Its nice to have a set of people who use your app regularly or at least at times you ask a related question. Many times the last, finishing idea of a feature came from a "tester".
drums8787 · 6 years ago
100%. I'm essentially solo in a larger group of "stakeholders" and shoot & share videos on a semi-daily basis to verify progress. More frequent dependent on the complexity & uncertainty. But I try not to overestimate my own certainty on a feature.

People generally appreciate being kept in the loop, and that they can review on their own time. It also helps me to drive towards a level of completeness that I can show something in a 1-2 min video.

forgotmypw · 6 years ago
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.

cacozen · 6 years ago
I use a todo.diff - so the text editor color codes my lines started with `+` and `-`
jvanderbot · 6 years ago
Similarly, I use todo.md, and have VIM highlight "[ ]", "[x]", "[>]", "[v]", and "[-]" for bullet-journal-like TODO, DONE, Deferred, Dropped, and FAILED, respectively.
jedimastert · 6 years ago
That's such a hack, I love it.
john-radio · 6 years ago
So you add tasks starting with `-` and change them to `+` when they're "checked off"?
winrid · 6 years ago
Nice!! There is a cool Todo plugin for Sublime that I used for like a year.
hilti · 6 years ago
Love it: simple and easy to maintain. Thank you for this great idea!
hu3 · 6 years ago
I'm stealing this.
cmstoken · 6 years ago
Pretty neat trick.
huydotnet · 6 years ago
wow. great trick!!
bcrosby95 · 6 years ago
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.
ashton314 · 6 years ago
+1 for org-mode. I also used Trello. Once I found beorg for iOS, I decided to switch everything to org-mode.
qorrect · 6 years ago
More love for org-mode for development. You can also schedule items for major milestones ( or anything ).
matfil · 6 years ago
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.

neltnerb · 6 years ago
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.

s3tz · 6 years ago
I use a similar approach, but with a VSC extension. I use this one: https://github.com/fabiospampinato/vscode-todo-plus, although I bet there are plenty others and for your editor of choice.
DevX101 · 6 years ago
This is awesome! Thanks.
z3t4 · 6 years ago
Does anyone else have a problem that this file just keeps growing?
forgotmypw · 6 years ago
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.
DougWebb · 6 years ago
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.

graphpapa · 6 years ago
Yes
jvanderbot · 6 years ago
I use todo.md, and have VIM highlight "[ ]", "[x]", "[>]", "[v]", and "[-]" for bullet-journal-like TODO, DONE, Deferred, Dropped, and FAILED, respectively.
EdSharkey · 6 years ago
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.

Deleted Comment

etherio · 6 years ago
Literally exactly what I do. I also wake up at 3 am with an idea and put it as a reminder on my calendar.
Doctor_Fegg · 6 years ago
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.
bilekas · 6 years ago
based on your name, im guessing you have a `password.txt` also ?
njsubedi · 6 years ago
Do you judge people by looking at their usernames, or by checking whether they end their sentences with "also" also? ;)
zylepe · 6 years ago
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.
Reedx · 6 years ago
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.

Deleted Comment

Dead Comment

dpcan · 6 years ago
I use Trello, then it gets messy, switch to Keep to start over, that gets confusing or messy, I have a txt file with my todos, that gets messy, I try a project management tool like Basecamp, doesn't do the trick, start over fresh on Trello, that gets messy.... I think you see where I'm going with this.
DougWebb · 6 years ago
I have a very similar process, except I also insert "Let me start (over) building something to manage this properly" into each cycle.
jamil7 · 6 years ago
Allocate a few minutes everyday to clearing up and planning the trello board. Same as you would a kanban board.
osrec · 6 years ago
I actually settled on 2 text markdown files. One for short term and one for long term tasks and notes. I usually have a list pending tasks and a list of done tasks in each file somewhere (usually at the top). Sometimes I include some very detailed notes in there too, giving each one it's own h2 title (##) and new sections almost always get added to the top of the file rather than the bottom. I also never delete anything, but I have an '## Archive' section at the bottom where I'll periodically move stuff to. I'll also rearrange the sections sometimes to make them all hang together better.

It gets messy, but it's flexible, and when I run it through a markdown formatter it looks fairly nice.

huydotnet · 6 years ago
I also use a text file to keep a daily development note, like a blog post but keep it in the project’s root just for me to see what’s I’ve done and what I’m planning to do in the next day.
poxrud · 6 years ago
Do you add a new entry every day to the top of the file? Do you check this into git?
gremlinsinc · 6 years ago
I do this in all projects usually.
OGWhales · 6 years ago
Someone else mentioned using a little post-it notes. I do that at work but never considered the extent to which it helps limit how much I can write, forcing me to more pragmatic about my list.

I sometimes try to plan things on a bigger piece of paper or on my computer in txt file but it always gets super messy. I usually prefer to use a post-it note anyway, so I never really thought it about it.

jrhurst · 6 years ago
Could you elaborate on how things get messy?
cabaalis · 6 years ago
For me:

Trello: boards get stale

Txt file todos: more todos are added each day, none get removed because of new ones added!

Basecamp: same issue as Trello.

In this second half of my career I've dealt mostly in startup development. MVPs just pivot too much. It's a ride.

knrz · 6 years ago
I’ve been using Notion to integrate the kanban board, free form notes & references, client proposal documents, etc. all into one place.
productmaster21 · 6 years ago
I use Restyaboard to integrate the kanban board, probably the best looking and working kanban out there.
pezo1919 · 6 years ago
Same happened to me. For me outliners were a good enough solution. (Like moo.do)
muzani · 6 years ago
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

franciscop · 6 years ago
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.

talkingtab · 6 years ago
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.

geniium · 6 years ago
As many other have suggested, I found ClubHouse [1] to be the best balance for solo dev.

I have tested and worked with many. Asana, JIRA, Trello were all tested alone and with small or medium sized teams. None were as simple to use and clean as clubhouse.

It was always hard to keep the big picture while going into details with theses software. But with Clubhouse am using Iteration to define the big picture and the planning of the upcoming weeks and it just works great.

Their support team is on Slack and reactive to feedback. The software seems really progressing well and the UX is polished and well thought. They really are building a cool product.

Note that I have no affiliation of any kind with any of theses software. It's just my personal taste and experience of the last ~ 10 years of software development and project management (am a Product Owner in a software company).

Wondering what will be the next one I'll use after Clubhouse.. time will tell!

[1] see https://app.clubhouse.io for more

eashman · 6 years ago
I will second Clubhouse as a great tool. It’s far better thought out than Jira and attuned to software life cycles unlike Trello.
Pfhreak · 6 years ago
I use github projects with a Research/Maybe, Todo, In Progress, Testing, and Done columns. Each item has a checklist of steps needed to complete the item. For example, I might have an item that is "Workers have an inventory" and a bunch of steps to do that "Add an inventory component, add a take item event, etc." that are markdown checkboxes.

This lets me do some 'design' via listing out all the classes/touchpoints, while still giving me the flexibility to tear stuff up, shuffle it around, and not lose state.

I'll also often keep one text file with very tactical todos, stuff I was in the middle of typing out when interrupted, so I can quickly get back into flow state.

K0SM0S · 6 years ago
I do pretty much the same manually with Kanbanflow (columns represent days, leftmost is "now/current", rightmost is whatever's pushed later to my next sprint). I combine this with a pomodoro color-code for "short/easy" (1 pomo), "medium" (2-3 pomo), "long/hard" (4+) and plan my day.

I took this from uncle Bob, you just give things a rating (unitless). "Oh, that's a 6, no less!", "oh that's a 2 at most". It's enough for development (I find it's only management that wants more 'reporting' and 'estimates', being solo I do that in medias res, i.e. on the spot).

However you got me curious with github projects. It seems it would integrate better for programming / design. I definitely have to experiment! Any tips to boot?

ww520 · 6 years ago
I use an org-mode text file for simple project management. It has two sections: Todo and Release. The Todo section has the todo items; some are marked as #feature for high level functionality and as #bug for bugs. Todo's have a life cycle of TODO/WORKING/DONE/CANCELED. When a release is made, the done items are moved to the Release section. A release has two lists: Feature and Changes. The done features are moved under the Feature list and other done items are moved under the Changes list. The Todo section manages the current tasks and the Release section captures the history.

Add new feature or ideas to the end of the todo list. Add related todo's under a feature line. Add bugs as they are found. The order of the todo items is the priority. Move them around as needed. When canceling a todo, record the reason, so in case if it comes up again, you have a record of decision. That's it. It's pretty simple.

Below is a sample from one of my side projects (solo dev).

    * Todo
    ** DONE Filter out Export Panel page when doing session snapshot.
    ** DONE Add command "Optimize Tab Favicon" on the Utilities tab in Preferences.
    ** DONE #BUG cancelled dialog causes double event firings on the next dialog action.
    ** WORKING #FEATURE dark theme mode support.
    ** WORKING Add light theme, dark theme, and default theme.  Refactor CSS.
    ** TODO Apply theme to components.
    ** TODO #FEATURE session push to remote devices.
    ** TODO #FEATURE Localization.

    * Release 2.11, 04/02/2019
    ** Feature:
    - #FEATURE Package the custom Web Components with the addon distribution.
    ** Changes:
    - #BUG All the dialogs are not showing, due to the missing custom components in the distribution package.
    - #BUG Error when a pinned tab is restored with the 'discarded' flag set, for lazily loading.
    - Restore active, reader-mode, or pinned tab as fully loaded tab, no lazily loading for them.

    * Release 2.10, 03/14/2019
    ...

    * Release 2.9, 02/21/2019
    ...