๐ Post-experiment Thoughts
Key | Value |
---|---|
๐จโ๐ฉโ๐งโ๐ฆ Parents | |
๐ท Tags | #writing |
Created | 2024-08-13 09:30:36 |
Modified | 2024-08-13 09:46:44 |
Contents
background
with the explicit goal of taking a week to work on something else, something different, something with code rather than human language, i finally sat down and started on my personal project management solution :archangel:
(there is a lot of colourful language that can be used here :angeltrash:)
I had some explicit goals with the experiment, in roughly this order:
- refresh my coding skills in case i cannot find continued academic employment.
- exercise/excise my hubris
- develop something useful for myself (i'm the entire target audience, me, myself, i)
- replace jrnl logs since those keep getting lost / i keep forgetting it exists
- replace clockify.me, which i honestly loathe because i keep exceeding it's memory for what activity i'm resuming with and it feels like every month i re-type out my 'monthly meeting' (N varieties) and then they don't aggregate properly because they don't have the same title
- replace notion (it's just markdown with metadata. (this is the 'hubris excision' portion in case it wasn't obvious.))
results
it was a useful experiment, i’ve refreshed my coding skills somewhat. i continue to be decidedly “not a programer” (i’m a sysadmin in my heart of hearts)
But it was good to learn about the new fancy tools that are out there (vscode, debuggers built into your editor, wow). being able to set a breakpoint and debug a single web request was interesting, useful. I can see the value.
I’m not sure i will continue to use vscode since i find it rather overwhelming with so many icons on screen vying for my attention. the popups particularly are a problem. (No, microsoft, i don’t want to install the docker extension just because you saw i have docker installed. My options are yes, and “find more extensions” which. ugh. the gear icon i can dismiss this particular extension request, or all. but does all also dismiss the useful version where they offer extensions based on the repository author’s suggestions? Unknown!)
i’ll probably stick with my “one file filling the entire screen in nvim” (it fills 60% of the screen due to my font size, 120 char line widths. so i generally have one file or maybe two side by side.) and default status bar that only gives me information like buffer name, position, and mode. And nearly monochromatic colour scheme.
that said I can see the value of not keeping the entire codebase, the entire state of variables in your head. that sounds chill, just, reading them rather than re-processing the entire code path mentally, constantly!
It has pushed me to configure lsp for nvim so, that’s something. we’ll see if i remember to use such an emacs-ass combination like c-x c-o or if i immediately forget i configured it.
I hate, I think, all of my 80% of my decisions, but this was fully expected. This was an exercise in coding, not in … project management :akko_fingerguns: so I didn’t go in with a full spec, just a wishlist of features and a desire to see what I could put together. Thus, many, many sub-optimal decisions.
The ones I didn’t hate were:
- everything is markdown (i.e. not re-implementing notion's overly complicated block based model (and by not re-implementing it i mean I totally did and regretted it but i learned about json unmarshalling in go so, potato potato))
- just doing a bunch of processing on load/import was fine actually for this scale.
Weaknesses
There are some major weak points that i do not have good answers to.
- implementing 'multi-repo' projects, while ideal, exposed some underlying problems about where certain metadata is stored and how we link issues across repositories in a useful way. (ids are insufficient, encoding repo information is unappealing.)
- implementing git-bug's storage model and finding a way to surface any conflicts to a user to resolve
- 'linked' data (e.g. when you link a github/lab issue and want to track that as part of your project, where does the metadata for that live? how often do we fetch it?)
- calendaring
- ๐ sassifying: hosting/processing edits
and lastly it was a good reminder of how absolutely foundational coherent UI and UX and polish to make every action as easy as it possibly can be (see e.g. clockify accepting 700 to mean 07:00 today, and if you want a different date, specifying something else.) is for the success of a tool in someone’s life.
git-bug
Namely my idea was to fill a similar space as ‘git bug’ except for pm, with the intention to reuse their git interop code. Looking at where I’d want to expand, it’s too close to git bug. And I don’t want to re-implement that, nor do I wish to fork that and try and build my thing on top of theirs, nor are they extensible enough that i could add a plugin and work in my own little corner. I do not have the energy for that level of project, and I do not think my vision is sufficiently universal.
Ignoring that and saying “linked issues can just be links that’s fine”, i still find myself realising it’d mean maintaining state and having cron processes to fetch things (like issue title updates, open/close status) and that’s somewhat unappealing as well. where does that data get stored? a note? a separate data store? I don’t like the options.
I made the simultaneous decision of “tied to a git repo” and “wishes to be cross-git-repo” which is also, a choice. (git was always going to be the backing store, that isn’t in question.) Leaving one with the unsavory option of aggregating data from multiple repos (fine, but where do you stored linked issue data then? which repo?) or asking users to make a project management specific repo (gross, not light touch.)
The original theory was “repo per project” and then allowing the user to see their progress across multiple projects via aggregation. I didn’t get around to implementing this aggregation (it is a trivial extension of the current system) but instead got stuck on the above.
future work
i’ve made something, it reaches the ‘dangerous’ point in that it probably could replace some of the above for my uses of them. Now i need to put it down lest i commit myself to something even less interoperable with colleagues than my existing choices. i do not wish to maintain side projects for others, i do that for my main job already.
I’ve reached a sufficient level of parity of clockify.me and jrnl i could consider replacing those. I’m not sure it’s the right decision but at least for those platforms i’m not collaborating with anyone so, i wouldn’t be making anti-social decisions. Notion, well, it’d need some more work I suspect, but if I’m not working with anyone there either, it could also be replaced.
to be a ‘competitor’ it would need a massive amount of work, work that I’m uhhhhhhhh not sure I should engage in because of the horrors involve (z.B calendaring). e.g. If i want to replace my todo list, then calendaring must be far more involved than it is currently (repeating tasks). Even for basic project management tasks that’s required as well.
Children
TITLE | CREATED | AUTHOR |
---|---|---|
Note | ||
๐ sassifying: hosting/processing edits | 2024-08-13 09:44:58 | |
๐ Activity Log | 2024-08-13 10:36:05 | |
๐ Mentions & Inbox | 2024-08-13 10:39:50 |