Name of the blog

Short description of the blog

The advantages of task-driven development

 

Over the last few years, we’ve seen a large number of development teams moving away from file-based version control tools. This is no surprise, as new tools on the market started to support the concept of changesets and atomic commits.

Why grouping changes makes sense

So instead of checking in every single file, developers were now able to group their changes in changesets. This gives teams a much better project history, as each changeset reflects a task. Also, changesets are applied to the repository database atomically, i.e. completely or not at all, thus protecting database integrity.

Distributed version control systems and, of course, PureCM also allow developers to create, checkpoint or rollback changesets without needing a connection to a central server. But task-driven development doesn’t stop there. You’d want to link your changeset to its original change request or defect in your issue tracking tool.

Easy: add the issue reference as a comment, or link it to your changeset using a 3rd party plugin. But what if you’re working on parallel versions, where changesets get merged across project branches? Do you still know to what versions your change has been applied to? Or how do you track your changes when implementing code reuse across projects?

How to keep track when working with parallel versions?

Typically, only your original changeset will be linked to the original issue, but it quickly becomes a manual and cumbersome process to find out into which releases, say, a particular bug fix has finally made it. This is where PureCM’s end-to-end focus on task-driven development comes in, providing a full picture with on a simple mouse click.

Watch the short 3 minute demo to learn how you can get full transparency between project branches and even when sharing components across multiple projects. Ah yes, here’s the link: http://www.purecm.com/file_downloader.php?type=video&download_id=8

I hope you like it!


 

SDC, Part 9: Project Status Reporting

We’ve now covered the development journey from setting up a project hierarchy and assigning features and tasks to completing work. It’s time to have a look at how you can keep track of what’s happened. PureCM offers several ways to visualise project status, which I’ll present below.

What information do you need?

True, there are countless reports, diagrams and options when looking at reporting. But if I try to reduce to the max, as a development or project manager you’ll quite likely want to get answers to the following questions:

  • What has been completed in this version (or iteration)?
  • Which tasks are still open?
  • Who is working on what?

Note that I’m usually referring to features and task when asking these questions. I want to see which features have been implemented, not which lines of code have been changed. The latter is very important, too, and will be covered in the next blog.

What has been completed in this version?


Getting the current project status

With PureCM, you can easily get that information in the Projects view. Select the project or version you want to look at and simply set the filter to ‘Completed tasks and features’. This will give you a list of all work items that have been completed. 

From there you can immediately drill down to more detailed information, e.g. show all tasks of a feature or all files that were changed/added/deleted as part of the change. Or you can check into which other versions or features a specific change has been merged into.

If you also want to see all release snapshots that were taken, click on ‘Show submitted tasks and releases’. This will open a chronological view of how the changes were applied to the server. 

Progress over time: the project burndown

The above has given you a quick update on the current status, but you don’t see how you’ve progressed during, say, the last iteration. Of course, you can save the task lists at multiple times to get a burndown report, but this is definitely too manual a task. So let’s change to the ‘Reporting’ view, where we can create report templates. 

With the next PureCM release in July you’ll get three new task-based reports with the Professional edition: The burndown, burndown with priority and the developer status report. All three allow you to define a template that dynamically generates a html report that you can customise, print and/or export as CSV or XML.

Besides getting a good feeling for velocity (“how many tasks do I typically complete in a certain period of time?”), an increase in total tasks also shows you whether you’ve suffered from scope creep. Reporting is an area we’ll be working on further, so feel free to share your needs with us!

Which tasks are still open?

Now that we know what has been completed, we can check on what is still open. Again, we can start from the Projects view and set the filter to ‘Open tasks and features’. From there we can filter on a specific task status or priority to get a better idea of where we are just now.

As before, you can also switch to the Reports view to see how the number of open tasks has evolved over time to estimate how likely it is that you finish all open tasks for the current iteration or version. This time, I've exported the CSV and created a standard chart in no time.

Of course, not all tasks have the same importance. Thus you can also get a burndown per priority to check whether at least your high priority items can be completed as planned. ;)

Who’s working on what?

Finally, you might wonder which of your team members might have some free resources... To do so, you can again use the Projects view and filter on a specific user name or run the developer status report. The project view might be more useful if you’re about to assign work, as you can do that from the same view. On the other hand, the report is easier to show or print for a progress meeting with your team, as you can list all developers at once.

Summary

I’ve covered three basic reports that most probably all project managers need to answer. More specifically, I’ve covered the following topics:

  • Current project status from the Projects view: Completed or open tasks that allow fully dynamic drill down from feature to code line.
  • Burndown report from the Projects view: History of completed and open tasks for a given period of time, typically based for estimation
  • Report templates can be customised, printed and exported as CSV/XML

With this, you should be armed for any progress meeting. Tim will move a step forward on the development lifecycle and explain how you can create release snapshots, retrieve them and visualise the file and folder differences.


How to get a quick status report

Have you ever wanted to get a quick overview of what changes have been submitted by a specific developer? Or wanted to know which changesets are present in the current feature stream, but not in its parent? If yes, this blog is for you.

It might be worth to highlight at this point that all the above reports talk about “changes” and “changesets”, and not file or folder differences between streams (of course, you can get the latter information as well, using the PureCM stream comparer).

Creating a report based on changeset is pretty easy in PureCM, just go to the “Reports” node in the Explorer view:

 

You can find there some example reports, but just click on “New” to create your own. This opens up the report dialogue where you can choose between “Issue reports” and “General reports”. The former are available if you are using PureCM’s issue management, or if you have integrated your issue management tool with PureCM. The latter is based on changesets and gives you exactly the reports we need here.

Follow the wizard, which guides you through a few options, such as the fields you would like to display, which users want to include or which period you are interested in.

 

Define the report permissions before creating and saving it, just in case there is confidential information involved. Then finish the wizard, and you will get something similar to this:

 

You can see that these reports are a very simple and fast way to get some insight into your day-to-day development. You are able to export or print your reports for further use, and you can customise their design.

Of course, you might get richer information and a better overview of your project status from issue reports. But this is the topic of another blog to come...