I am sure many of you have several side projects you wish to devote time to.
Sometimes I feel myself unable to "optimally" plan and allocate time and resources between projects.
When it comes to software, I feel maybe Jira is a bit heavy, and Trello for example is a bit lightweight?
Is there anyone who wants to share any experiences regarding software or methodologies to organize/plan "optimally"?
# v1 MVP
- skeleton project: with hello world.
- database: add a database to the project and connect to it using code.
- login/logout: add users table and create a simple login/logout screen.
# v2
- reset password: allows user to click on forgot password and receive a new password link in their email.
- themes: tailwind or bootstrap.
And this is what I tried but failed:
GitHub Issues: not ergonomic enough. Requires many clicks and typing to search issues once you get past like 10 issues.
Trello: too simplistic and easy to desync with code.
Joplin: really nice but also easy to desync with code.
Google Docs: nice but also easy to desync with code.
The cards are my literal "tickets" that I write TODOs on (features/bugs, etc) as I think of them and put them in the appropriate divider. Then when I'm just relaxing away from a computer I go through and sort them manually by priority, like any PM would groom a backlog. When I feel like working on particular part of my project, I grab the top card for that part.
It's nice to have at least SOME part of my day where I'm not staring at a screen.
Kanboard for a blazing fast Kanban board (easy to self host, uses little in the way of resources): https://kanboard.org/
Alternatively, for more serious project management there's also OpenProject (also includes time tracking and reports): https://www.openproject.org/
Get something up and running as quickly as possible, iterate often. Containers help. Micro-frameworks or libraries are also sometimes nice (e.g. for getting a RESTful API up and running), as well as something not-too-complex like Vue for the front end. Might even go all the way to PaaS / SaaS if you want.
The one I thought I would hate the most was forcing myself to work on a side project for 5 minutes a day because the bar is so low I wasn't sure I'd be able to meaningfully make an impact on a project. To my surprise, it's actually kind of pleasant. Obviously if you want to ship your project in X days it's not really feasible, but I'd be happy to release anything at all even if it takes months or years. Some days I spend the time planning, researching, or reading documentation (something I usually don't do thoroughly because I'm trying to ship something asap). Other days I'll actually write some code or create some content. Often times, I spend much more than 5 minutes on it, but it's comforting to know that it's okay to stop after 5 and do the other things I want.
As other mentioned, being diligent about keeping track of where you left off is important; otherwise you start doubling back which feels wasteful.
My issue/feature/todo tracking is mostly in an Obsidian Markdown file and in my daily notes where I might put more minute TODOs or scratch notes.
For timing tasks, I use a Time Timer, my phone timer, and the Windows 11 focus timer depending on what's closest to me at the time. The Time Timer is kind of neat because you can turn off the beeping sound so even after 5 minutes passes, you can keep going without being interrupted by the timer or feeling anxious about it.
Presently, I only pursue maximum 2 projects with one getting 80% effort. Time wise, I just keep a markdown file on the git with a roadmap on 12 weeks basis. If some feature keeps moving to next 12 weeks twice, it becomes major task or gets scraped.
I find using tools like Trello, Github issues, some form of notion page requires additional tending and time, which could be spent on the project.
The bullet points are also projects/subprojects etc and can hold quite a bit of data. You get many more than Trello. They record dates well, and you link one to another with hashtags.
I have tried using GitHub issues but found that, unlike work, I don't really end up maintaining it. Sometimes I write up a manifesto as a text document, I do a lot of printing out lists and crossing items out.
But more importantly, I try very hard to avoid reinventing wheels, I'm always on the lookout for original code I can rip out and replace with some industry standard thing, etc.
I can afford to be inefficient with my side projects, since there's really only a few nontrivial pieces, and the whole dev workflow is kind of chosen for you with some frameworks.
1. todo.md
2. scratchpad.md
I put my tasks for each project in the todo file separated by headings. I put random notes in the scratchpad file as they pop (ex, need to update x dependency in project y, etc). I then organize my scratchpad and create new todo items if needed at the end of the day.
Writing todos as checkable list items in markdown and hitting them off one by one and tracking notes on the same md under different headings works like a charm. No more JIRA / excel / context switch.
+ The appeal of optimally planning is that it's easier than hard work. If you want a project done, work on it. Working on projects is not only the simplest thing that might work, working on projects is the fastest way to get them done.
+ Shopping for tools is also easier than working with what you have on hand. If you don't know what you need to buy, don't shop.
+ There's nothing wrong with learning new tools, and learning new tools is often more fun than hard work. That makes learning new tools attractive. But it is not doing hard work.
Success lies in what you make, not in what you plan to make, and hard work feels like hard work. If it doesn't feel like hard work, it isn't. Good luck.
I prefer a Google doc vs. a plain text file because I get a revision history for free.
If it’s code related a todo file at the root of the repo.
Work on the repo if it’s in Reminders.
2. Clean desk philosophy. At the end of the session, check everything in to git, write notes to help you move on next time you pick it up, and RELAX. Having learned the value of documentation, respect it. Keep it minimal, on point, and discoverable.
3. Work with your metabolism not against it. If you wake up early, knock out a few hours on something that motivates you. If you are disinterested, tired, or lack inspiration then take a break and do something else.