April 10, 2009

New Feature: Guest Role

Acunote had role-based access control since beginning, but so far it provided only two predefined roles - Admin and User. Many customers asked us to add a third role for Guest users with read-only access to the organization data. Today I'm pleased to announce that Guest role is ready and available for all our customers on any pricing plan including the Free plan!

When implementing the Guest role, we've put a lot of work to redesign access control to guarantee security today and assure extensibility tomorrow.

Role in Acunote now defines a set of privileges for certain operations in the system. We implemented the white-list, "everything that is not allowed is forbidden" approach to security. This way we guarantee that the user can perform only those operations that are explicitly allowed by granting him a privilege.

The privilege that allows read-only access to projects and all data within projects is called view projects, sprints and tasks. This is what is granted for all users with the new "Guest" role.

"User" role grants privileges to create, update or delete sprints, tasks, tags, comments and attachments. "Admin" role additionally grants update org privilege to change organization settings. Privileges to create, update or delete users and repositories are also granted by the "Admin" role.

You can review the permission-to-role mapping in administrative interface under "Edit Organization" => "Roles". As before, roles (including "Guest" now) are assigned with the user management interface under "Edit Organization" => "Users".

We'd love get your feedback on how well Guest role works and how we can further improve the role-based access control. We anticipate that you may wish to customize predefined roles or create your own ones. This is surely coming in the feature and will be announced separately.

February 16, 2009

New Feature: Priority and Severity

We're pleased to announce that it is now possible to set priority and severity for tasks. This was the long awaited feature commonly requested by our users. As you may have noted, priority column already appeared in the task and issue lists. It's also there in the task details page.

Severity is not automatically enabled because it will mostly be useful for those people who use Acunote as a bugtracker or who used bugtrackers a lot in the past. Should you decide that you need severity, you can turn it on (and off) in the "Organization Settings" page (only organization administrators can do that). From that page you can also disable (or reenable) priority if you choose to avoid using it.

You might wonder what you can do with these new fields. Right now we have 4 levels of priority and severity from P1 to P4 and from S1 to S4. There's also special P0 priority intended to be used for emergency/very urgent tasks. Severities follow priorities in numbering for a reason. This covers the usecase when severity is set by a developer (or reporter) and priority is set by a manager when he prioritizes the tasks in the sprint. In the future you'll be able to increase the number of priorities/severities and define your own, but at this moment it's not allowed.

Apart from additional columns, Acunote UI also lets you filter by priority and severity in the tasklist and search both from Search input box and from Issues page. Search language accepts commands like priority: P1 and severity: S1. There's also special search syntax priority: none and severity: none to search for tasks without any priority and severity set.

We hope you will enjoy this new feature and would like to remind that this is only a start. We'll come up with more functionality around priorities and severities in the future, and for that we'd like to hear from you how you'd use priorities and severities and what are your use cases for them.

November 17, 2008

New Task Status - Will Not Do

When you work on your tasks, it sometimes happens that you don't have to do any work to close the task. Your task may be a duplicate of another task or it may happen that the required work has been already done. If the task is added to fix a bug in the system, you may be unable to reproduce that bug or you may conclude that the bug is not fixable.

In all those cases the task requires no work and needs to be closed as such. Previously you'd have to clear the task estimate and change status to Completed. Starting from today, there's a dedicated "Will Not Do" status in Acunote to represent all the usecases described above.

When you mark the task as "Will Not Do", Acunote treats it as the task without any work to do. Burndown and Prediction are not affected by "Will Not Do" tasks at all (so you don't have to clear the estimate). The amount of "will not do" work is only shown in progress reports and task status bar charts. Of course, there's a filtering for such tasks and there's a new "status: Will\ Not\ Do" task/issue search language operator available.

October 23, 2008

New Feature: News Feed

New Feature: News Feed

Today we are pleased to announce the new feature -- News Feed. It allows you to keep track of and get notified about the most important events in Acunote via an RSS feed, email, or both. You can configure News Feed and choose what type of events to monitor and how to get notified.

Old Way of Getting Notifications

Previously, the only option to receive the list of recent changes was to turn on the project-wide email notifications. With that option turned on, all users assigned to projects received emails for every single change to the project, its sprints and tasks. That wasn't a very flexible solution so we worked hard to improve it and came up with a News Feed.

What is News Feed?

News Feed is simply the list of new changes in Acunote that are important for you. You have four ways to control which changes are important and which are not.

1. You can watch the whole project keep track of sprints and tasks. By default you will be notified about major task events (creations, deletions, completions) and other changes in sprints and the project itself. Additionally you can choose to get minor task events as well (use the News Feed settings interface available under "Edit Profile" => "News Feed" tab).

When you watch the project and have all three notification options (major task events, minor task events and other events) turned on, your News Feed will work in the same way as the project-wide "Email Notifications" settings worked before.

2. You can watch individual tasks and get notified about any modifications, comments and attachments. Just like for projects, it's also possible to fine-tune the notifications you get in the News Feed by including or excluding major and minor task events.

3. You can control which events you receive for tasks you created. By default you will receive all notifications about changes in tasks that you created, and the News Feed settings interface makes it possible to change this.

4. You can control which events you receive for tasks you own. By default you will receive all notifications about changes in tasks that you own, and once again the News Feed settings interface makes it possible to change this.

News Feed Settings

Email or RSS?

By default only RSS is turned on for the News Feed. Should you want to get emails as well, turn on the "Email" checkbox in the News Feed settings form as seen in the screenshot above. It's your choice. Since you may not want to get email notification for chances you make yourself, you can disable this using "Suppress emails for changes made by me" checkbox in the News Feed settings.

As an additional usability enhancement Acunote's notifications emails are setup so your email client will group messages for each task into a single thread.

How Do I Control Who Gets Notified?

Users can normally only add (or remove) themselves to the Project Watch Lists and Task Watch Lists. The corresponding "Watch" and "Stop Watching" links will be available in the 'Sprints' page for the Project Watch List and in the 'Task Details' page for the Task Watch List:

Project Watch List

Task Watch List

Organization administrators can add or remove any user from watch lists on those pages and on 'Project Settings' page as well:

Project Watch List

What Happened To The Old Settings?

Old settings were transparently migrated. For projects with email notifications turned on, we added all assigned users added to the project watch list. We also enabled 'Email' option for those users. These users will receive fewer email notification than before since minor task changes are now excluded. To exactly replicate the old notifications behavior users should turn minor task change notification back on for watched project on their News Feed settings page.

Your Feedback

We'd love get your feedback on how News Feed is working for you, and how we can make it better.

August 19, 2008

Announcing Alpha Version of Issue Tracking in Acunote

Today we are introducing a preview of a new feature in Acunote - issue tracking. The functionality is not yet complete, but we making it available as an alpha release to get your impressions and suggestions as early as possible.

What is Issue Tracking in Acunote?

An issue in a bugtracker is a piece of work that needs to be resolved. Bug trackers let you capture all the artifacts related to this work, track and manage state transitions, query and analyze all past and future work. As an advanced project management tool, Acunote could do much of this already. It just lacked functionality to support issuetracker view onto the data that was already in the system.

Project management is about planning and tracking work. Within this world-view, it makes sense to treat sprints/iterations/project plans as a top-level object, and view individual units of work (tasks) within this context. Issue tracking views individual units of work (bugs/issues/tasks) as top-level objects, and lets you work with them with no regard for scheduling. Rather than relying on predetermined iterations for lists of issues, issue tracker lets you dynamically query for relevant subsets of issues.

No matter how you track it, the work that needs to be done does not change. You want to be able to keep track of everything associated with this work, as the issue tracker lets you, and you want to be able to schedule this work, as project management software lets you. Acunote now supports both approaches, with a no-compromises implementation on which we insist.

Much of the hard work was already done for multi-sprint tasks which made tasks into first class entities, and added explicit task numbers. Issue tracking now lets you treat these first class tasks as issues, query them, and create issues without having to assign them to sprints. The datamodel lets us keep the system remains DRY, with one task/issue for each unit of work. In addition task/issue details view has been enhanced, and supports all the operations previously only possible from the task list view in a sprint.

The system is notable for what it lacks -- restrictions and fuss. You can schedule an issue to one sprint, to multiple sprints or to no sprints at all. Each sprint can have it's own hierarchy, and you can evolve the hierarchies in agile fashion without losing past data. You can create issues/tasks from the project management side (nothing has changed there), and they will now also be accessible through issue tracking interface. You can create issues/tasks from the Issue page, and later assign them to sprints. You can update tasks/issue from sprint, issue list, and task/issue details page with a consistent interface.

A small note on terms. We use words "task" and "issue" interchangeably, e.g. "task 1234" means the same thing as "issue 1234", because they are the same thing. We tend to prefer "task" in the context of project management, and "issue" in the context of issue tracking.

What Functionality is New?

  • new Issues tab
  • issues list with pagination, in-place editing and keyboard shortcuts
  • issues filtering with a custom search language
  • task details page enhancements
  • soft-deletion of issues

We added Issues tab which shows all tasks in Acunote as issues and provides the usual bugtracker-like management interface for them.

Issues

Creation and modification is the same good old in-place creation and modification you know from the task list. There's an interface to tag/untag issues, and a new interface to assign selected issues to sprints.

You can filter issues using a powerful search/filtering language. For example, to search for unresolved issues created by user Joe and owned by user Kate which have word "screenshot" somewhere in description you'd search for:

screenshot status: "Not Started" OR status: "In Progress" creator: Joe owner: Kate

If you ever used advanced search features of Google Search or Gmail you'll notice the similarity. It's essentially the same language extended with Acunote-specific operators. We added a search and filtering language help section describing this in detail. You'll find a link to the help section near the search box on Issues page.

As mentioned above, issue details view has been enhanced, and supports in-place issue editing, tag operations, sprint assignment operations previously only possible from the task list view in a sprint. This was a common enhancement request, and we are happy to deliver.

Future work

While immediately useful, the issue tracking functionality is still in "alpha." We advise not to rely on it for everyday use just yet. We kindly ask you to give it a try and tell us what you think. User feedback is essential to us, so we are making this available as early as possible to get it. We are continuing to extend issue tracking, and will be deploying new functionality as it becomes available.

June 24, 2008

Usability Enhancements

Two little improvements to make your Acunote life easier:

  1. First one is for those of you who use full power of the Acunote's keyboard shortcuts. We have added two new shortcuts for task selection: * then a - select all tasks, * then n - deselect all tasks

  2. The next one is multiple selection with shift+click. I hope this one will make task organizing much easier. Enjoy

Shift_click_2

June 13, 2008

Import/Export CSV Format Changes

We have changed our import/export CSV file format a bit to include task numbers in it. As we mentioned in the previous post, tasks now have numbers' which are unique for the organization and much more convenient to use than task id.

Therefore, in the new CSV format the last column has been changed from Id to Number. Both export and import features now accept numbers there. Task import still supports Id's (when explicitly set in the CSV header row) for backward compatibility.

May 19, 2008

Multi-sprint Tasks, True Task Identity, Explicit Task Numbering

Yesterday we deployed a major release of Acunote and we'd like to tell you more about it.

We usually deploy new code with feature enhancements and bugfixes couple of times a week. Hosted software model and good development practices give us this luxury, and let us rapidly evolve the application based on user feedback. We take great care to make the experience completely transparent to the users, by preserving backwards compatibility, evolving UI very slowly and even preserving active logins/session during most upgrades.

This release is different. Once again, we worked hard to do what our users need. We tried and mostly succeeded in minimizing UI changes, but underneath that we've changed the entire task management model behind Acunote to make all the things you've asked for possible.

Old Task Model

In the old Acunote the task could only belong to one sprint at a time. If your task wasn't finished in by the end of the sprint, you would copy it to the next sprint to continue there. "Finish Spring" feature used exactly this approach - it took all not-completed tasks from the old sprint and copied them into the new sprint. Upon copying the new task was created in the new sprint duplicating the description and status and adjusting estimate to reflect the work left to do.

That model had its limitations. First, Acunote had no way to know that the new task in the new sprint is actually the old task from the old sprint but just continued in the new sprint. That made per-project reporting and data aggregation problematic because there was no good way to display combined data for the two, essentially the same, tasks. Changes to the original task description, tags, comments, attachments weren't propagated to the copied task and vice versa.

Another limitation was the behavior of tasks in Backlog. Common usecase (especially for people using Agile methodologies) is to create the task in Backlog representing the user story, then break the work into smaller subtasks and split that work between sprints. Acunote allowed you to copy this user story task from the Backlog into individual sprints and add subtasks with concrete work in each of the sprints. But there was no way to gather that information back from all those sprints and display the overall progress of the user story.

And finally, the old model prevented us from ever showing task numbers. The two tasks in our examples, one copied from another, are conceptually the same, hence they should have the same number, and that was not possible before.

Multi-sprint Tasks

New task model allows tasks to span multiple sprints. This is especially useful for parent tasks representing long projects/user stories, with children in multiple sprints. Another common use would be concrete tasks which take more than one sprint to complete.

As usual Acunote allows the user freedom to setup his project as he sees fit: each sprint can have its own hierarchy, concrete task can evolve and become parent, you can schedule sprints as you see fit including overlapping and parallel sprints, etc. The restrictions should come from good development/project management principles, not from the tool.

Existing UI has been extended to take advantage of this. Now, when you copy task you don't copy any task information. Instead copying task to another sprint will just assign the task to the new sprint, in addition to any sprints it was already in. "Finish Sprint" works the same way.

Existing data in all organizations was migrated to take advantage of this functionality. The code looked for "Copy" events and combined source and target tasks provided it was safe, i.e. the user did not change description after copying. Estimate/remaining, tags, comments, attachments, etc. were similarly combined. This was the most complex migration we ever had and (fully automated) it took hours to run over all the organizations in Acunote. That was the reason we had to schedule downtime for this upgrade.

True Task Identity

Task is a fundamental real-life concept, and project management system should reflect this. New Acunote datamodel allows us to view task (user story/task/unit of work) as a first class entity, not just as a part of a sprint (certain timeframe).

So now, task has its own history of estimates, remainings, owners, statuses, etc. It maintains single description, set of comments, attachments, history events, etc. This way both the sprint task list and the task details views make sense, and present appropriate information. There is no longer a compromise necessary to support sprints/time-boxing.

Since task becomes a first class concept, we can assign it an identity in the form of explicit task number. This number is persistent, and can be used to refer to the task. This was the most commonly requested feature for Acunote.

The Future

So far we've barely scratched the surface of functionality made possible by the new data model. Now that it has been deployed, we'll be going to back to our usual user feedback-driven incremental development. First, there are also some rough corners left to smooth after this major change, and that's the first priority for us. Beyond that, the new data model allows incredible flexibility and power to represent real-life projects, and to provide visibility into them at any desired level. We have a lot of exciting features being baked to take advantage of this. We don't talk about vaporware, so we'll let the development speak for itself.

Known Issues

  • Help -- we'll updating it and will cover the underlying task representation, task operations and examples of use in more depth.

  • Performance -- some operations became slower. We are aware of this, and are actively working to restore the performance. We made good progress on it today (Monday) and have already deployed the results. We'll keep you updated on this very important point.

  • Edge cases around multi-sprint functionality -- we know about some some edge cases where new functionality can display puzzling results. For these, we are working on better way present this data. If you find anything that surprises you, just send us a feedback and we'll take a look.

  • You can no longer edit task from the task details page. This will be fixed.

May 16, 2008

Scheduled Downtime

We expect 4 hours scheduled downtime this Sunday, May 18th, for a deployment of a new Acunote release. The operation will run from 1am until 5am PDT. More on changes in the release in the next blog post.

May 03, 2008

Scheduled Downtime

We expect some scheduled downtime tonight for an upgrade to the network switching infrastructure and load balancers. Switches will be upgraded May 3rd 10pm-11pm PDT, and load balancer May 4th 1am-2am PDT. You can follow the progress on http://engineyard.wordpress.com

Product Newsletter

  • Nimble Method
    Acunote developers blog: Rails tricks, tips, performance patches and much more.