Then my project's "second 90%" starts looking insurmountable and I start losing motivation and inevitably burnout. Which is not very good as the second 90% usually involves marketing, talking to users, figuring out monetization and all the important bits.
As a dev, I feel the most productive when I know exactly what to do next and I can just keep banging out task after task. Autonomously coding in the flow where it all seems to pass in a blur.
This is easier to do in jobs, not so much in alone side-projects. So, I want to find a todo/kanban/project management app, that specifically makes this easier.
I want to sit down once, decide on the order of tasks that I want to do, preferably only "see" like the top 2 or 3 at a time and then do them one at a time.
Once a task is done, it should ideally just fade away or something. I find archiving a card in trello rather unsatisfying and looking at it as crossed out in jira somehow doesn't feel great. Like, to me it seems like a good use case to add some gamification to keep up the user's motivation. I completed a task! Show me a nice animation while you chuck the task in a completed bin or something.
An app that essentially focuses on reducing the cognitive load and helping break it all down into smaller chunks that I can do one by one. Anything like this out there?
One of the techniques I've found useful is simply starting new task lists every now and again, especially when I'm feeling overloaded. Don't transfer stuff, just add what you need to do off the top of your head.
You can keep the old ones to double check later, but I rarely ever do, the really important things will get added again.
Another thing to note, you really should have tried to sell at least one copy before you wrote a single line of code. I keep making this same mistake, but leaving the sales part until last is a recipe for disaster. That stuff shouldn't be in the second 90%.
I'm not sure if it helps but maybe check out The Checklist Manifesto (https://www.amazon.com/Checklist-Manifesto-How-Things-Right/...)
I usually use the front of a page to list the main tasks, the back of a page for smaller tasks/tweaks. Cross things off as you go.
One page per user story is the primary constraint. Otherwise the plan is too big and needs to be split.
If you need the validation feedback, there’s nothing like a notebook with pages of marked off tasks.
You can take this many ways, I usually draw lines between chunks of connected tasks, box critical things, etc. The interesting thing about this ad hoc approach is that you will basically discover your organic organization process, which could lend to building your own better tools (or at least it is definitely informing what I would build).
I think it's important to keep the DONE section, it can be very motivating to see this pile of work that is already done!
I like Things on macOS and iOS, as well as the multi-platform Todoist.
Have you tried using GitHub or GitLab for code related work?
You can have the following to accelerate work:
- Issue templates to reduce the friction to write well specified issues. Templates for bugs, features, and incidents will go a long way. You can create issues simply by sending an email to a specific address. You can save the issue templates as email templates, and create issues by sending an email. This reduces friction so you don't have to open a browser, sign in to the repo management application, go to the repository, click on a button to create the issue, click on the drop-down to choose the template, and then edit the template, then hit save.
- Tags: you can have Todo, Doing, Done tags for a start. Others may include Improvement, Docs, etc. You take one and only one issue from the Todo, change it to Doing. Create a merge request. Checkout the newly created branch. Commit, push, and merge it. The issue is closed automatically.
- Use milestones: you can pick a handful of issues you want to tackle for a given week, and tackle only those, one by one.
- Get users for your applications and a dedicated Slack workspace. It's one thing to develop in a void, it's another when you have users who can reach you on Slack complaining about functionality and depending on your software to work. It can really focus your effort, and light a fire up your seat, as you wouldn't spend time on vain features, but only on what matters: the bugs that are most frequent with the highest impact on work getting done, and functionality that makes life easier. Users will quickly tell you what matters. Not even talking about the feeling of serving real users. Even one.
- Add monitoring and analytics so you can see how people are using the software, and capture errors and exceptions.
- Add logging for successful actions and failed actions. Are the users failing to accomplish a task. Can you make it easier?
- Write the product description before writing the product: what would be cool to exist in the world that doesn't? What would it do, etc. And then decompose those issues. But having an overarching story for the thing you're building makes it tighter and helps you focus.
For a low footprint solution, you can use TaskWarrior[0]. It has a CLI, writes to JSON files. My .task is a repository and I have a script to push everything, so I can go to another laptop and simply pull my tasks. In other words, my tasks are version controlled. An entry in an rc file:
function tupd() {
git -C ~/.task commit -a -m "Update tasks $(whoami)@$(hostname)"
git -C ~/.task push
}
>I completed a task! Show me a nice animation while you chuck the task in a completed bin or something.I think you would have a bigger dopamine rush by having working software than having a nice animation. As a system, you would start optimizing for that animation, and probably make up bogus tasks that are easily completed just to feel productive.
TaskWarrior tells you "There are more urgent tasks" if there are tasks with a score higher than the one you just completed. I like that attitude.
Cognitive load can be amplified when using the wrong tools for the task, and I find that Trello/Jira are in a universe that is simply far from code.