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.

So, what do you think?

7 Answers 7


Technical Blog would be a great choice here to get the consolidated experience. Even this will help others across the world to learn from your mistakes :)

  • 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. Commented Mar 1, 2011 at 12:04
  • 2
    @TeaDrinkingGeek: you can embed links in comments using the [visible text](http://url.to/page) syntax ;) Like this
    – Konerak
    Commented Mar 1, 2011 at 15:58

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. Commented Mar 1, 2011 at 15:49

I have an Elder Scrollsy journal where I write down things every time I learn something new. As you can imagine it's gotten pretty big and full of information.

In fact, I've been thinking about creating a software that just allows me to write notes, and tag the notes similar to what SE sites do with questions.

I would be able to:

  • Search posts by date.
  • Search posts by tags.
  • Search posts by difficulty.

This would be really helpful to me.

  • Does blogspot already not do that ? Commented Mar 1, 2011 at 14:20
  • I guess if you want something that big, you can use that as well.
    – Sergio
    Commented Mar 1, 2011 at 14:37

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.


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.


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).

Of course, I misplace said notebook from time to time...


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.

Not the answer you're looking for? Browse other questions tagged or ask your own question.