David Shepherd's Posts

Meet for Beers, Not for Code Reviews

Monday, May 2nd, 2011
Figure A: Friends enjoying each other’s company over beers in a community hall Figure B: Developer held hostage during a code review meeting in the 1970s

Code review meetings are notoriously difficult to do well. In Jonathan Lange’s article “Your Code Sucks and I Hate You: The Social Dynamics of Code Review” he identifies several places where code review meetings commonly get off track. The author of the code can feel attacked (see Figure B), discussions escalate to arguments, and filibustering can occur. Adding to these woes the code review meeting introduces a communication bottleneck where several reviewers wait to provide feedback to a single author, which wastes reviewers’ time. Given all of the issues associated with code review meetings it’s a wonder they are ever successful.

Fortunately, there are options for conducting code reviews sans code review meetings. Developers have traditionally used a range of approaches. Some prefer lightweight approaches (i.e., commenting on patches) while others appreciate the more robust support offered by code review servers. Code review servers, such as CodeCollaborator, are recently enjoying an uptick in popularity as they handle all of the logistics of code reviews, from collecting relevant files, to moderating comments, to tracking discovered defects and ensuring they are corrected.





 

In an upcoming webinar with SmartBear I will be discussing how Tasktop and CodeCollaborator work together to eliminate many of the common pain points of code reviews, including the code review meeting itself. The bulk of this webinar will be a live demo of an author and a reviewer working asynchronously to complete a code review. While this demo will connect to the CodeCollaborator server, the we’ll show that to create, review, rework, and complete a code review developers never have to leave their IDE.

Sounds interesting? Join us on May 5th so that you too can eliminate code review meetings. If you just can’t wait, visit our product page to learn more about Tasktop’s CodeCollaborator integration.

Watch Tasktop webinars

Avoiding ALM ADD: Perforce, Mylyn, and Eclipse

Sunday, April 24th, 2011

Software developers leverage many supporting technologies to get their own work done and to coordinate their activities with others. Developers use issue-tracking systems to organize tasks, SCM systems to store source code, and an IDE to write code. As developers use these disparate technologies it’s easy for them to develop ALM ADD. They switch to the issue tracking web UI to determine what task to do next, open the IDE to work on that task, and use a command-line client to check-in the newly created code. They code for a few minutes and then reopen the web UI to retrieve a code snippet. The constant switching, inability to focus, and distraction that is a hallmark of this workflow kills developers’ productivity. It causes otherwise productive programmers to forget relevant details and struggle to stay on task. Fortunately, through tool support this development disorder can be avoided.

Perforce

In our upcoming joint webinar with Perforce we’ll be showing how to use Perforce and Mylyn to stay inside of Eclipse as you work. Instead of switching from IDE to browser to command-line, we map out a IDE-centric approach. Of course, bringing the ALM tools into the IDE avoids switching, but it also enables some deeper integration across the ALM stack such as automatically creating change-sets for tasks. Sound interesting? Join us by registering for the webinar that Perforce’s Randy DeFauw and I will be holding on Wednesday, April 27, 2011, 11 AM PDT / 2 PM EDT.

Watch Tasktop webinars

Top three Tasktop and Mylyn tips

Thursday, March 17th, 2011

Recently I’ve been sharing Tasktop and Mylyn tips with users via Twitter. Twitter is a great medium for sharing every tip (or every thought), but in the Tasktop spirit of “Less is More” I want to share only the top tips with our blog readers. Without further ado, here are some of the more popular tips from the first three weeks of our #tasktoptips series.

Tip #1

How fast can you task? – As developers work they are often interrupted. Tasktop eases the pain of interruptions by allowing developers to create and activate a task without touching the mouse. Next time your co-worker utters the sentence “Hey, can you help me with X” say “Sure”, hit CRTL+ALT+N (new quick task), type in “X”, and press ALT+A. Your new task is immediately created and activated. You can begin helping them quickly without polluting your original task’s context.

Tip #2

Ready, Set, Activate – After helping a coworker, or even returning from lunch, developers want to get back in the flow, fast. Pressing CRTL+F9 brings up a list of recently activated tasks, which you can select to activate. Pressing CRTL+F9, down arrow, and then return is among the fastest ways to get back in the flow after being interrupted. It activates the last active task, focuses your views, and supports your shift back into coding.

Tip #3

Say It Again, With Feeling – As I triage incoming bugs for Tasktop I find myself making the same comments over and over, such as “Please send me your error log, here’s how…” or “Download the Early Access Version, here’s how…”. To speed up my workflow I’ve created templates for many common phrases. I press CRTL+Space, start typing “t_” which lists my templates, and then choose the appropriate one. Not only does this keep me sane, avoiding much repetitive typing, but it avoids mistakes.


There you have it, the top three tips from our first two weeks of tips. Remember, follow me on twitter or watch the hashtag #tasktoptips for more tips in the upcoming weeks!

Watch Tasktop webinars

So You Think You Can Task? – 30 Tips in 30 Days

Monday, February 28th, 2011

More than ever, both independent developers and enterprise shops are realizing and embracing the power of working task-focused. In the past year we have seen more Tasktop and Mylyn presentations from non-Tasktop employees than ever before. We are grateful that they are sharing our message. After hearing our message and working with Tasktop or Mylyn we have had users rave again and again about their productivity increases.

After their initial increase in productivity users may plateau slightly too early, believing the basics are enough. While task-focused basics will take you a long way, the tips, tricks, and shortcuts I have learned while working with the experts that made Tasktop offer a sizable productivity bonus on top of that baseline. In the coming thirty days I will share the top thirty tips, one per day, that are designed to take you from productive to promotion.

Follow Me to Productivity


If you are a new or intermmediate user of Tasktop or Mylyn either
follow me on Twitter or watch the tag #tasktoptips for the next 30 days. The tips and tricks that I share will help you get the most out of your workday. Obviously I’ll be tweeting tips each day, but don’t let that stop you from tweeting your favorite tips marked with #tasktoptips. Happy TwitTipping!

Watch Tasktop webinars

Tasktop Brings Legacy and Agile Project Management Together

Thursday, December 2nd, 2010

As the Zobeppo Software Company knows, each project management suite has its share of strengths and weaknesses. Zobeppo started using Bugzilla as their primary bug tracker because it is known to be reliable and scalable. They began using Mingle on a few newer projects as a step towards adopting an agile approach. Zobeppo acquired a shop that used Rational Team Concert, and thus adopted RTC into its toolset. As you might imagine, this combination of development tools caused headaches for the individual Zobeppo developer. Not only did he (or she) need to connect to all of these different project management systems, but he often needed to track dependencies between tasks from different repositories. Fortunately for Zobeppo developers, Tasktop can connect to all of these project management systems, bringing all of a developer’s tasks into one Task List (see Connecting to a Repository). In this post we’ll discuss how Tasktop allows developers to track relationships between tasks from different repositories… with no upgrades required on the server!

Scenario: Adopting Agile in a Legacy Environment

Rally Associations
Screenshot 1: Using Associations to Add Legacy Subtasks

While several projects have adopted Mingle, Zobeppo’s advertising software team decided to adopt Rally as their project management system. Thus, the team must move their main product, PopupAdvertizer, from Bugzilla to Rally. All new stories, tasks, defects, etc. will be created and tracked via Rally. When planning their first sprint they discover that there are several defects and enhancements in Bugzilla that they would like to use in their sprint. To seamlessly include these Bugzilla tasks in the Rally sprint they could, as shown in Screenshot 1 above, create a story in Rally called “users must be presented with relevent popups for every item” and create a link to the existing tasks in Bugzilla: “show the popup when the user hovers over links” and “show the popup when users hover over images”. The user can track the story in Rally, in the context of his sprint, but still have a direct link from that story to the tasks. This seamless integration of legacy tasks into new agile stories allows teams to adopt new agile tools without copying over hundreds of legacy tasks. This, in turn, eliminates the common problem of keeping the original tasks synchronized with the copied tasks, which is particularly problematic when other teams still access the original versions.

Scenario: Private Development Tasks Depending on Open Source Bugs

RTC Associations
Screenshot 2: Using Associations to Track Open Source Dependencies

Zobeppo’s recently acquired developers, who use Rational Team Concert, specialize in building upon open source frameworks to deliver custom solutions to their clients. When working on a client project they will often find bugs in the underlying open source frameworks, and thus file issues on the open source project’s site. A developer may become blocked on a certain task because of one or more bugs in the open source project. In this case he add links from his task to the open source bugs that are blocking him (Screenshot 2) and schedules his task for next week. When he reopens the internal task he glances at the links to determine whether the open source bugs were fixed, which is indicated by displaying the summary in a strikethrough style. After reviewing the dependencies he can either resume the internal task, if he’s unblocked, or edit the open source task, possibly adding a comment to spur on action. Having these dependencies represented in his task editor makes it easy for the developer to track external dependencies without requiring changes to either server.

I’ve presented two common scenarios above but there are many other situations where cross-repository linking can make your life easier. To try out Tasktop’s cross-repository linking on your personal pain points, download the free trial. I’d love to hear about your multi-repository tool stack and discuss how Tasktop could help.

Watch Tasktop webinars

Two Tasks in Ten Minutes: Task-Focused Development with C/C++

Thursday, September 30th, 2010

Most C++ projects have thousands of files. In the course of working on a single task developers can find themselves asking:

“What file was I just working with?”

As they resume a task from earlier that day or even that week they try to recall:

“What files were relevant to this task?”

As they send a bug to another developer the new developer asks:

“Which files did my co-worker find relevant?”

Fortunately for C++ developers Tasktop automatically tracks which files are relevant for a given task. Tasktop uses this information, called task context, to focus developers’ views on only the relevant files, to repopulate views when they resume a task, and to populate their co-workers views when they pass off a task. In this blog entry we’ll show how Tasktop’s ability to focus enables Dave the Developer to work on a task, fix a bug, and then finish his original task all within a span of 10 minutes.

Task List Task Editor Project Explorer
(a) Task List (b) Task Editor (c) Focused Project Explorer

Focusing on a Single Task
Dave the Developer has been tasked with improving and maintaining a program for managing archives in the Windows operating systems. To begin his work he opens the Task List (a). His Task List includes several queries, which download tasks from his bug tracker into his IDE. He has a query for all tasks assigned to him and a query for all major bugs. Because there are no major bugs he chooses the top task from this list to work on. He opens Task #9 “Show drive bar at the bottom of panel” in the Task Editor (b) to read the details of the task. Once the task is understood he begins working, browsing source code and making changes. As he works, Tasktop automatically tracks the files that he is touching and shows only the most relevant ones in the Project Explorer (c), filtering the hundreds of irrelevant files in the project. Note that Tasktop not only filters the Project Explorer but that it focuses many other views, such as the Outline View and the code editor (see Get Focused below). The filtering Tasktop provides helps Dave focus on the task at hand.

Task List Critical Bug Project Explorer
(a) Task List (b) Task Editor (c) Focused Project Explorer

Collaborating on Tasks
As Dave is working on Task #9 his colleague, Paul the programmer, is processing incoming bugs for the project. He comes across Task #10 “hangs after unplugging drive”. Paul begins working on Task #10 but quickly realizes that Dave would be better suited for this particular bug. So, Paul uploads his context (i.e., the list of relevant files) to the task and reassigns it to Dave.

As Dave is working on Task #9 he notices that a new bug appears in his Task List (a) under the query “Major Bugs”. He immediately opens the Task Editor (b) for this task and decides to switch to the Task #10 because it is causing problems for users. When Dave activates this task he has the option to use the attached context, which he does. Thus, when Dave starts this task the Project Explorer (c) and several other views are automatically populated with relevant files. Because he knows which files to start from Dave can quickly find and fix the offending code in the file hotplug.cpp. He commits his updates and closes this bug.

Project Explorer Project Explorer Commit Template
(a) Files for Critical Bug (b) Files for Task #9 (c) Auto-Populated Commit

One-Click Multitasking
Next Dave turns his attention back to Task #9. Initially the Project Explorer (a) shows files from the critical bug that he has just been working on but as soon as he reactivates Task #9 the Project Explorer filters those files and shows files relevant to Task #9 (b). After a few more changes to panel.cpp Dave is ready to commit his updates. When he selects commit the commit template is automatically filled out with the summary of his task and a link to the task (c). In addition to never having to fill out commit templates this gives great traceability between code and intent when Dave looks at the code in the future.

Focused Outline Code Folding Change Set Management
(a) Focused Outline (b) Focused Code Folding (c) Managed Change-Sets

Get Focused
Today we’ve shown you only a fraction of the focus that Tasktop brings to C++. Tasktop can also (a) focus your Outline View, (b) focus your source code by folding irrelevant elements, and (c) automatically organize your changes according to change-sets. To download your tasks into Eclipse and begin working focused try the free trial of Tasktop Pro which connects to most popular defect trackers and project managements systems.

Watch Tasktop webinars

Community News, ColdFusion Edition

Wednesday, April 21st, 2010
News “For many years, ColdFusion’s highest requested feature was an IDE” (Fusion Authority). With the recent release of ColdFusion Builder Adobe has met this need head on. Because ColdFusion Builder is built upon Eclipse developers can leverage many standard Eclipse plugins, and we have recently seen an explosion of interest in Tasktop Pro and Mylyn amongst the ColdFusion community. For ColdFusion developers this recent interest results in newly recorded webinars, blog posts, videos, and articles to help get started with this powerful toolset. Here’s a collection of some of our favorites.

Installing Mylyn onto ColdFusion Builder by Mike Henke
Mike’s recent post walks users through the steps necessary to install Mylyn into ColdFusion Builder, including a five minute screencast illustrating each step.
Know your tools: Productivity Tips/Tricks for CFEclipse/CFBuilder by Marc Esher
Mark Esher shares his knowledge of ColdFusion productivity tools with The Online ColdFusion Meetup. You can either watch his recorded presentation to this virtual group or review his presentation summary.
Mylyn – A Task-Oriented Approach to ColdFusion by Mike Henke
In the The Fusion Authority Quarterly Update you’ll find Mike Henke’s article entitled “Mylyn – A Task-Oriented Approach to ColdFusion”. Mike, a longtime Mylyn user, explains the advantages of working task-focused to ColdFusion developers.
This Week in ColdFusion by TWICF.com
This Week in ColdFusion is a weekly podcast for ColdFusion developers. While this week’s version of This Week in ColdFusion was not focused on Mylyn the broadcasters take a minute to explain how Mylyn impacts their productivity (about 11:15 in the video).
Upcoming Mylyn Presentation at UK ColdFusion User Group by Kevin McCabe
Kevin McCabe with be presenting Mylyn at the UK ColdFusion User Group at the start of June. See the group’s webpage for details on this upcoming meeting.
Mylyn in Bite-Sized Chunks by David Shepherd
This collection of some of the best of Mark Esher’s posts from the past few months is an excellent resource for using Mylyn to improve your productivity as a ColdFusion developer.

Do you have news for the task-focused community? Send news to news@tasktop.com

Watch Tasktop webinars

Webinar – Task-focused programming for PHP developers

Monday, April 12th, 2010
Mylyn fully supports task-focused programming for a growing number of languages and frameworks such as Java, C/C++, and Spring. Support for PHP development with Mylyn is now available as well. In the upcoming webinar Code at the Speed of Thought with Task-Focused Programming Mik Kersten, creator and lead of the Eclipse Mylyn project, and Roy Ganor, Zend Studios and Eclipse PDT project lead, will team up to demonstrate task-focused programming tools and techniques for PHP developers. php-webinar-announce3

Mik and Roy will demo using the state of the art IDE platform for PHP development: Zend Studio with Tasktop Pro. The webinar will cover the basics of accessing bug and project tracking systems from inside the IDE and focusing the interface on only the PHP code relevant to the current task. While the webinar is aimed at developers who are new to Mylyn, it will also include a taste of more advanced programming productivity features such as task-focused version control and automated time tracking. Learn More

When: April 14, 2010: 9:00 am PDT
Presented by: Mik Kersten, Tasktop and Roy Ganor, Zend
Recording: Online

Watch Tasktop webinars

Optimize Your Workday with Tasktop and the Atlassian Connector for Eclipse

Thursday, April 8th, 2010

The new 2.0 release of the Atlassian Connector for Eclipse provides the latest and most complete access to Atlassian’s development and collaboration tools from within the Eclipse IDE. This provides developers with an integrated platform for managing issues, source code, builds, and code reviews. Combining the Atlassian Connector for Eclipse with Tasktop Pro delivers a further productivity boost by integrating more of a developer’s workflow including time tracking, email, calendars, and web browsing. To illustrate the benefits of this tooling I’ll walk you through a day in the life of a developer using the Atlassian Connector for Eclipse and Tasktop Pro.

8:00 am
8:00 am - Organize the Day

Organize the Day – When Developer Dave arrives at work his first order of business is to organize his workday. First he reviews updates to his tasks (JIRA issues) using the Task List (pictured). The notification icons, blue arrows, give him an overview of which tasks have changed and detailed change information is just a click away. Next Dave selects tasks to work on today using the “Schedule for” action. These tasks then appear in blue at the top of his Task List. As he organizes his Task List Dave also checks Tasktop Pro’s agenda view, noticing that his first meeting isn’t until 10:30 am.

8:30 am
8:30 am - Work!

Work! – Once Dave has organized the workday he activates the next task at the top of his Task List, reviews his notes on the task, and begins working. As he works Mylyn tracks which files he uses for his task. In addition, Tasktop Pro tracks the web pages he views, and when he returns to the task later all of his files and web pages are automatically opened (see 1:30 pm).

While working his Task List remains visible so that he can quickly respond to time-sensitive tasks. The change notification icon on a critical task will prompt him to respond quickly. He will process updates to less critical tasks in a batch when it is convenient.

10:30 am
10:30 am - Code Review Comments

Perform Code Review – As Dave is working Tasktop Pro’s calendar notifies him that his team’s code review starts soon. He remembers that he wanted to add one more comment to the file under review and so he activates the review task, which in turn opens the file he was previously reviewing. He uses the normal code editor to add a comment to the review (pictured) and then heads off to the team’s review.

11:00 am
11:00 am - Triage Public Bugs

Triage Public Bugs – Dave is in charge of triaging public bugs for his project. As he processes new bugs he will often assign the bug to an upcoming sprint. However, because these bugs are public, he may choose to use the “Send To” action to create an internal bug to mirror the public bug, thus allowing an internal discussion among developers. Tasktop Pro’s Associations (pictured) allows him to link these bugs even though they are in different repositories. This Associations Feature significantly smooths the developer’s experience.

12:00 pm
12:00 pm - Lunch

Eat Lunch – Dave takes a break to eat at his favorite lunch spot.

1:00 pm
1:00 pm - Build View

Put Out a Fire – Dave is also in charge of monitoring the health of his project’s build. The Atlassian Connector for Eclipse provides a Build View, which Dave always has visible as a Fast View, allowing him to monitor builds without leaving Eclipse. When the Build View decorator goes red (pictured), indiciating a failed build, he opens the Build View to investigate the problem. From within the Build View he can create a task from a failed build and, more importantly, assign this task to the person responsible for breaking the build.

1:30 pm
1:00 pm - Back to Work

Resume Work – After fire-fighting Dave is able to immediately recapture the flow of his earlier task. He reactivates the task and the relevant files are automatically opened, the Package Explorer shows only those relevant files (pictured), and his private notes on the task remind him of the next step. Features like focusing, or showing only the files and elements relevant to the active task, saves Dave from having to remember which few files out of thousands were relevant to his task. When using Tasktop Pro Dave has the added convenience of linking any folder on his computer, thus extending this focusing to all of his file system.

4:45 pm
4:45 pm - Triage Email

Triage Email – While most of his development tasks are tracked via a bug tracker, Dave must often interface with external contacts who do not have access to a shared JIRA instance. They often send him “tasks” via email. Fortunately, when using Tasktop Pro, Dave can tag email which will then appear in his Task List. In the screenshot he’s tagged the “[get] cruise icons” email as a task. Using this system, he hardly ever drops an email.

5:00 pm
Time Tracking Dashboard

Leave the Office – The countless small savings of the Atlassian Connector for Eclipse and Tasktop Pro have added up, and while other developers are still catching up on change notifications or manually creating tasks from email Dave is finished. He uses Tasktop Pro’s Time Tracking Dashboard to review his activity for the day (pictured), submit his time to the repository, and then he leaves.

Re-energize Your Workday

The Atlassian development stack is a powerful approach for managing the software lifecycle. With the release of the Atlassian Connector for Eclipse developers can integrate this stack into their daily workflow. As we saw with Dave the developer, the Atlassian Connector for Eclipse and Tasktop Pro removes many daily friction points, allowing developers to focus on high-level problems. To re-energize your workday add the Atlassian Connector for Eclipse and Tasktop Pro to your IDE today!

Watch Tasktop webinars

Mylyn Best Practices in Bite-Sized Chunks

Thursday, March 18th, 2010

Over the past year I’ve been working closely with those in the Tasktop and Mylyn community at large to define best practices for task-focused programming and collaboration. My goal has been to share what I’ve learned about how the leaders in task management use Tasktop and Mylyn to collaborate effectively. To this end, I’ve created several articles on the major task management topics. My focus on major topics is necessary to communicate the full task management vision, but it also results in longer, more intense in-depth posts.


@marcesher

I’ve found the perfect companion series to my in-depth best practices posts. Marc Esher, a thought leader in the Eclipse and Cold Fusion community has been creating an outstanding series of articles on Mylyn best practices in short, bite-sized posts. His content includes great text and often includes a video walkthrough of the feature or concept that he is focusing on. Next coffee break skip the walk (or drive) to Starbucks, grab a home-brewed cup, and spend 5 minutes with one of Marc’s posts. You’ll save a few dollars and your new-found Mylyn knowledge could save you a few minutes (each day!).

Here are Marc’s Mylyn posts to date:

  1. Why Mylyn is Indispensible
  2. The Best Eclipse Menu You’ve Never Heard Of
  3. Mylyn and Jira Short Tutorial
  4. Mylyn and Jira Sharing Context
  5. Mylyn Creating New Issues

I hope you enjoy these articles. If you have any input on task management best practices please join the dialog with me on Twitter. I love to hear from users and your input will influence our future posts.

Watch Tasktop webinars