Keeping a Changelog at Work (2020)
code.dblock.org
code.dblock.org
No-thought generous fibonacci effort estimations help detect if some tasks take too long (emacs nags in mode-line) and I need to regroup e.g., split the current todo into sub tasks.
The changelog is generated automatically (from the org-clock-in tasks) by Emacs (org-agenda).
I can’t work effectively without a todo list, but I have extreme trouble keeping with the habit.
if you write it down before you start, it’s more like the intent.
Then take that and have it summarized what I did all day on the computer.
Automating this kind of thing is automating your own defeat.
There is some cognitive burden (Find the note app, decide how to store them, remember to open it) but if you do it for about 20 days it just becomes second nature and habit.
I have day by day notes, for everything I have done and things I've discovered, going back about 8 years now. Every single day, because it only takes 1-2 minutes a day to write them. If you turn this into a habit the mental context switch cost tends to zero.
It has been a great source of links, notes, reminders, everything, I see it as my digital memory.
This act of reconstructing a coherent narrative from disparate events is an enormously useful part of writing the journal.
1) A simple text file with important information, with everything including logins, host names, how-tos, even things like team members’ names and roles. I rarely change anything and often just add information while marking previous obsolete info as such.
2) A simple TODO list that I just keep adding to. Many times I will get requests that aren’t necessarily tracked in project management tools (either there’s something that can’t be encapsulated in a user story, or the overhead of putting it into the software is just too much).
In addition, IMO too much has been formalized into disparate systems and can easily get lost or difficult to access. Keeping personal notes like this enables me to have much more control and allows me to easily search the entirety of my knowledge base with a simple text search or even regex.
Edit: missed a few words
Not OP, but I also keep a private log.
Simply put, different things go in there, compared to a public one; let alone a public one with intended visibility.
And some of the most useful logs are the most private ones.
Plus, not sure how much I'd trust a person's public logs if I knew they were made to be both public and publicized. My expectation in that scenario would be that actions were embellished / inflated accordingly. Everybody has on and off days, but I'd be very surprised to see this openly admitted in a public log; after all, what good could ever come from it?!
I used to go through my daily logs at the end of the week and pick the most important, non-personal, work-related things that happened in the week, and add them to a separate weekly log. This I was happy to open in public in the middle of a conversation if necessary ... but I would never open my private log in front of anyone. It's too private.
I currently use a plugin that opens up a Daily Log each morning as I open my editor; and populates it with a template
ToDone: * ToDo: * Blockers: *
First thing I try and do each morning as I catch up on email/overnight test results is fill it out as an outline of talking points before the daily Standup.
Throughout the day I try and keep a running list of task I work on down int he daily log; often with comments like 'why the everlovingfuck did jason delete the prod db' and a general summary of problems and how I solved (or didn't solve) them.
Outside of a personal knowledge database, when review time comes along it makes it much easier to summarize what I've worked on also.
The last company where I initially did it, I stopped, because I found two problems with how I was doing it:
* spending extra time to track this information that was usually already captured somewhere in a project tracking system; and
* sometimes siloing information, when all the redundant reporting means that sometimes one place got the information, while another place didn't (so, sometimes it was only in my separate notes, which weren't discoverable).
One time I didn't do this was in an early startup, when I was the entire engineering team. I ran a low-friction GitLab board in a Kanban variation, for pretty much all work I did. All information was in GitLab, in one way or another. At our weekly update meetings, I screenshare the GitLab board, and point at the top (most recent) boxes in the Done and Abandoned columns (and Active and Blocked), as I summarize. If anyone wants more info, either then, or at any time in the future, one can click, and it's there.
One thing that doesn't cover is if I help someone with something without creating a task for it. If you have a bigger company, and it cares a lot about performance evaluation, then you might want to have a convention of mentioning someone who helped, in the comments on a task. Then a manager can have some report, over the entire task&project management system, that gives them more insight into how everyone has been contributing. (Personally I'd prefer to be at a company where no one has to even think about performance evaluations, because they're too busy focused on success of the company, but the info is probably there if anyone wanted it.)
At the end of the day I make an entry for the next day carrying over what I didn't finish. If something has been carried over for too long (e.g. something that I'd like to do but isn't required) then I just remove it. Usually I might have 3-4 tasks each day, though when I first joined my most recent company my list was something like 10-20 small tasks for a couple of weeks.
If I have larger investigations I'll always write it down in a separate Markdown document so that my working set doesn't grow too large.
It's a very low overhead way to do task tracking, and there are all of the benefits listed in the parent article. I don't think I'd ever make this publically available though.
This works a lot better for me, instead of copying over more and more ideas each day, or building a write-only SOMEDAY.md
I use Obsidian as follows:
1. Daily log in bullet-point format. Title in YYYY-MM-DD format. Bottom of log has [[YYYY-MM-DD]] with tomorrow’s date.
If I get into a task that starts to get a bit ‘chatty’ and/or would benefit from capturing stdin/stdout/stderr snippets, I’ll use the [[blah]] trick and dump it there.
If a particular priority task didn’t get tended to, I copy that into tomorrow’s daily before stepping afk for the day.
Gets shared with manager, etc.
2. Weekly summary using the ![[Week ending YYYY-MM-DD]] embedded view Obsidian feature in my daily log page. For that at-a-glance warm fuzzies. This boils down to:
- retrospective - highs - lows - 1:1 notes - incoming week’s tasks/priorities
I use this page for my 1:1’s of course. I’ve only very recently started copying the retrospective to my manager via Slack to ensure he’s got the goods.
I prep my incoming week with a new weekly summary, and pre-populate the bare bones for the daily notes.
I think this is a great idea for CEOs and those overly eager juniors, but for everyone else who's not trying to speedrun work burnout any%, that's the stupidest idea ever. Seriously, what's the goal here? Suppose everyone in your company does this. The result is that employees get divided into three camps:
1. Those who don't give a fuck about their jobs and have exactly one entry per day. For them, their CHANGELOG (don't forget obligatory capitalization) is basically a document that their manager can pull and have them fired for low performance, even if the manager was satisfied with their performance before this metric was introduced.
2. Those who don't give a fuck either, but understand the point above and don't want to get fired: they'll start filling their day with useless tasks, just to look busy. There's no added performance, but management becomes more difficult, because employees are incentivized to lie to their managers, making communication murky. The majority of employees fall into this category.
3. A clique of employees turning their CHANGELOG (again, don't forget the obligatory capitalization of all letters of which the word consists) into a badge of honour and a competition. There will be one winner, the rest will feel bad about being bad employees and low performers, and having this pointed out.
It's basically a diet version of that software that takes a screenshot of your display every five minutes and sends it to HR. And turns that into a publicly available graph.
It helps me organize what I’m going to do. Who I need to talk to. Etc etc. this part is outside of the Changelog per se but I also keep a log for that and I keep a document called reference. It’s a Knowlege graph of sorts of all things that I learned about the company over time.
Examples include: this is how to reload data from this really convoluted system and the things to watch out for. (This eventually becomes a confluence doc for everyone’s benefit)
It's a simple Markdown file, versioned on my own Gitea instance.
The worklog contains all notes about everything I spend my time at work. That is project work, meetings, discussions, todos, long-term todos and investigations, and anything I need to be able to check back later.
I cannot count the number of times I went back and searched this file to find information that others forgot, the meeting notes did not capture, and in general things that I need.
Keeping this kind of log makes performance reviews trivial too. Just scroll through the worklog for the period you want, copy paste bullet points, and then spend some time cleaning them up and rewriting them as necessary.
If anyone does not keep a worklog, start now :)
1. https://www.lambrospetrou.com/articles/the-worklog-format-1/
I tend to forget about a task once it's in the past, so I just put one line per task in a text file every day. Sometimes it would be the same line ("2024.12.21 Worked on xyz feature") for several days in a row, but at review time, it was easy to see what I'd accomplished.
not really what I want to see from a piece of software that's supposed to store all my knowledge.
boom, a piece of software where you can store all your knowledge. stop trying to make this political, can we have one friggin place where folks don't express a political opinion in an attempt to stir up shit?
this OP is about keeping a changelog at work, how do you do that?
My personal diary is a Word document.
After a while I review the daily notes and delete or categorize + summarize them into subfolders (e.g. "Work", "Project XY", "Feature XY").
I use some basic conditional formatting to highlight today's tasks. I write down everything I do. Small assists and unplanned work are added after the fact. Each row had a do date, a project tag, and notes such as reminders of who to contact about it.
This helps me be extremely organized and not forgetting any tasks even down the road. I also keep track of pet projects and identify good times to work on those. Also made me way better at guesstimating how long something will take and spread out workload from upcoming busy periods more.
This has made it trivial for me to prepare weekly stand ups, quarterly business reports and yearly reviews. The only downside is I can't keep it up when I'm really overworked. Those periods stand out as several week gaps in the task tracker. I just lose the granularity but i still know which project was problematic using high level roadmaps and notes from retros/5 whys - so i can add a basic note for the period about what projects i was working on at the time. I have a simplified changelog like that for personal projects as well.
i put nearly everything in it that is interesting. snippets of code, bits of debugging sessions, notes from meetings, little reminders. it's a single file that my editor loads in milliseconds and it's very searchable
i've been doing this for over 35 years (... starting over at each new company). having a "dump" of knowledge at my fingertips has saved me hours, many times
I keep a daily log at work (not public) and sometimes it just says “project 1, project 2” for days on end. Not really useful to look back at, but still nice to jot down in the morning.
To keep it public - I tag certain headings with :Priority: tag and then use Org-QL to find them, pretty-print (enrich with Story links , completion date), sort by priority, TODO state etc; then export to HTML and copy-paste into Confluence.
The trick is to balance between granularity of items. I definitely don’t want to make everything public, but I do want to have everything in my notes, and this method solved it - the best of all tried over 15 years.
Basically it's a script that pops up a reminder window at regular intervals, with options for daemonising, and enabling/disabling while daemonised, and auto-enabled at startup if it's a new day.
Plus, it integrates with a pomodoro timer/logger I've written, such that all the "tomatoes" (i.e. pomodoro sessions) I've done the day before automatically get added to the log at the start of a new day.
They're fairly simple scripts, but happy to share if anyone's interested.
In repo I have also commit.sh script [1] (for which I have also desktop shortcut) and at the end of work day I simply run it and (after a few more confirmations) turn of laptop and go home.
[1]: https://gist.github.com/jurakovic/8c0535b3b8fbc96228de1a94ea...
There were also some nice integrations to pull in commits, doc edits , etc..
I know that there's strong prior knowledge but the pixelation is destructive so the problem is very ill-posed.
In reality , though, removing just a bit pf entropy can be of great value when context is known. With LLMs in mind.
Yes, but JPEG compression is destructive too yet you can (well, most of the time) see what it's in the picture.
With pixelation you are essentially replace a clearly readable character with some yet unknown 'pixel character'. It's even more pronounced on a fixed-width fonts.
Just try it yourself on the clear shot (not a JPEGed to death one) first.