Showing posts with label tree of tasks. Show all posts
Showing posts with label tree of tasks. Show all posts

Thursday, June 20, 2013

Work breakdown structure and project management tools

Project management or online collaboration?

According to some estimates income from sales of tools of project management will grow up to $730 million in 2016. Such interest to applications for running everyday business activity has a solid base of advantages. Forrester Research says that profits from implementation of digital command centers is highly notable, for example, losses from downtime in activity of a staff can be reduced on a quarter, not mention to reduced failures of a project or cost overruns. 
Rapid growth of demand on these profitable solutions provoked equal increase of mutual offer. It is so significant, that one can hardly work through the market of such services. Currently more than a hundred of them already exist, and many tools are in development. Nevertheless, despite such selection many of these services copy each other reiterating the same conception - a bug tracker. This trend became very popular from launching of Basecamp by 37Signals in 2004, and other tools were soon to follow: cute RememberTheMilk, complex JIRA, Assembla for optimizing development process, and so on. These services, of course, have predecessors (GNATS, for example) but their principal advantages over earlier tools were usable interfaces and comfortable use cases.
Such tools became very popular not only in developer communities, which applied them according to their primary bug-tracking function, project managers also appreciated them as a task distributing tools and started to apply them too. But initial optimism disappeared soon - it turned out, that such tools cannot handle complex and lasting projects to run. The most annoying problem relates to storing information in these services: Basecamp, RememberTheMilk, other similar products supported only flat to-do lists, unfit for creating work breakdown structure according to PMBOK
Absense of relationships between issues is the point of weak for plain to-do lists, and makes running of complex project a difficult task. Long term planning and expanded activities are impossible without deep decomposition of issues - WBS allow managers keep their projects from overriding costs and deadlines by making them controllable. Even if you apply agile approach in your work process (for example, SCRUM), decomposition is always helpful and effective.
Tool, which isn't applicable for creating work breakdown structure isn't a tool of project management, it's rather an online collaboration service, and this very feature tells simple products like Basecamp, Trello or RemeberTheMilk from full-fledged systems for serious business: desktop old-fashioned MS Project and Oracle Primavera or modern askcow, FogBugz or Wrike web services.

Why to-do lists everywhere.

The number of simple tools without support of work breakdown structure is huge in contrast to full-fledged services of project management capable to store the information about a project inside a tree of issues. In addition, such products often are more expensive, and sometimes the price on these solutions can exceed a thousand of dollars. The situation is easily explained. 
Tree of unlimited depth, especially for web services, is much difficult in implementation than plain to-do lists, and sometimes developers fail or refuse elaborating full-fledged tree for the application. Not so many engineers capable to make expanded tree works fast, especially in web services, and sometimes developers just put aside full-fledged implementation of this feature. LiquidPlanner, for example, seemingly supports a tree, but at closer examination only few levels of hierarchy for storing tasks are available, what makes deep decomposition impossible.
LiquidPlanner isn't a single service with simplified WBS capabilities. Another is Asana, which suffer from absence of clearly visible structure of a project. Deep decomposition of tasks is possible in this service, but an interface doesn't display complete framework of a project - only few separated hierarchical levels of tasks are accessible at the same time. Engineers did their job well, but UX designers were not, despite colossal investments in developing Asana.
Heavy expenses on labor of engineers and designers ruined many undertakings, or at least raised prices on final products too high. Of course, these risks are obvious for those who develop tools of project management. Nobody wants to fail, and sometimes it's better to make a simpler service, than not to make it at all. That's why the number of tools, which go without WBS functionality, is much greater than of full-fledged project management services.

Difference between online collaboration and project management tools is also become apparent in price, which can exceed $1000 for downloading a software package. Of course, not all services with WBS support are so expensive, and there are some exceptions from this rule, askcow, for example.
To-do lists are simple and cheap, but they cannot handle complex structure, and if you're looking for project management software, seek for a tree.

Tags vs. tree.

But some people suppose that there is a solution, which can create a structure for information without applying a tree of issues. The story now is about tags, and usually people work with them in the following way.
According to this approach, a project is being run into a single list of issues without relations between them. Similar tasks are marked up with a same tag.  When user wants to see similar tasks, he searches through his project by using a corresponding tag, and then deal with a short listing of search query. In addition, some tools, JIRA, for example, allow saving search criteria as a bookmark, so, practically, your information is accessible in one click only.
This approach has many advantages, but often only simple executors take use of this feature. Managers responsible for entire project face important difficulties, because tags don't display the structure, and this problem slows down the work and its efficiency. Of course, you can describe in tags relationships between issues, a name of parent or descendant task, for example, but it's painful. In addition, you have to constantly refer to list of your project tags, and this contributes to discomfort.
Certainly, there are other ways to get to framework of a project, but they are even more confusing. Anyway, I doubt that tags are indispensable. Indeed, why do project management tools need them, when there is search functionality? In askcow, for example, which fully supports tree of issues, you can find all tasks containing a keyword and save the search as a bookmark, like traditional tools without WBS capabilities do. Tags are useful for making results of search query uniform, but they cannot substitute tree in creating project framework.
This piece of functionality become very popular nowadays, you can meet tags everywhere, but tools of project management are unlikely need them. Usual search does the same.

How not to tumble from a high tree.

Conception of tree for storing information about project's framework along benefits has some disadvantages.
Sometimes it isn't so convenient to deal with for simple employees, who often get confused by large number of tasks inside entire project, especially when some of them lie deep inside the framework. The solution for this problem is to restrict users from accessing tree branches, which don't interfere with their job. By adding somebody to a project, just set him narrow zone of access consisting from few tree branches related to his activity. In addition, tree doesn't exclude usual flat lists, and almost all project management services support them. By a click you can transform your project framework into a to-do list for employees, and of course, decent tools provide such ways of running a project.
Another important problem for tree relates to task management. It is not enough to place task inside a tree once, user should have a possibilty to change issue's place at any moment. Not all tools support moving an issue from one tree branch to another (Asana), in addition some of them don't keep track of issues, which have been moved, so they can be lost.
The first problem is critical. Of course, when you select wrong branch for newly created issue, you can send it to litter and arrange a new task in correct place - you'll lose only seconds. But if your task is mature, has many comments and attached files, impossibility to change the parent of this issue becomes painful. You have to create a new task instead of just moving it, and this is highly annoying UX scenario.
The second problem, inability to trace an issue position when it changes, isn't so disturbing. You always can use search for finding missed task, but if someone dropped it into other tree branch by mistake, it's hard to know about it. And here I want to make a small remark related to drag-and-drop, which often is responsible for occasional disappearing of issues. Many tools apply this conception for carrying tasks from one place to another, but just mentioned problem keeps me from unquestioning approve of this feature.
Tree can also have other weak spots, which can make work with it uncomfortable. Some tools, for example, don't allow concentrating on a single tree branch by applying adjustable filters. In others, tree works very slow and it hurts efficiency a lot. But such problems aren't so important, project can go with them, whereas lack of possibility to move tasks between branches and switch to plain to-do list from a tree view are highly important.
Tree is a must for tools of project management; it also has to be elaborated well and shouldn't substitute traditional flat lists.

WBS approach and serious business.

Running a medium or large project without work breakdown structure is impossible nowadays. Deep decomposition allows managing costs and resource both in time and space, so corresponding tools will always be in demand. One of the largest and most expensive engineering and scientific projects, International Linear Collider is run according to WBS methodology, and this is a clear illustration of efficiency of discussed approach to planning.
If you didn't yet choose a tool for starting new project or running a business, don't forget about frameworks and WBS, because it definitely save your money by making a collaboration of your staff manageable and focused. If you already work with a tool, which isn't capable to represent hierarchical organization of your activity, I strongly recommend you to find more comfortable services as soon as possible - tree awaits.

Wednesday, May 29, 2013

Asana - what has been forgotten to implement for $40 million

Who stay behind?

It's always interesting to discuss about products, which have all the luck of popularity among users and trust from investors - this clearly says about the quality. Undoubtedly, Asana online collaboration service belongs to the cohort of such high-end applications. It was launched in 2011 as a startup by Dustin Moskovitz and Justin Rosenstein, who were involved in Facebook development process. Most likely, this very fact allowed attracting $38 million funding into their online collaboration brainchild.
The last of round of this investment has been closed less than year ago, and now the audience of yogis of project managers exceeds tens of thousands. Such popularity, for sure, is interfering with the way Asana is being promoted - free accounts are granted to small teams and individuals for the expectation that some of them will grow sometimes. And sure, these companies would unlikely change the tool they got accustomed to, filled with data, necessary for the work. These expectations, nevertheless, are too bright, and below we’ll see, what’s wrong with them.
As for popularity of this service, it is driven not only by serious spending on acquisition of users. Asana also has a solid engineering basis. The product was built on javascript, and this technology makes online collaboration fully interactive. Updates in tasks and lists are visible without reloading a browser page, so you haven't to constantly push F5 button, in order to see what's new. Former Facebook developers, for sure, know much about technology and its role in surpassing competitors.

Asana's basics.

If you're enough experienced and clearly imagine, how to work with Asana, please, pass through this part of article - you unlikely find it interesting. But if you haven't yet worked with this tool of online collaboration, I recommend you to read it, in order to get the point. 
Online collaboration inside Asana is building up around projects, with tasks stored inside them. Tasks, in their turn, can be broken down into subtasks, when decomposition of complex issue is needed.
For example, if you want to develop a web-site about astronomy, you should create a new project in Asana, called "All about Solar System" along with list of following tasks - "Think up domain name", "Find a server", "Install Wordpress" and "Prepare content".
Then you have to assign your teammates in order to start the work - carry on conversations, attach files and so on.
Sometimes issues are too complicated to resolve them in one go. For example, if you want to carefully choose a server for astronomy site (because you expect heavy traffic load) you should create into "Find a server" issue few additional subtasks: "Hosting with the best uptime" and "Select panel for administrator". In Asana you can create subtasks in a subtask, so tree-like structure of data for this service is available.
But let's return to the question, how tasks are processed in Asana. When you create an issue for you collaborator, he (or she) has to clearly state, when the work will be done - today, later, or even postpone this task. In order to make your colleague haste, setting a deadline is possible.
This way of working is clear, understandable and creates a nice impression, especially on non-engineers. Sure, somebody can say, that use cases aren't as clear as in RememberTheMilk, but I don't suppose it is a problem. Every tool has to be mastered.

Structure has to be visible!

Sure, along with numerous good points Asana has some disadvantages, and some of them are important.
The first problem relates to invisibility of issues' structure and it doesn't allow running really complex projects, with a deep and entangled inner organisation. Flat lists of tasks cannot crystallize information by giving it a structure, and this, in addition, seriously damage the productivity of work, especially of managers. Why does it happen?
Asana, like any powerful tool for online collaboration, supports deep decomposition of extended issues. You can create subtasks inside a task, and divide newly created items further.
Let's remember about our astronomy web-site and about "Prepare content" task inside this project. In order to deal with the issue you should create subtasks called "Mercury", "Venus", "Earth", etc. If you want to elaborate additional popups describing planets' satellites, you have to add new subtasks to "Jupiter" and "Satur" items - their satellites can easily confuse an administrator responsible for the content. We strongly recommend you not to store information about these celestial bodies inside the same list, if you're not an astronomer or an anthropologist familiar with mythology of different cultures.
And here hides a problem, which puts to end the structure in Asana. You cannot look around, taking in all tasks at once, because interface doesn't support tree view for issues. Left part of Asana screen is always occupied by list of projects, central one is for the tasks of first level only and all the rest is pressed into the right block of the service: task with descriptions, its parent and descendants.
The concept of structure of information in Asana is enough underdeveloped to make running a complex project painful.
Carefully elaborated tree of tasks along with a deep decomposition of issues, have to support easy management of tasks' branches. Users should have a possibility to change tree nodes' descendants and parents, see the structure as a scheme, filter task in a tree and so on. Asana doesn't grant you such functionality because its interface strictly divide information between three types of items: projects, task and subtask. You cannot move a bundle of tasks from one tree node to another, with all comments and attached files, like in askcow or Wrike, and this is a problem.
Full-fledged tree tells tools of project management from bug- or issue trackers, and project managers along with software architects become first victims of such flaws.

Flaws in protection.

The safety of information in Asana is another serious problem of the service, and I don't refer to questions interfering with cryptography and data protection. The story is about errors inherited from human nature. In order to get the point, let's begin with a different approaches to security of data.
First approach consists in limitation of access to information and mixed up with numerous privileges. You have to grant them users and workgroups, in hope, that qualified employee doesn't make mistakes related to data management.
This concept has strong advocates and numerous followers, but in my opinion it is insufficient, because all, even the most skilled people, make errors (and sometimes intentionally). The second problem is constant downtime - collaborators often have to wait until an administrator grant them rights of no importance, possibility to edit a comment or to attach a file, for example. Such restrictions sometimes become ridiculous, you know (JIRA users know this problem well).
The second approach to safety consists in "No delete" principle. This concept is very perspective, but only few of tools of project management fully relies on it. The point of this paradigm is that all information inside the project cannot be destroyed - for example, closed tasks are placed inside a special storage, easily accessible for anyone, who want to restore them. Applying of these approach also assumes, that you can switch between different editions of the same item and, of course, such tools should have a powerful activity log. Currently, the best example of such tool of project management is askcow, where this conception is elaborated to perfection.
Third paradigm of ensuring the information is building up on "Undo" functionality. This conception is implemented in Asana, but it's going not so smooth, as expected, and at least few scenarios fraught with loss of data exist.
One of these scenarios relates to editing of tasks. If your colleagues change something in task, its title or description, the information about primary state of item is destroyed. The significance of this problem is complemented with an easiness of task edition, so you can lose important data occasionally due a misclick. In addition, you cannot undo such action.
Another scenario is also dangerous for the information, and it relates to direct erasing of some issues. You can delete a task without possibility of restoring it. Asana, of course, will offer you to "Undo" such action in corresponding popup, but as soon as you close it, your information is lost, if your e-mail notifications are switched off.
There is at least one case, when you can lose important project, but I offer you to find it by yourself. I'll only say, that it to deleting a project scenario.
Transparency of changes also contributes to unreliable protection of data. Asana activity log behaves strange sometimes and doesn't show complete picture of the situation. Certainly, it has been done deliberately, in order to get users rid of informational noise, generated by collaborators and their activity. This problem can be resolved by applying filters to activity log, but Asana does not.
Poorly elaborated conception of safety of information is the second problem of this online collaboration tool.

Complex project management in Asana: possible or not?

Absence of visualisation of the structure of projects, breaches in scenarios of deleting the information, lack of full-fledged activity log, all these are not critical while you're working on small projects with teams, you’re confident in. And here Asana does its best - the system is simple enough to get accustomed to work with. But, as soon as your projects start to require careful planning, issues start to need deep decomposition, and number of involved collaborator becomes significant, Asana stops fulfilling the purpose of a tool for online collaboration. It stops saving time. Management of long lists of numerous untraceable tasks, which have no clear relations between each other, is a thankless affair.
In addition you have to worry about safety of information related to your projects. Errors interfering with editing descriptions of tasks are usual in Asana. Moreover, someone can damage your information deliberately, and this is a serious problem too.
Anyway, Asana is a high-quality product built on a solid tech foundation, and the popularity of this service is a reliable evidence. But declared adaptability to complex projects is rather a marketing move, than reality. You can hardly tell Asana from RememberTheMilk or Basecamp – their functionality and facility are almost identical, except of possibility to divide subtasks, but this tool is definitely insufficient for full-fledged project management.
I recommend you to register an Asana account, it's free. This tool for online collaboration is worth trying it, and if the project you're running is enough simple, you'll probably find Asana fit.  
Яндекс.Метрика