I want to know how difficult/useful it is to keep a project log or diary. I'm worried that keeping track of what I did will eat up too much time...
I'm worried that keeping track of what I did will eat up too much time...
I worry about the opposite. I oftentimes find that the cost of not documenting something eats up even more of my time. Maybe it doesn't happen today. Maybe not tomorrow, but at some point most of the things that I have done have come up again at some point, and it generally happens after enough time has passed for my brain to consider it unimportant.
Thus, I document things. I document decisions I've made, agreements made with team members, and most importantly, I document my code, even if it just involves using keywords to make it easier to grep the project for a certain function or line of code.
In some cases, the documentation has saved others' time as well. It's these cases where the X minutes spent documenting became an investment in itself where the X minutes invested gave a Y*X minute return in time savings!
Lastly, in other cases, I've found documenting work helps me remember it. In some cases, I never looked at the documentation again because for me, writing something down is a catalyst for burning it into my memory.
Everyone is different, and you'll need to find what works for you. As for me, I can't say that I've regretted time spent documenting my work, but I sure as heck have regretted the times I haven't.
Although this is a pretty general question, I think the answer comes down to how valuable you see self-reflection.
If the ability to look back on progress is more valuable to you than working through whatever time it would take you to make some notes on progress, I would say it's a worthwhile activity.
I think, as a programmer working on a piece of software, it is nice to have some log of progress and steps taken (similar to version control notes) to keep track of changes you made, where you made them, and why. Very useful information when troubleshooting and when tackling similar pro
That being said, it's not difficult. It's just more helpful if you can do it regularly, and that is assisted by getting into a routine for most people.
Try it for 3 months. Pick a simple format you can commit to and do it. If it provides benefit, then keep it up, if not, drop it. Each week review the format of your entries and adjust them if needed.
Try the following:
At the start of each day write down
- What you are going to do (paragraph, spreadsheet, whatever form you like)
- What problems you expect to encounter
At the end of each day write down
- What you did
- What obstacles got in your way
- What three things you learned (technical, nontechnical, etc)
Each week, review
Probably takes 5 minutes at the start and end of each day. You can later add things you ask yourself each week or things you find you care about. Don't be afraid to change formats... paper one week, Wiki the next, Trello a third. It will take a month or more to settle into a style and find a groove.
It's time well spent. I maintain all of my notes in a program called Connected Text. I refer back to problems, meetings, CYA items, programming notes, language notes, API snippets, etc. I also use Evernote to clip things from the web and then turn them into notes. A lot of what you will do in your career will come up again, so keeping notes on how you solved those problems is a good idea. I look at this like off loading the minutiae to keep the important things on my mind, knowing that I can refer back to my notes. Afterall, it's why you takes notes to begin with.
It is not a waste of time.
I've been using a personal wiki for about 7 years now, Wiki on a Stick or WoaS: http://stickwiki.sourceforge.net/
I created a knowledge base for all the software I support, links to numerous technical resources, team meeting notes - all of those are phone conferences, documenting development environment, and technical and professional goals, todo lists, etc. Practically anything I'd write on a notepad or sticky goes in this wiki. Using Firefox from http://portableapps.com, my entire wiki is self contained, doesn't require a server or installing any software on the client computer. Works cross platform too. Only issue I've had is using Chrome. It won't save any changes. Firefox has worked the best so I stick with it.
There have been several times a project was back-burnered only to have it resurrected 9 months later. WoaS brought me back where I left off and was productive without trying to remember what I had previously done or what happened to the notepad I was using back then.
I've never regretted taking the time to document my work. After some practice it really doesn't take a significant amount of time to keep notes. If you can develop a process that's simple yet affective, you'll be more likely to do it.
It's a piece of literature.
Like the ancient times, knowledge was best preserved when written. "Oral Tradition" isn't that effective.
It's a sign of maturity when one does this. To answer your question: it is very useful. You will never who's gonna read your work in the future. It's a good contribution.
Off the top of my head, here a just a few reasons why it is important to keep a log.
- If you wish to patent something you have invented, then a log book becomes a very vital piece of evidence.
- If you work in an environment where there is a culture of blame, you will want to note what you did, when, what was said, etc, simply to cover your own backside.
- If you wish to keep track of thoughts or ideas that you don't have time to immediately explore, then a log book is a good place to note things for later review.
- If you work on multiple projects, and your time sheet requires a relatively detailed accounting of your work to track project costs, or bill customers, the log book becomes a place to track your time.
- Team meeting notes, Agendas and so on.
- Agreements, disagreements, decisions, and especially why and how these things occurred can be a real life saver when the information is really needed.
Whenever I finish writing in the last page of a log book, I'll find myself looking back over older books from years before, just to see how far my knowledge has come, how my thinking has changed, and it can be amazing what you learn from your own working past, particularly if you are thinking about changing jobs, and you want to fill your CV with lots of really interesting projects and achievements.
A lot depends on the size of the project and goals of the project. In a small project you can put things in Excel. Remember that rework takes longer than doing something right the first time so it's worth planning a little to save time later.
Things you should track in lists:
External commitments, especially dates.
Scope - At least at a high level. Depending on the situation this gets more detailed.
Dependencies - what you need from others.
Issues, risks and To Dos
What your spending time on (the rigor is dependent on if this is for self knowledge or external billing)