Archive for February, 2009

Tasktop how-to: Create tasks with style

Thursday, February 26th, 2009
Applies to: Tasktop Pro, Tasktop Starter, and Mylyn
Level: Intermediate
Summary: Learn how to create tasks with good style, speeding your personal workflow and facilitating collaboration

tasklist

Tasks are a vehicle for communication. Tasks that you create may be completed by others, and next month you might resume tasks that you create today. Whether communicating with others or with your future self, your style of communication will affect its clarity. A task you create named do the coding, while possibly meaningful when you created it, will not be clear in three weeks when you resume it. To assist you in creating tasks with style, we present the following guidelines and tips. These guidelines improve communication while also improving more technical task qualities such as searchability. If you have other naming patterns that you are using, please consider commenting on this post, as we are always iterating on these guidelines based on our understanding of task usage.

Naming tasks

Naming tasks is a surprisingly important step in task creation, as it affects a variety of task qualities. A carefully named task is straightforward to search for and, once found, easy to begin or resume work on because it is easy to understand. Follow these guidelines to create well-named tasks:

  1. Start with a verb, follow with the object(s): Most task names naturally consist of a verb and one or more objects (nouns). If you consistently order these components of the task name then it is easier to scan each name, to search task names, and to categorize tasks.

    Example: addverb content assistobject for tasksobject 2

  2. Be specific: Using specific verbs and nouns when formulating a new task name will make this task easier to search for at a later time and will make the purpose of an older task easier to recall. In addition, being specific when naming tasks makes it easy for collaborators to understand your task.

    Example: addverb open report buttonobject for timesheets pageobject 2
    Anti-Pattern: makeverb buttonobject for pageobject 2

We provide two types of examples to make our guidelines more concrete. First we provide a list of verbs that commonly appear in task names. Note that many verbs are domain specific and so the most commonly used verbs will differ depending on your domain.

Common tasks write, blog, post, submit, brainstorm, update, purchase, review, improve, investigate, consider, explore
Ongoing tasks plan, manage, track, maintain
Development tasks add, integrate, support, design, document, test, refactor, fix, clean up

We also provide examples of complete task names that follow the above guidelines:

  • add filter by milestone to task table
  • file travel expenses for EclipseCon
  • support tooltips for tasks in Task List
  • purchase Logitech cordless desktop keyboard
  • update file refresh policy in File Navigator
  • find hosting provider for tasktop.com
  • NPE in working set selector
    (note: the common verb “fix” is implicit)

Anti-patterns when naming tasks

In addition to these guidelines we have also indentified the following anti-patterns. These anti-patterns, derived from the guidelines, address common mistakes that are made when naming tasks.

  1. Avoid ambiguous references: During the act of naming tasks it often feels like overkill to precisely name all objects involved, and you will be tempted to create tasks like update wizard icons on the page. While it is clear at the time which page you are referring to, by the time you are able to work on that task it will require thought to recall, at best wasting time, at worst creating an incorrect product.
  2. Avoid adverbs: Avoid starting task names with adverbs like “quickly” or “carefully”, since they are often related to planning or priority information and not to the goal of the task.
  3. Avoid names and dates: Tasks are decomposed into separate fields, such as “Due Date” or “Assigned To”, so that tasks can be presented according to their properties. For instance, tasks with overdue deadlines can be shown as red. Do not include information that belongs in other task fields in the name, including collaborator names, due dates, and project names. The task named implement refresh with Todd will become inconsistent if you change your CC field to include John instead of Todd.
  4. Omit common verbs: Bug reports are traditionally named with a summary of a problem. For example, tasks losing scheduled date after restart. In this sense, all defect reports are implicitly prefixed with some variant of a verb like “fix”. Since the verb could be the same for all bugs, there is not much value in adding it.

Following all of these guidelines and tips when naming tasks will lead to increased output that both yourself and your collaborators will appreciate. While it can be difficult to appreciate these guidelines in the abstract, concrete tasks that break these guidelines serve as an enlightening illustration. Here’s an example that breaks the guidelines and tips for naming tasks:

  • Quickly do entry for it using data about the things

Scoping tasks

Other providers of task management systems (e.g., CollabNet, 43 Folders) agree that tasks should be reasonably sized, usually defined in terms of the estimated time to complete a task. These providers recommend avoiding tasks that are too small (e.g., type a method header), because you will spend too much time tracking every detail, or too large (e.g., implement the product), because you are likely to become overwhelmed or lost. We avoid more precise scoping rules because we have found that following our task naming guidelines, especially “be specific”, naturally leads to well-scoped tasks.

Describing tasks

Although naming a task is the most important aspect of creating a task, there are several other task fields that can be completed during task creation. Here we provide a table with recommended content for several important fields:

Description Use this field to elaborate on the summary. It should begin by using prose to describe the goal of the task, a relevant use case, or even steps to reproduce a bug. We find three sentences or less is usually sufficient. Other task information, such as stack traces, pointers to reference material, or long email threads are good candidates for comments, as they would cause the description to become too long, pushing other relevant task information off of the screen.
Time When tasks are meant to be completed at some point in a given time window, as in agile processes, use the “milestone” field (or equivalent). When tasks must be completed before a specific date (e.g., filing your taxes), use the “due date” field.
Priority This field specifies how important the task is to the success of the company, product, etc. It is important that this field is set with some thought, as task priority is used to highlight the most important tasks in the Task List. Consider reserving the highest priority for tasks that must be completed ASAP.

Giving tasks a good home

When using Tasktop, you can choose to either create local tasks (on your machine only) or shared tasks (on a server, shared with others). If you are the only person involved in the entire lifecycle of a task, create a local task. If any collaboration is involved, e.g., input from others, the task forms a part of a product release cycle, it should be a shared task. Don’t worry if you’re not sure at task creation time where your task should live as it is easy to move between local and shared tasks using Tasktop’s “Send To” action in the Task List.

When using shared tasks collaboration is simple; you can add collaborators to a task and track task communication on the task comment thread. Collaborators can use a variety of repositories so Tasktop offers several Tasktop Certified Connectors (i.e., that connect Tasktop to the repository). To begin sharing tasks browse and download Tasktop Certified Connectors.


During the course of a project you and your team could create hundreds or even thousands of tasks. If your team follows these task creation guidelines you will save time searching for old tasks, remembering the goal of an existing task, and interpreting a task someone else has assigned to you. You and your team will understand the benefits of working with your task management system, instead of against it, as you begin creating tasks with style.

Be more productive. Guaranteed.

Eclipse Foundation Elections

Monday, February 23rd, 2009

The polls are now open, and I’m up for re-election as a committer representative on the Eclipse Board of Directors. If you received an elections email from Eclipse be sure to check out the list of candidates and to make your vote count. My vision statement is below.


The role of the board is to both direct and to protect the Eclipse ecosystem that we know and love. Eclipse evolves based on input from a few large strategic member companies, numerous smaller members, and individual committers. To continue the success that is Eclipse, the board must balance these diverse interests.

The key thing that makes me a good choice to re-elect as an Eclipse Board member is my track record of representing the needs of committers. Because Eclipse involves a diverse set of individuals acting independently, it is subject to the “Tragedy of the commons”. This situation happens when the self-interest of individuals does more to extract value from a resource than to collectively contribute back, eventually leading to the demise of that resource, be it a patch of land or a software ecosystem. The Eclipse Foundation has done a great job of preventing this by providing committers with a thorough and reliable infrastructure for open source development. However, with limited resources, the Foundation cannot go it alone.

figures-talking2

With Foundation staffing alone, the coordinated release train could not run the way it does. The coordination itself is a common-good effort. Without the efforts and late nights of committers such as David Williams, Markus Knauer, Nick Boldt, Steffen Pingel and Martin Oberhuber, Ganymede would not have been the success that it was. These individuals went well beyond the scope of their project to help us all deliver a great Eclipse release. My main initiative on the Eclipse Board this past year was to push for additional resources and support of the release train. I’m happy to say that this effort is now underway. If I’m elected, I will continue pushing coordinated release integration and testing infrastructure so that we have an even better Galileo release, and in the process help projects meet the very high quality bar set by the Eclipse Platform.

One of the most important attributes of a committer representative is to add balance to the discussion about how Eclipse should evolve. The board has good representation of the interests of large strategic members. Individual committers, who are a very significant portion of the commit horsepower behind Eclipse, are generally under-represented. A strong voice on the board is needed to represent this community.

Three factors provide me the balance required to do a good job representing the needs of committers. First, I spent many years as an individual committer on Eclipse, have collaborated with hundreds of contributors, and have been responsible for helping numerous individual committers earning their commit rights. Being an active committer since the first days of Eclipse has given me a good perspective on the evolving needs of all committers. Second, my company and I are committed to the success of Eclipse. We want to see Eclipse flourish so that we can layer our focusing technology across all Eclipse-based tools. The main evidence of this is that Mylyn, which we continue to lead and put a very large portion of our development resources towards. Mylyn is likely the biggest common good effort in Eclipse that is not supported by the Foundation. Finally, my public role provides a good perspective on the direction of Eclipse. I have been working on open source technology innovation for over a decade, since the early AOP days at Xerox PARC. I now get to show off Eclipse-based technologies to very large audiences during prominent talks, learn from newcomers to the ecosystem, and share my deep belief that Eclipse will continue to be the platform of choice for software innovation.

Be more productive. Guaranteed.

Watch the W-JAX keynote and be more productive. Guaranteed.

Thursday, February 12th, 2009

This talk starts with look at the effect that tools have on our programming productivity. It then identifies the transformational benefits that the IDE has brought about, using Eclipse as an example. A new transformation is currently underway in the form of the task-focused interface, which is re-aligning the IDE experience around the user, leaving behind the limitations of the program structure-centric interface. Demos are sprinkled throughout, and the talk concludes with predictions of upcoming changes in development and productivity tools.

Mik Kersten at W-JAX
Less is More: Redefining the “I” of the IDE
Many thanks to the W-JAX conference for a great venue.

Recorded on Nov. 6th, 2008, the talk addresses the tough time that we are facing as an industry. We are all being asked to do more with less. One of the few good things about recessions is that they tend to increase productivity. The question is, how can we increase our productivity without burning ourselves out with ever longer workdays?

Productivity Guarantee The answer comes back to tools. If you spent your entire day working with Java and Bugzilla, Mylyn alone can make you dramatically more productive. We determined this with statistical significance in a peer-reviewed study of a broad range of Eclipse programmers. While the ecosystem of Mylyn connectors has been growing in diversity, we now have a set of connectors that are Tasktop Certified for enterprise use. The certification process enables us to ensure the productivity promise of Tasktop, Mylyn and the task-focused interface. As of today, we are putting our brand behind that promise. If Tasktop does not make you more productive, you get a full refund.
I’ve always been fascinated by the way that software tools can transform our ability to work, so it’s exciting for Tasktop to be offering the first productivity promise of this sort. While Tasktop will continue on its mission of offloading the brains of those who use it, we have just upgraded our slogan to: Be more productive. Guaranteed.

Be more productive. Guaranteed.

Support Mylyn in the Eclipse Awards

Friday, February 6th, 2009

Things continue to be lively on the Mylyn front. I’m very happy to say that we have a new committer on one of our most used components, the Bugzilla Connector. While I only know Frank Becker from his patches, I’m very happy to announce that he has earned his commit rights. In other news, David Green, has also earned commit rights for his contribution and maintenance of the new Mylyn WikiText component, which will appear in the March release of Mylyn 3.1. It’s great to see our committer diversity increase in this organic way, alongside our very helpful contributor community.

If you’re a user of Mylyn or use a Mylyn-based Eclipse integration such as Tasktop, SpringSource Tool Suite, Atlassian JIRA, Rally, CollabNet or one of the many others, we would really appreciate that you show your support by voting for the Mylyn committers in the Eclipse awards. The original nominations are included below.

Frank Becker for Top Contributor

Through countless patches Frank has provided the other Mylyn committers help in improving and evolving the Bugzilla connector. This connector is used by a large portion of bugs.eclipse.org users, and is one of the few “common good” projects within the Eclipse community that has no official support from the Eclipse Foundation. It has been encouraging for the Mylyn project to see community contributions on this connector, in the form of Frank’s patches to both Mylyn’s rich client and the Bugzilla server.

Steffen Pingel for Top Committer

I nominate Steffen Pingel for his contributions to the Mylyn project, in the form of community support via countless bugs and posts, as well as his code contributions. I hate to say this, but Steffen had more than half of the commits on Mylyn last year. To put that into perspective, Dash stats for 2008 put Mylyn as the most active Tools project by a pretty wide margin. His increasing involvement with cross-project, build and maintenance of the Java EPP distribution has also been helpful in the release trains.

Mik Kersten for Top Ambassador    Apologies for the self-promotion

Mik has been evangelizing Eclipse in highly visible venues that reach beyond the current Eclipse ecosystem. He presented a widely attended talk at JavaOne that earned him a JavaOne Rock Star Hall of Fame award. Mik is the first member of the Eclipse ecosystem to be recognized with this award. He has also been promoting Eclipse and RCP at numerous other conferences, including a recent keynote talk at W-JAX, talks at SpringOne conferences, and some of the most highly rated talks on the Eclipse conference circuit. Mik’s Eclipse Mylyn 2.2 and 3.0 videos have been viewed over 20,000 times (combined), making them the most highly viewed Eclipse webcasts on Eclipse Live. As CEO of Tasktop Technologies, Mik is demonstrating the capabilities of the Eclipse platform by basing all of his company’s innovative products and services on Eclipse and RCP.

Be more productive. Guaranteed.