projectdoc Toolbox

A short introduction to developer diaries.

Abstract

A diary is a very useful tool to add information for and about your work effortless. Since the entries of your diary are records, there is no need to keep them up-to-date. You diary is an invaluable tool to remember bits of information that will otherwise get washed away by the tremendous amount of information you are confronted with every day. It also helps you stay focussed on your tasks and helps to incorporate the continuous improvement process into your daily work. Last but not least, it is also a communication tool with your team mates, since they can also profit from your discoveries and decisions.

Contents

Diary - a Document of daily Records

Brief Overview

A diary allows to file information that you have gathered during a day at work. As a developer you probably know the situation that you hunt in the internet for a piece of information and are ready to apply it to get your work done. The Developer's Diary Add-on allows you to add this piece of information to your wiki without much effort. If it happens that you need this information a couple of weeks later, you have it already in your wiki and can find it by a text search.

You may also find interesting stuff you are not looking for:

  • a video to watch later,
  • a new product to check out,
  • or a blog with plenty of articles to read.

Add a new event, paste the links with a couple of notes and file it to your wiki!

But why do you need a diary to log this information? Well, the diary is part of your personal space. Nobody should force you to add a particular structure on it. The diary goes one step further: since you add pages as records to your diary, there is no need to keep the information up-to-date. This both makes the diary a place where information gets stored without much overhead. Use the diary to access information you added in the past.

Motivation

Many famous people have used personal diaries.

  • Kurt Cobain
  • Joseph von Eichendorff
  • Albert Einstein
  • Max Frisch
  • Johann Wolfgang von Goethe
  • Franz Kafka
  • John Lennon
  • Thomas Mann 
  • Samuel Pepys
  • Peter Sloterdijk
  • Leo Tolstoi
  • Virginia Woolf

Developer diaries are more similar to journals, since they do not stress on personal feelings like personal diaries. Developer diaries focus more on facts and personal discoveries and insights. But as personal diaries they help to reflect on your experiences.

Here are some quotes by software developers about developer diaries.

Start keeping a development diary. Write a little in it each day, explaining what you've been working on, justifying your design decisions, and vetting tough technical or professional decisions. Even though you are the primary (or only—it's up to you) audience, pay attention to the quality of your writing and to your ability to clearly express yourself. Occasionally reread old entries, and critique them. Adjust your new entries based on what you liked and disliked about the old ones. Not only will your writing improve, but you can also use this diary as a way to strengthen your understanding of the decisions you make and as a place to refer to when you need to understand how or why you did something previously.

Chad Fowler. The Passionate Programmer. 2009

A few weeks ago, I bought a notebook to help keep myself organized. It's been the best purchase I've made in a long time. I use it as a software developer's diary.

Every morning, I write a list of things I want to accomplish that day. Usually the list is somewhat optimistic, and I don't get to everything, but it gets me thinking about what I need to accomplish in the near future.

As I work through each item on the list, I make notes about what I've tried, why I've tried it, and what results I got. If I have any new ideas, I write them down before I forget them so I can come back and try them later. When I talk about what I've been working on at one of our SCRUM meetings, I use my notebook to help me keep my status reports short and concise but complete. I also write down any suggestions people give me.

At the end of the day, I write down, in bullet point form, each thing I worked on, the progress I made, and my thoughts about how to move forward. I use this to try and maintain perspective about a large project when I've been focusing on lower-level details all day.

Keeping a diary like this helps me keep my head clear and lets me work faster. I would recommend it to any developer.

Jay Conrod. Keeping a developer diary. 2009-05-24

One of the things that most of us fail is on keeping proper records of our accomplishments. Some developers rely exclusively on tools such as source control and bug management software to define their tasks and record accomplishments. I think this is not enough.

Keeping a programming diary is a good practice that can not only become a learning tool, but also avoid a lot of trouble in the future.

Many people use these ideas in one way or another, but I have seen no consistency in their use. Having a development diary is such a useful thing, however, that I recommend everyone to try it for a while. Understanding your own problems and decisions can make you learn more about where you need to improve. Ultimately, this is a discipline that can make you a better developer.

Carlos Oliveira. Day 3: Keep a Programming Diary. May 28th, 2009

Elements of your Diary

While the "Share on Confluence" is a very handy tool to catch URLs and annotate them with some notes and tags quickly, not everything you want to log to your diary are links.

Let your diary be a record of your

  • Discoveries
    • Insights - from success & failures
    • Ideas / Opportunities
    • Facts
    • Resources (URLs, etc.)
    • Solutions to your problem
    • Issues to pursue later
    • Risks - to talk to a stakeholder for mitigation
  • Decisions - the why and what
  • Questions - still waiting for an answer from a stakeholder
  • Minutes - from telephone calls to meetings with your team mates

All these information is simply added as an event to the current page of your diary for that day.

Organize your Work

A diary allows you to plan for the day. Working on a plan helps you to get focussed and find important details about the tasks you want to accomplish. Although we know that planning is everything, the plan is nothing, in short iterations it is feasible to try to stick to your plan. This allows you to keep track on how you are doing in closing your tasks.

For every event on you working day, add an event document to your day. This event document will store every piece of information you regard to be valuable for later use. You may even tag these event documents with a subject, categories, and tags. This will make it easier to find related information or keep going on a theme of tasks that you work on over several days.

Note that you should not duplicate the information you already have in your JIRA. Your developer diary will automatically add the list of tasks you fixed on a particular day. If you find it easier to record information in your wiki than in your JIRA task, then create a new page in your wiki. Consider to choose the event doctype and link the new page with your JIRA task.

At the end of your working day, have a look at what you have done and run a short, personal retrospective. Describe what went well and where you can improve. Write it down and define actions to actually act on your insights. This organization of your work will be part of your improvement cycle and will enhance your happiness.

Tool of Learning

Your diary is one of your tools to learn and improve yourself. Get the things done that are meaningful to your life! It does this by

  • Supporting your planning activities to focus on what is to be done next
  • Logging and therefore remembering what you have done recently
  • Supporting your self-reflection to find obstacles to remove and personal work habits to improve

I never travel without my diary. One should always have something sensational to read in the train.

Oscar Wilde. The Importance of Being Earnest

You may also put this plan-do-check-act cycle you apply on a daily basis a little but further and start your working week with a short plan you scribble on your week document. Since you are planning for a couple of days, be quite coarse on these topics. But at the end of the week do not miss the chance to run a private retrospective on what you have done and where you can improve.

Games make us happy

Jane McGonigal tells us why games make us happy:

  1. There is a defined goal to achieve which provides you with a sense of purpose.
  2. There are rules you have to follow that are known in advance.
  3. There is a feedback system that instantaneous allows you to determine you current state of play.
  4. And finally you are voluntary participating: You accept the goal and the rules.

Source: Reality is Broken (Jane McGonigal, 2011).

Work can make us happy

If we align our daily work with this foundations of happy gaming, we have to

  1. define the goal of our work.
  2. know the processes and tools that help us to achieve this goal.
  3. have feedback on what we have already accomplished and what is left to do for us.
  4. make us realize that we have chosen to do the job.

Job of a Software Developer

 

For sure this list cannot be matched easily to every job description. Therefore we assume that we focus on work related to software development and software developers in particular. Nonetheless the last one in this list is still not that easy to align with the software developer's daily work. But you can always vote with your feet if you prefer the chance of a change to the better against some form of security. This is certainly a personal decision and we do not want to focus on this one.

Diary as a Tool

Instead we want to show that a diary is a valuable tool to achieve the first three by applying the following steps:

  1. Before your start working in the morning, define your goal for the day. State this goals in written form so you can access it quickly.
  2. Know your processes and have your tools prepared to be used.
  3. Have your work broken down into meaningful tasks. These can be checked once you are done with it. The list of accomplished tasks and the list of tasks that still have to be done, is the feedback system to guide you through the day.

The diary will surely not ensure that your work is more structured from the moment you start using it. But it helps you to envision your goal and will help you to find a way to a happy working day, step by step. The overview over events can also easily be used to be prepared for your daily stand-up meeting to communicate your work with your team mates.

Business Value

According to David Duncan Davidson your skills are just a way to get there.

I've never defined myself by my skills. Instead, I've always defined myself by what I have done and what I want to do next. Skills are just a way to get there.

James Duncan Davidson. Quoted in "The Passionate Programmer"

Define yourself about what you have done and what you will do. And make sure to talk in a business language to get understood by everyone in your team. Therefore Chad Fowler suggest to note the one and most important hit for you day. Explain this one hit from the business point of view. And make sure that you always prepare your day for having space for such a hit.

Write your Success Story

Use Business Language

Let your diary make you express your achievements in business language. Make clear what you are doing and how your business benefits from it. While you may have already your elevator pitch, the One-Hit property of the day document helps you to record the most important achievement.

The day document allows you to add additional achievements in form of asset documents. Always use business language and carve out the business value of your asset. Writing this down will train you to write properly and use your domain language consistently and confidently. Especially if you talk to business people not in your mother tongue.

Be passionate!

If you want to be great at something you have to be passionate about it.

You have to be passionate about your work if you want to be great at your work. Chad Fowler. The Passionate Programmer. 2009

There is a tool to judge the happiness of a group called Niko-niko. Its application is rather simple: Add one of three type smilies to express your mood for a day. Since every member of a team expresses its mood in this way, one can quickly capture the mood of the whole team.

Chad Fowler suggests in his book to rate your level of excitement for your work on a 1 to 10 scale. A 1 tells that you hate your work, a 10 shouts out that you love it. The important thing is to think about what you can do today, to assign tomorrow a perfect 10? This will get you to constantly think about improving your situation.

Example from projectdocFowler recommends to track your excitement for a period of time. Two weeks track how you are doing, another two weeks trying to plan for the better. So use this tool as you benefit from it. Act on your numbers!

You can only be great at your work, if you are passionate and exited about it. Therefore the day document allows you to define your level of excitement for the coming day. There is also room to make you think and specify, what you can do today to improve you level of excitement for your work tomorrow. This also helps you to focus on things that are important to you.

Envision your Career

Defining daily and weekly goal helps you to stay focussed and get your work done. But to get the bigger picture you need to define what you want to accomplish within a year and even longer terms.

Cat: Where are you going?
Alice: Which way should I go?
Cat: That depends on where you are going.
Alice: I don’t know.
Cat: Then it doesn’t matter which way you go.

Lewis Carroll

The Developer's Diary Add-on provides two document types to visualize your career:

  • Vision - help you to express your vision for your career in the coming years.
  • Annual Vision - lets you get more precise to express what you want to do in the next months, up to one year.

While the vision is a long term tool, the annual vision is more concrete, especially for the next one two three months. Typically both contain your goals very coarse grained. Do not get too much into details, especially in case of the last quarters of the year and your long term vision.

Comparison of Tools

Let's briefly further define the scope of a developer diary in contrast of other tools that help you get organized and communicate with your colleagues in your working life.

Team Spaces

Every team should have their own space within the wiki as a tool of collaboration. You may use the Doctypes for Agile Planning to structure your work in iterations. These iteration documents and all subordinate documents you attach to it, are also records that do not have to be updated. There are also documents for retrospectives to support you in your process of continuous improvement.

The difference is that this space and its document is organized by a team of workers that are collectively responsible to keep this a place where you can store and find information easily. The developer diary is written by a single developer. Others may read, but do not edit.

  • Diary: Written by me, used by me. Others may read it.
  • Team Space: Written by us, used by us. Others may read it.

Blog

A blog is a sequence of articles you publish to have them read by others. You probably want to get in contact with your readers though comments and discussion on the topics you have written about.

A developer diary on the other side, while not strictly private, is not meant to be discussed. Team members may talk to you over lunch about interesting bits or may even answer questions you have raised, but this is not its main concern. It is the developers log of events, a tool to improve and reflect about the professional goals.

Task

While you may use a diary to log tasks, a issue management system, like JIRA, is probably a more convenient place to organize them. Especially if you are not working on them on your own and if you need some source of information for your release notes.

A diary is not a tool to organize your work for a project. It is a tool to organize yourself: the goals you want to reach and identify the parts you want to improve to get more of the things done you are most interested in.

Personal Diary

A personal diary is a private affair. You write your most personal thoughts in it to reflect and overcome personal difficult situations. You usually do not want to share information on this level of privacy with your colleges. Keep these two things separate. A developer's diary is something you do not care to keep secret. On the opposite: You want to share but do not want to be taken responsible for information that may be delusive, not up-to-date or plain wrong.

Status Updates

Sending status updates to your team members via User Status Updates (a Twitter-like messaging system inside Confluence) or HipChat is a very helpful tool to synch your collaborative work. Some teams use these updates to prepare themselves for their daily stand-up.

Diary entries may also be used for daily stand-up preparation, but are certainly no tool to make status updates quickly. Team members may none-the-less access the diaries of the colleagues to update themselves by these discoveries.

Journal

A diary may by mistake stress the personal emphasis of a diary. A journal is also a log of events but by definition does not need to be maintained on a daily fashion.

So it is mostly a matter of taste to call this tool 'Journal' or 'Diary'.

Codelog

A codelog is often very similar to a developer diary. It may stress on code snippets or technical solutions.

Developer Diary for Confluence

projectdoc Developer Diaries provides templates to create your developer diary with Confluence and the projectdoc Toolbox. A year is organized in days that collect information about events that are supposed to be relevant for the future. Events may also work for having one's thoughts put straight to paper. Since each event is on its own page, which may seem too much work at first glance, it is easy to refer to it: from a web/wiki page, in a messenger post, or an email.

projectdoc Toolbox for Confluence

Install the projectdoc Toolbox for Confluence (free trial) now via

Atlassian Marketplace

Install Developer Diary for projectdoc!

Get started with your developer diary:

Create a Diary in a Personal Space!

Install additional Doctypes!

Resources

More on journals with the projectdoc Toolbox for Confluence and related information.

Name Short Description
Provides doctypes to organize the developer's work by the employment of a diary. Take you personal planning and professional records to the next level!
The recommended way of creating a diary with the Developer's Diary Add-on is to add a page with the Diary Template in one's Personal Space.
You want to track your findings? Either with your team or individual? The projectdoc Toolbox supports teams to create project or team journals and individual team members to keep a professional diary.
Collect and maintain information relevant for your team, project, or organization collaboratively.
Create a library for your project. Reference books, podcasts, videos, and other resources that provide information on the topics relevant for your project.
Collaborate to create documents for your stakeholders as a team.