Live data from Hacker News

Ask HN: How do you manage your personal software projects?

news.ycombinator.com

51–60 of 63 posts

Re: Ask HN: How do you manage your personal software projects?

#51
post #50

I use a notebook. One that I write in using a pen. When stopping for the evening/day/whatever I take 5 - 10 minutes to write in my notebook what part of the project is working, what has been changed, open questions, and a list of three things to do next. You can think of it like having a standup meeting with myself :-). When I go back to the project, I thumb back through the pages in my notebook until I find the last…

The doubly-linked list is a really good idea! I'll have to start using it. For no real purpose other than personal interest, I like to put a "NET" (no earlier than) date next to my page numbers in my notebook. Every time I start a new page, I write the page number and the current date (ex '#51 NET 21 Sep 2016') on the page.

As an aside, I really wish there were something that really, truly duplicated the experience of pen and paper, but were digitally indexable and searchable. There's just something really special about the tactile feedback. I also really like the way I can bounce between two arbitrary pages extremely rapidly with a physical notebook, or even look at two at once.

Plus, depending on how well you remember what, rapidly searching for a given entry is way faster if you flip to the approximate point in a physical book. That's my biggest complaint about my Kindle: random access is incredibly slow; in a physical book I've read within a year or so, I can reliably find a quote I was looking for within 30 seconds, but on my Kindle it takes forever.

Re: Ask HN: How do you manage your personal software projects?

#52
post #51
post #50

Earlier quoted context omitted.

The doubly-linked list is a really good idea! I'll have to start using it. For no real purpose other than personal interest, I like to put a "NET" (no earlier than) date next to my page numbers in my notebook. Every time I start a new page, I write the page number and the current date (ex '#51 NET 21 Sep 2016') on the page.

As an aside, I really wish there were something that really, truly duplicated the experience of pen and paper, but were digitally indexable and searchable. There's just something really special about the tactile feedback. I also really like the way I can bounce between two arbitrary pages extremely rapidly with a physical notebook, or even look at two at once. Plus, depending on how well you remember what, rapidly se…

While reading your comment I was reminded of this method [1] I saw awhile back of having an index in the back of a notebook and marking the edge of pages at the point of the corresponding index item. It's an interesting concept if you don't need a ton of granularity in your ability to search.

[1] http://www.highfivehq.com

Re: Ask HN: How do you manage your personal software projects?

#53
Trello works well for me. I make lists for In Progress, Today, This week, This month and Backlog/Icebox. Planning involves creating and organizing tasks in these lists. I move the tasks between the lists as I work through them. It gives me a good way to pickup where I left off. I use the Checklist feature to manage subtasks for each task.

It's been working well without any extensions/plugins.

Re: Ask HN: How do you manage your personal software projects?

#54
post #45
post #29

Earlier quoted context omitted.

This method also works for me. Usually the failing test left behind is something in the same space of where work needs to be done, but I like to keep the failing code trivial so that I can ramp up. 'Works great. A TODO file can also be used to accomplish this if TDD isn't your thing.

I think a TODO is preferable even if you practice TDD. Failing tests used as a "start here" are to-dos in this instance and are indistinguishable from legitimate currently-implemented feature tests if you've been away long enough. I don't think it's good to assume it's okay to delete failing tests when returning to a project with new goals or when a bug needs fixing. For me, it's important to return to a project, run…

Typically the error messages that I include for my "this is where I left off" or "still to do" tests are like "page not yet implemented" or "haven't figured out the bug". No definitely don't delete failing tests! Make them pass.

Re: Ask HN: How do you manage your personal software projects?

#55
I am transitioning to gitlab. It's had issues, but a recent version lets you put them onto a board similar to Trello. I'm waiting on a screen replacement for my primary development laptop (from China, via slow air boat apparently) to really dive into it.

But I do agree with the "getting back into it" issue. I will go weeks or months between working on a project, and this is the biggest hurdle I'm facing. Some of the suggestions here are great. I'm thinking what I may do is try to leave a single issue under "Development" on the boards and make sure it is commented well enough to pick it back up.

Re: Ask HN: How do you manage your personal software projects?

#56
post #51
post #50

Earlier quoted context omitted.

The doubly-linked list is a really good idea! I'll have to start using it. For no real purpose other than personal interest, I like to put a "NET" (no earlier than) date next to my page numbers in my notebook. Every time I start a new page, I write the page number and the current date (ex '#51 NET 21 Sep 2016') on the page.

As an aside, I really wish there were something that really, truly duplicated the experience of pen and paper, but were digitally indexable and searchable. There's just something really special about the tactile feedback. I also really like the way I can bounce between two arbitrary pages extremely rapidly with a physical notebook, or even look at two at once. Plus, depending on how well you remember what, rapidly se…

Maybe you know about the LiveScribe SmartPen:

https://www.amazon.com/gp/product/B00524DLZ0/

This was a really nice product, until the company decided to go for the "smartphone app" experience and changed everything about it drastically. I sought out and bought the older version (the second gen) because it actually had all the features I expected.

The concept is out there, but with the following improvements you can get the experience you seek: make the pen slimmer and more natural to hold, make the special paper look more like normal paper, and have a pen dock which does all the magic of syncing and creation of digital notes etc. Bonus if it were somehow possible to replicate the pixelation of the special notebook on a carbon-paper style sheet so that you can just use whatever notebook you wanted and insert this special sheet underneath.

Also about random access: I have always wondered why the eReader software never has a mode where when you scroll on the play head, it shows the current page, plus 2 pages before and 3 after (all displayed as smaller thumbnails, sort of like Netflix). Wouldn't that be at least a little closer to the flipping experience?

Re: Ask HN: How do you manage your personal software projects?

#57
The main thing I've found to help when juggling multiple side projects is to reduce the friction and the number of tools involved.

I live in the terminal with tmux, emacs, org-mode, and git. My projects get an index.org in their base directory which describes the purpose and tasks involved. I've moved to (but this isn't essential to the concept of reducing friction) literate programming, and each source file ends up with its own org file as well [0], like foo.org for foo.c. My index.org contains a list of bugs, features, etc. as headlines. Each of those headlines contain notes on reproducing the bug, identifying where it occurred, specifying where the feature will be placed, etc. Specific things inside it become TODOs, which can be quickly found by (in org-mode) doing C-c / t which will highlight all TODO tasks in the file. In foo.org I use the same approach. I have an outline of the source file:

  * Purpose
  * Includes
  * Declarations
  * [0/3] Definitions
  ** TODO foo_bar: int -> int
  ** TODO foo_baz: char* -> int
  ** TODO foo_quux: void -> void
So now everything I need to know about the project is in one place. And by virtue of it all being in the repository (and hopefully backed up somewhere online like github or my personal server, when I had one), I can easily move between computers (modulo tooling, but mostly I just need emacs + git + tup + ).

I can also put a great deal of configuration information into this. What tools need to be installed, what are my dependencies (for packages/crates/etc.) and why do I depend on them. As I'm starting to play with docker and containers, I can include all the steps needed to reproduce the environment and configuration.

So by reducing the number of places I need to look for information to a handful of org files, I've greatly reduced the effort required to resume a project. I can also do everything offline, which is great for me because an open web browser means I'll lose the evening's productive hours.

[0] I originally did one big org file that spit out files into src/foo.c and inc/foo.h, etc. But that became annoying so I switched to individual files. This improved my ability to reuse code from one project to another (these being personal projects I'm not always spending enough time to justify producing a proper library). And it helped with make/tup because a change to foo.org only affects things depending on foo.c, where index.org would affect many build rules because it produced so many files. Fine in a small project, annoying in anything big.

Re: Ask HN: How do you manage your personal software projects?

#58

Trello works pretty well for me. I usually create a new board with 3 columns: Backlog - Doing - Done You create any amount of cards in backlog and as you start to work on something you can leave comments on your status "Started working on live updates, trying to figure out if websockets are better than polling", etc. You can easily forget to update cards so an alternative is to leave comments in your code: ```` def s…

I use Trello as well. It actually helped quite a bit launching my current endeavor, as I picked what as the MVP at the beginning. I had a "For Launch" column in addition to the ones you mentioned. It kept me focused when my brain would've had me work on other things.

Sounds like a good idea.

The new github projects feature looks like something that would work well for this purpose, as you can mix it with milestones as well as a kanban board (Trello). GitLab also has this feature and is open-source.

Re: Ask HN: How do you manage your personal software projects?

#60
post #51

Earlier quoted context omitted.

As an aside, I really wish there were something that really, truly duplicated the experience of pen and paper, but were digitally indexable and searchable. There's just something really special about the tactile feedback. I also really like the way I can bounce between two arbitrary pages extremely rapidly with a physical notebook, or even look at two at once. Plus, depending on how well you remember what, rapidly se…

While reading your comment I was reminded of this method [1] I saw awhile back of having an index in the back of a notebook and marking the edge of pages at the point of the corresponding index item. It's an interesting concept if you don't need a ton of granularity in your ability to search. [1] http://www.highfivehq.com

That's super clever too. Man, my notebook game is getting so much better today.
Post reply on HN