How do you keep track of detailed work activities?
Throughout my workday, I'm making changes to several components of various applications. I'm also testing different configurations in a large number of areas.
How do you keep track of the details of your day-to-day tasks? Especially if you potentially need to roll back changes.
I feel like it is way too much overhead to notate every little step. I could, but it would make my work take 2-3x as long. I also don't think recording my screen would have much benefit, as it's not easy to pinpoint when a breaking change could have been made.
Personal context: while this is software development related, I'm generally stuck in the box of no-code platforms. That means I can't simply keep a git repository with frequent commits. Additionally, this platform does not support viewing prior versions of the different components, so there's really no way to compare.
And for the pieces I am able to keep in a git repository (HTML and JavaScript snippets), that still isn't perfect because the place they are actually executed from is outside of my git repo and occasionally modified by others. But I don't expect guidance on how to predict when others change things.
I'm in a fairly similar boat, where the platform we use doesn't have a proper backend language (only SQL Server 2016 is available, or older in some cases) and the "backend" is more of a low-code flowchart type of builder. So here's some stream of consciousness stuff that may be useful:
Most of my notes end up looking something like this, where I use Obsidian and this custom checkbox theme. The screenshot in Markdown would be this:
Sometimes I'll copy over snippets of code into Obsidian I find them important or if I know I'll need them later. If I'll be making a lot of changes to those code snippets I'll version control them in git, though that's usually just so I can get easy diffs later on (particularly for HTML). And for me too they will never be executed outside of the platform and will also be modified by others, so it isn't perfect but it can be useful, especially if you need to make a certain change in a lot of places.
Typically if I need to change something what I'll do is duplicate what I need from production so I can do tests safely, and then once I'm satisfied with my changes/they've been reviewed by someone else, then I'll move it to production and document on a high level what was changed. I also name all my test stuff with "Test YYYY-MM-DD" so other people don't get confused if they're searching around.
If I have any inkling that I may want to roll back to a previous version I will just swap my test copy into production and call it "version N+1". Then if I ever want to roll back I can just swap back to version N (it's not always that simple, but it's an option sometimes). And after some time has passed with everything going smoothly version N can be deleted during a cleanup if needed.
Sometimes I'll take screenshots of stuff before and after changes and put those into Obsidian. Other times if I'm gonna do a big SQL query on a table I'll take a backup of it as a CSV and put that in Obsidian if it's small enough, or version control it if it doesn't have sensitive data, or just keep it on my PC if the file is too big.
I also have a knowledge base folder in Obsidian together with a "Documentation TODO" note where I'll just add stuff that I want to document because I want to refer back to them in the future, but I don't have the time to document them now. So any time I have some downtime I'll check my documentation todo and work on that.
The knowledge base is super simple where I just make the note title something I would search for, like "Internal tables in SQL server" or "Search stored procedure definitions" and then in those notes I'll just put whatever relevant information is useful.
Those are generally the way I do things. I think the biggest tip I could give though is just to write stuff down in a way that makes sense for you. It may take a while to figure out what that looks like but the more you do it the better you'll get at it. My notes from a year ago compared to my notes today are a complete night and day difference.
And the second biggest tip I can give is to have an Archive folder where you can dump old notes in and forget all about them. And also don't be afraid of leaving notes unfinished, I have sooo many notes that are like half filled in because I didn't "complete" them, but it doesn't matter since all the work that needed to be done has been done. But do keep them, you know, just in case.
Hopefully that's somewhat useful. :D
I appreciate all the ideas. I'm likely going to adopt Joplin into my personal workflow (with the self-hosted sync) and might use it here as well, similar to what you're doing with Obsidian.
Without knowing the tools it is hard to say. Years ago while leading a small team that managed a lot of different technology, from networks to applications, we kept a running slack channel where each team member would log when they were changing something.
We still used source control, and config versions, etc where possible. But sometimes having that simple high level log of 12:15 making requested changes to X workflow 13:20 rolling the APs at site Y, can help correlate a set of changes with reports of issues.
Unfortunately the tools in question have no way to compare differences. Everything is drag-and-drop GUI and very quickly becomes spaghetti.
I could try to log my changes in that way, but I unfortunately need more than just significant event level. Each entry would have to be something like "On X page, in rule name Y, changed action Z to set variable X.1 to A.1 instead of B.1"
It's doable, but tedious and difficult to sort through when I'd be making upwards of 100 entries like that each day.
Just brainstorming here, but narrating out loud what you are doing and feeding the transcript to an LLM to create a digest of changes? I used to narrate complex team cutovers when making live changes to a started WAN.
Screen record, and feed the video to an LLM to process if you have access to one under an EA so you aren't paying per token processed?
Is there a way to build echo steps to a private location in your workflow builder?
The only wysiwyg process builder I'm familiar with at the moment has a publish step when promoting changes that logs a version of the workflow, so it really feels like you are overcoming a massive shortcoming in the tool.
Edit: holy soup sandwich Batman, Swype did me dirty on this comment, fixed major typos.
Edit 2: our video meeting tool will take notes and summarize meetings, decisions, etc. I bet narrating into that would get you a pretty good text change log.
Rant incoming...
Yeah, it's pretty awful, and likely always will be. It has two separate components- one for backend processing (workflows) and one for the front end interfaces. The workflows work a little like you describe- they create proper versions you can roll back to and even view if you know your way around it's quirks.
But the front end... nope. It gives the illusion of versioning but has no way to roll back. In some cases, you can roll back by manually editing tables in the platform's internal sql database. (Which means if you are using the cloud version, you're SOL.) The vendor of this platform said they are working on making this accessible in a more usable way. But that was at least two years ago. They also said that making the platform's interfaces (the end result, not the "building parts") meet accessibility standards was not on their roadmap. Everything it produces is browser-based, so this is a shitty move imo. I honestly think they are just stringing people along, as they acquired this platform by buying out the initial company a good 4+ years ago.
The one message I would like to share with anyone reading this - Do not buy enterprise no-code/low-code.
If you want to use no-code stuff baked into a product you already paid for, go for it. If you're aware of the limitations of something like Airtable but have a need for it, that is also sensible (but I would recommend checking out open source alternatives like NocoDB if your company is open to it).
Any other use case is pushing it. All of these products have so many quirks that it makes much more sense to develop custom applications in whatever programming language(s) are available in your company. Even hiring contractors to build custom apps will be cheaper. Some people hire contractors to build on these no code platforms because they are so absurd (you can probably guess how I know).
Without knowing the tools you are working in, I'm shooting in the dark a little bit. But, I have worked with some visual, no/low code products before. In each of the products I worked on, there was still a way to export packages/components/etc from one environment to another. At minimum, I'd make changes in the development environment, export the package, check into source control (with great commit messages), and then use deployment scripts to import it into production.
In some cases, those exported packages were actually XML and I could diff changes in source control. In one case, the exported package was compressed, but uncompressed was actually XML. I built a workflow to decompress before check in to source control and then the deployment scripts would reverse it.
In short, I'd spend time figuring out how to stop making changes directly in production (you will eventually get burned). You may have already exhausted this path, but just thought I'd through it out there.
I am not making changes directly in Production thankfully. But this company does perform testing of changes in the environment I'm developing in, prior to approving to have them pushed to Production.
If this was a 3-environment setup (Dev, Test/QA, Prod), that would be a non-issue.
It's still a crapshoot to see if there would be any benefit from comparing one deployment package to another. It would be risky to make changes directly to the package via a text editor, so I would have to manually make changes via the actual GUI. But I will say, that would at least improve my situation.
Generally I don't. My entire career has been one of managed chaos. My inbox is always out of control, I have little scraps of notes for things that I deemed important during meetings or work, which usually turn out to not be important. I have trackers and to do lists in six different places, none of which are ever used consistently.
If I could wave a magic wand to have one place where all the tasks I need to accomplish and the work I've done was stored automatically, I would do it in a heartbeat. But I'm middle aged at this point, and by now, I've tried probably 40 or so different systems, strategies, plans, products, and formats to try to stay organized at work or at school, and none of them work for me. Some would maybe work in theory, but every one has some sort of drawback that makes me not able use it in certain situations, so the entire thing just falls apart.
I'm also not consistent about stuff like that. I can usually stick with it for a week or two, but then I don't have time to write something down, or let's be honest, I just don't write it down because I don't feel like it and I'm a procrastinator, so the whole thing falls apart that way too.
Despite all that, I've had a fairly successful career, and at most jobs I've had, I've had extremely high performance reviews, always with the caveat that things often slip by me if they're not emergencies that need my immediate focus. I know I could be more successful if I dealt with this, and I know it's an annoying trait, because it's a trait that annoys me, despite understanding it deeply in the people I manage.
At this point I've given up on ever trying to solve it, and basically chalked it up to a fundamental aspect of who I am, sort of like how I know I'll never be 6'4, or have the reflexes needed to be a professional gamer or whatever.
I can sort of manage it by setting realistic expectations around deadlines and if something is really important, making sure I'm not the only one that knows about it, but it's still pretty annoying.
If anyone was ever in my shoes but managed to figure something out long term, I'm all ears (although very skeptical after all this time)
Thanks for sharing. Your response reminded me how I used to be at "inbox zero" at my past job, but kind of gave up on that here. It's tough to go backwards, but at least email and documents are searchable.
It sounds like if you had some way to synchronize their changes with git, you could have better visibility and control of rolling back changes(?)
I wonder if you could export as XML or something? Even binary files can sometimes be transformed into a textual representation... or even ask an image model to rewrite a diagram screenshot as text and then replace a text file with the output to compare changes over time in git. There might be some hallucination but I'm guessing it would be better than nothing.
It can be weird too like... if your environment that is represented by the no code tool is actually a buncha machines, you could create a file for each machine and print out a few lines of basic information. Or if it is data--could you have sample data for each pipeline and save a few lines of output for each stage as their own files?
I could possibly do an XML compare. I believe it does store most things as XML when you capture a deployment package.
The main issue with that is I would have to commit my changes each time, and this company does not have a separate environment to test in, so I would be interrupting their testing with potentially unstable changes. Even if that wasn't an issue, creating a deployment package takes 10 minutes, minimum.
The frustrating part of this is that I can't solve this issue like you could with code. So it has to be more general than that.
I'm sure it is possible... somehow .... but it does sound like a headache and I empathize.
It sounds like you might be able to write a userscript to pull out some information from the webapp but it sounds like your problem is beyond technology. Maybe you could institute change controls if you can convince management
If it's useful to copy the metadata database into git, you can use SQLite to visualize changes. It's not perfect but works in a pinch and probably better than you might think:
Though... if you have a way of dumping the metadata to sqlite, surely dumping it to CSV, or something more human-readable would also be possible and that will likely be better. You don't need to write any append or sync code--git handles that all that state for you--just obliterate the existing fstree each time
I just make little text outlines for my work dev task to do lists or Google Docs if I share the list with any coworkers.
Here is the basic template
In Google Docs, the legends are bolded and in color so it's easier to quickly see what I have outstanding.
Yeah, that's doable, I'd just need to do a few more levels of bullet points. I guess it's more of a discipline thing, forcing myself to log actions as I take them.
And good luck on the golden toilet project!
I leave item on my example template to force myself to make sure I clear out what's there :)
I keep a similar log, but for other reasons.
I will not keep the log consistently unless I am brief.
I try to keep each task to a 1 line summary that a non-tech person would understand, maybe adding a bullet point as a clue as to where to go if I have to work on it again.
So I'm looking into Observer AI to monitor the things I do autonomously.
We'll see how well it works.
This is interesting, please do let me know how it goes.
My work laptop isn't very beefy (it does have an nvidia GPU but old and lower-end) so I question how well it would work.
Well different LLM models have different requirements, there are some very lightweight ones. They do get relatively limited so you won't have perfect conversations or have it generate any novels, but they're good enough for specific tasks.
My work computer yells at me when I open my photoshop that it's out of spec, and I run Llama3 for some basic fuzzy queries. It sounds like a plane about to take off, but that's because I do push it quite a bit.