Hacker News new | ask | show | jobs
by mg 642 days ago
These days when I collaborate with other developers, we do it all in a git repo that is simply hosted on a VM everyone has ssh access to.

Project management is done in a plan/ directory which has task entries like

    1000-add_logout_button.txt
Where 1000 is the priority.

There is also a directory plan/done/ where tasks go that have been completed. In the plan/done/ directory, the priority gets replaced by the completion date, so it looks like this:

    2024-09-04-add_logout_button.txt
This has a bunch of nice consequences. Some of them are:

Task management does not need any software or logins.

Task management can be done directly in Vim by simply looking into and editing the plan/ directory.

Task history is nicely versioned by git automatically.

All the tooling that comes with bash and git can be used on the plan/ dir. Like finding all tasks that contain the term "rounded corners" in the description is just

    grep -r 'rounded corners' plan/
5 comments

I like the simplicity, but does everyone actually log in to the server and edit the files directly in the same repo, or is the repo exposed over SSH and everyone works in forks on their own machines?

The first one doesn't really scale beyond a handful of people, since you risk losing work if the same file is being worked on by multiple people. Vim shouting at you that the file you're editing has changed on disk is not good enough.

I can see how this could work with a central repo, though. It does require everyone aligning on the same conventions and workflow, so you likely still need some software to ensure this is done correctly.

I assumed they meant a directory within the git repo not just a regular directory on the server filesystem.
Everybody works on a fork on their own machine.

Since everybody pulls the changes of the others and sees if something collides with their own changes, its pretty much possible to do it manually. Thats how I started this approach.

It's really just a 0815 git based workflow. Just not for code but for a tasklist.

Meanwhile I wrote a bit of tooling around it. But using it is not at all a must.

0815?
An expression that, at least in Germany, means "the bare minimum/default". It originates from a German machine gun:

https://de.wikipedia.org/wiki/08/15_(Redewendung) (German Wikipedia, there seems to be no English version)

Thanks. That’s interesting. :-)
That is a really cool system, thanks for sharing it! I've been looking for a text based way to do project management and this is giving me a bunch of ideas.
i love the simplicity. What do you do with team members who are terminal illiterate? Project manager/client?
You just lay them off.. ;)
The prophylactic effect of this could actually be a real benefit when the org is small.

As it grows, this type of as system will break down anyways :)

Do the reviewer comments also go into plan?
Yes. Say Joe just finished the 1000-add_logout_button.txt task and committed it with the following content:

    owner: mg

    info:

        2024-09-03 17:02
        I added the logout button. Settled on rounded
        corners which we haven't used before but I think
        they look good here.
        /Joe
I might change the file like this and commit it, so it goes back to Joe and he sees my comment:

    owner: Joe

    info:

        2024-09-03 17:02
        I added the logout button. Settled on rounded
        corners which we haven't used before but I think
        they look good here.
        /Joe

        2024-09-04 09:10
        Fine with the rounded corners. The styles should
        go into styles.css instead of the html though.
        /mg
Yep, i use fossil for small to mid customer-projects, documentation, code and task all in one single file, it's just excellent for jobs like that. Personal projects however are all on bitkeeper.