Every time I've finished a project, there is always something that I've learned (otherwise I don't find it very motivating). But I can't remember everything, and much later I may stumble across the same problem that I encountered in a previous project but no longer how I solved it (or at least what attempts I made).

So would it be a good idea to write this down in a journal of some sort? I know that writing stuff down feels like writing documentation (which not everyone enjoys doing), and hope our memory to serve us when needed. But having it documented, it could be shared with other programmers and learn what lessons they learned.

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.
If this question can be reworded to fit the rules in the help center, please edit the question.

7 Answers
7

This is what a project/issue management system is for, like TRAC, Jira, or what have you. At work I put detailed comments, procedures, dependencies in our TRAC and Jira and so that when we face a previously seen problem, a simple search gives us the answer.

Absolutely. True story: Shortly after reading this question I bumped into a problem I knew I'd solved before (a configuration issue, if it matters). I skimmed through my "Lessons Learned" notebook (paper and pen edition), and there was the solution: copy file a to location b.

This notebook helps me in two ways: first by providing a place to find answers to previously asked questions and solved problems, and second by reinforcing knowledge by writing it down (sort of like explaining it to someone else).

I tried that once, with a daily journal of things I'd done, reflecting on what could have gone better and what I should try different next time. This wasn't techie stuff - this was about interactions with other people on the team, decisions made in meetings and so on (yes, this company had enough meetings that I had something to write every day!).

I eventually found that the journal was write-only memory: maybe the experience of writing it helped to organise my thoughts or evaluate what I'd done, but I found after about six weeks that I had never gone back and reviewed what I'd written so I stopped keeping it.

As far as technical notes go, I don't really keep them unless I have to present to a conference or a client. Otherwise, a set of bookmarks in Pinboard.in is enough for me.

It seems like a good idea to review what was done at the end of the project and the encountered problems, and to see what caused those problems and how to avoid them. Writing it in a journal is also a good idea, since it makes it easier to recall and to avoid the same problems again later.

Sharing, on the other hand, must be done with caution. Of course, it is helpful for other developers and project managers, but if you work with customers and those customers can read about the problems you had in the past, they will be less inclined to start/continue to work with you, because:

They will feel that you encounter more problems with projects than other people (even if it's wrong),

They don't want you to publish information about the eventual problems encountered in their projects.

I believe this is normally called a post mortem analysis. It is done (afair) when the support period is over and the product is basically dead and not supported any more.
–
Bjarke Freund-HansenMar 1 '11 at 15:49

Absolutely, one should keep a journal of lessons learned, and learned lessons. The former consolidates the most expensive type of learning, that gained via direct experience. The latter requires/spurs proactive learning, which is requisite to not suck.

Journaling is one of the oldest self-development tools known, and it prompts (self) reflection, which is an even older method. One needs both.

I keep a blog on lessons learned (go here ->teadrinkinggeek.wordpress.com), and it helps you (1) award yourself for what you have learned (2) to look over what you've learned over a period of time.
–
TeaDrinkingGeekMar 1 '11 at 12:04

2

@TeaDrinkingGeek: you can embed links in comments using the [visible text](http://url.to/page) syntax ;) Like this
–
KonerakMar 1 '11 at 15:58