CSC/ECE 517 Fall 2012/ch2a 2w7 ma: Difference between revisions
(→Agilo) |
|||
Line 27: | Line 27: | ||
* View various reports and charts like the scrum burn down chart, | * View various reports and charts like the scrum burn down chart, | ||
* Improve communication between distributed teams stakeholders - The lack of face to face conversations make distributed environments prone to miscommunication, which in turn leads to all sorts of problems in managing the project. | * Improve communication between distributed teams stakeholders - The lack of face to face conversations make distributed environments prone to miscommunication, which in turn leads to all sorts of problems in managing the project. | ||
** The Four Primary Factors | |||
* Improved visibility - | |||
Agile requires transparency to succeed. Can everyone who needs to know about the project from the developers to the stakeholders and maybe even the customer be able to use the tool? There is no point using a tool if only a ScrumMaster or a few people can use it and everyone else has to rely on email. | |||
Does the tool improve communication? | |||
For example: Do team members start “reporting” status to the scrummaster so that the tool can be updated with their status. This is a common dysfunction that can occur with a tool and can reduce communication – ultimately leading to project failure. | |||
Tools can be used to open up channels of communication. For example, allowing a developer to comment on a user story and have a remote customer reply back – setting up direct communication between developer and customer and bypassing all the bureaucracy in the middle. | |||
Does the tool reinforce trust? | |||
Example: A team member forgot to update the estimate for friday. He remembers on monday. Can you set the estimate for friday on monday? | |||
In a “high trust” tool like pen & paper: you can just pick up a pen and redraw the burndown. In a “low trust” tool, you cannot do this because it is considered as meddling with the past recorded history of actions. | |||
Does the tool adapt to the way you work? | |||
Each team is going to use the tool differently. Some tools adapt to the way you work, other tools force you to work the way the tool is setup. Because of the self-managed nature of agile, it is important that the tool support the team, and the team should not have to change their working to fit the tool. | |||
For example, a tool may enforce a particular workflow, which may not be the way the team works. | |||
Secondary Factors | |||
Standalone, monolithic or integrated? | |||
Standalone tools do only agile project management. You can create users, stories, iterations and tasks and generate some reports like burndown or velocity. Basic, but useful when you want something simple. | |||
Integrated tools do only project management, but they can integrate with external tools, like other bug tracking tools, source control, wikis and so on. For example, you will be able to synchronize bugs from the bug tracker to the PM tool, or link tasks in the tool with code commits and so on. They can provide an overview across multiple tools in use. | |||
Monolithic tools support the entire lifecycle like document management, bug tracking, artifact management over and above standard PM functionality all within a single tool. | |||
Advantages of monolithic are that all components are tightly integrated. Disadvantage is that you have to discard all your existing tools to move to a monolithic one. Also if the monolithic tool does not support a particular component (like continuous integration or code analysis) you may still have to use multiple tools. | |||
Usability | |||
How usable is the tool? When you have poor usability, people may resent working with the tool and might start working around the tool instead. Tools with poor usability may also call for additional unplanned expenditure in training and support. You also have issues of general resentment by the team at whoever foisted the tool upon them. | |||
Pricing model | |||
Is the tool open source, free or commercial? For commercial tools, it the pricing per-user or per-project? Subscription or one-time payment? What is your risk exposure should the team size or number of projects increase? What is the total cost of ownership, including training, support, customizations etc. How does it fit your budget? | |||
== Best practices <ref name = best_practices />== | == Best practices <ref name = best_practices />== |
Revision as of 02:16, 27 October 2012
Scrum Tools - This page gives survey of the tools that can be used for practicing scrum. While writing the survey, it considers the features offered by each of them, the scenarios in which each of them can be used considering what features it has and what features it lacks, cost involved etc. Give suitable examples wherever necessary.
Overview
Scrum
Scrum is an iterative and incremental agile software development method for managing software projects and product or application development.Scrum focuses on project management institutions where it is difficult to plan ahead. Mechanisms of empirical process control, where feedback loops that constitute the core management technique are used as opposed to traditional command-and-control oriented management.[citation needed] It represents a radically new approach for planning and managing projects, bringing decision-making authority to the level of operation properties and certainties. <ref name = "Scrum" />
Scrum Tools
Scrum can be implemented through a wide range of tools. Many companies use universal tools, such as spreadsheets to build and maintain artifacts such as the sprint backlog. There are also open-source and proprietary packages dedicated to management of products under the Scrum process. Other organizations implement Scrum without the use of any tools, and maintain their artifacts in hard-copy forms such as paper, whiteboards, and sticky notes <ref name = "Scrum" />
Need for scrum tools <ref name = techniques/>
- To manage the product backlog.
- Manage various test, development and documentation tasks.
- View various reports and charts like the scrum burn down chart,
- Improve communication between distributed teams stakeholders - The lack of face to face conversations make distributed environments prone to miscommunication, which in turn leads to all sorts of problems in managing the project.
- The Four Primary Factors
- Improved visibility -
Agile requires transparency to succeed. Can everyone who needs to know about the project from the developers to the stakeholders and maybe even the customer be able to use the tool? There is no point using a tool if only a ScrumMaster or a few people can use it and everyone else has to rely on email.
Does the tool improve communication?
For example: Do team members start “reporting” status to the scrummaster so that the tool can be updated with their status. This is a common dysfunction that can occur with a tool and can reduce communication – ultimately leading to project failure.
Tools can be used to open up channels of communication. For example, allowing a developer to comment on a user story and have a remote customer reply back – setting up direct communication between developer and customer and bypassing all the bureaucracy in the middle.
Does the tool reinforce trust?
Example: A team member forgot to update the estimate for friday. He remembers on monday. Can you set the estimate for friday on monday?
In a “high trust” tool like pen & paper: you can just pick up a pen and redraw the burndown. In a “low trust” tool, you cannot do this because it is considered as meddling with the past recorded history of actions.
Does the tool adapt to the way you work?
Each team is going to use the tool differently. Some tools adapt to the way you work, other tools force you to work the way the tool is setup. Because of the self-managed nature of agile, it is important that the tool support the team, and the team should not have to change their working to fit the tool.
For example, a tool may enforce a particular workflow, which may not be the way the team works.
Secondary Factors
Standalone, monolithic or integrated?
Standalone tools do only agile project management. You can create users, stories, iterations and tasks and generate some reports like burndown or velocity. Basic, but useful when you want something simple.
Integrated tools do only project management, but they can integrate with external tools, like other bug tracking tools, source control, wikis and so on. For example, you will be able to synchronize bugs from the bug tracker to the PM tool, or link tasks in the tool with code commits and so on. They can provide an overview across multiple tools in use.
Monolithic tools support the entire lifecycle like document management, bug tracking, artifact management over and above standard PM functionality all within a single tool.
Advantages of monolithic are that all components are tightly integrated. Disadvantage is that you have to discard all your existing tools to move to a monolithic one. Also if the monolithic tool does not support a particular component (like continuous integration or code analysis) you may still have to use multiple tools.
Usability
How usable is the tool? When you have poor usability, people may resent working with the tool and might start working around the tool instead. Tools with poor usability may also call for additional unplanned expenditure in training and support. You also have issues of general resentment by the team at whoever foisted the tool upon them.
Pricing model
Is the tool open source, free or commercial? For commercial tools, it the pricing per-user or per-project? Subscription or one-time payment? What is your risk exposure should the team size or number of projects increase? What is the total cost of ownership, including training, support, customizations etc. How does it fit your budget?
Best practices <ref name = best_practices />
Advantages <ref name = history_pros_cons/>
Trade-offs for code reuse at various levels of components <ref name=trade_offs/>
Examples of Open Source Scrum tools
The following shows a comparison of some agile project management tools. <ref name = "Examples_of_open_source_scrum_tools" />
Agilefant
URL: http://www.agilefant.org/
Version reviewed: 1.6.2
Technology: Tomcat 5.5, MySQL, Java 1.6
License: MIT
Concepts
Products are the highest level construct, and each deployment may have multiple products. Each product may have one or more projects, which are essentially releases. Each project may have one or more iterations. Each product, project (think "release"), and iteration has its own backlog, which contains stories. Stories can be moved to any other backlog, for example from the product backlog to an iteration backlog. Stories may consist of zero or more tasks. Projects can be prioritized in the Portfolio view.
The tool supports multiple concurrent iterations, which allows larger organizations to use the tool effectively.
Agilefant supports multiple users and users can be grouped into teams. However, it does not support any user roles; a user is a user, with no differences in permissions or access to features. Teams can be assigned to specific iterations.
Version 1.6.2 does not include the concept of higher-level features or epics, although this feature is promised in version 2.0 which is supposed to be released soon. It does support the concept of themes, which are an attribute of stories, and this does provide a simplistic way to associate a group of stories.
Viability, Support & Documentation
The product documentation is adequate but not excellent. The product is intuitive enough that not much user documentation is necessary. The installation documentation is sufficient. Forums and email support appear to be fairly good. Development is active with version 2.0 supposed to be released soon, although no particular date for the release has been published.
Usability
Agilefant is intuitive. We were able to figure out how to use all features without relying on documentation. It lacks “drag and drop” features, but it otherwise makes good use of client-side features that make the user interface more responsive.
Strengths
Rich feature set.
Suitable for larger organizations and projects, except for the lack of “epics” or story hierarchies. (Version 2.0 should fix that shortcoming.)
Reasonably intuitive and easy to use.
Portfolio planning feature.
Timesheet feature.
Weaknesses
Stories can be estimated in hours only, not points.
Stories cannot be ranked absolutely; they can only be prioritized on a scale of 1 to 5.
No “drag and drop” re-ordering of stories.
No “epics” or hierarchy of stories. Note that a story hierarchy is promised for version 2.0.
No “task board” or “whiteboard” view.
No differentiation between user roles.
Overall Rating
Agilefant is a very capable tool with a rich feature set and a few weaknesses. It is better suited for large projects and large organizations than any of the other tools reviewed in this article, but the lack of a hierarchy of story/requirement levels (a.k.a. "epics") is a significant drawback for large projects. The lack of epics or a hierarchy of stories, however, is a big weakness to overcome for large scale projects.
IceScrum
Version reviewed: 2#13
Technology: Java 1.5 with servlet engine (e.g. Tomcat). Bundled with HSQLDB, but can be configured to work with other DBMs such as MySQL.
License: GPL
Concepts
Products (also called projects in some places) are the highest level construct, and each deployment may have multiple products. Each product has a single backlog and a roadmap. A backlog contains features (similar to epics), user stories, defects and technical stories. A roadmap contains multiple releases, each of which has a single release plan. A release plan consists of multiple sprints. Each sprint contains stories, which in turn contain tasks and acceptance tests. Impediments can be tracked for each product.
Unlike Agilefant, IceScrum includes a task board/whiteboard view of the iteration, allowing tasks to be dragged and dropped. It also allows drag and drop ranking of user stories in the backlog. Many options are available only from a right-click context menu, which isn’t obvious at first but is easy to use once you notice it.
IceScrum is the only product reviewed that has a planning poker feature. This feature allows a distributed team to play planning poker for estimating features and user stories.
IceScrum allows only a single release and single sprint to be active at one time (for a particular product), making it unsuitable for larger organizations that need multiple concurrent sprints with multiple teams running in parallel for a single product.
IceScrum users may have any of the Scrum roles (Product Owner, Scrum Master, Team Member, Stakeholder) plus custom roles may be created. It does not allow users to be grouped into teams.
Beyond a burndown chart, IceScrum does not have any reports or reporting API.
Viability, Support & Documentation
The product documentation is adequate but not excellent. The installation guide is written only in French. Forums and email support appear to be fairly good. Development is active.
Usability
Some features are available only from right-click context menus. This is fine once you discover it, but it’s not obvious to new users. It has a relatively rich user interface with drag and drop capability in several places.
Strengths
Rich feature set.
The Sprint Backlog view resembles a physical task board quite effectively.
The Roadmap, Release Plan and Sprint Plan views support multiple levels of planning.
Acceptance tests can be recorded for each story. A BDD-inspired template for acceptance tests is available.
Includes a planning poker feature.
Supports absolute ranking of stories by drag and drop, and estimates in story points.
Weaknesses
The story card layout would make it difficult to rank a large product backlog.
Some features are not intuitive. Drag and drop works in some places but not in others, even though the mouse cursor make it seem that drag and drop should work. The right-click context menu is not obvious, but it's easy to use once you discover it.
IceScrum is not suitable for large projects with multiple teams working on a single product; only a single release and single sprint can be active at one time.
Overall Rating
IceScrum is a very capable tool with a rich feature set and a few weaknesses. Although it supports multiple products (projects), it is suitable only for small projects with a single team working on one sprint at a time per product.
Agilo
URL: http://www.agile42.com/cms/pages/agilo/
Version reviewed: 1.0.2 Pro (demo instance at https://agilo.agile42.com/login with login: demo/demo)
Technology: Python (2.4, 2.5, or 2.6), SQLite (also PostgreSQL or MySQL). Built on Trac 0.11 (open source ticketing system built on Python).
License: Apache License 2.0
Concepts
Each deployment can have multiple milestones (releases). The backlog contains requirements, user stories and tasks. These three item types support a hierarchy by reference: requirements can reference stories, and stories can reference tasks. This hierarchy is difficult to establish and utilize, however. Agilo has a separate backlog for defects, which makes it difficult to prioritize defects relative to user stories. It also has a separate impediment backlog.
Users can be given the roles of Scrum Master, Product Owner, or Team Member. Users may also be grouped into teams.
Agilo includes an excellent and intuitive task board/whiteboard view of the iteration, allowing tasks to be dragged and dropped. This is by far the best feature of the tool; other features are less untuitive. Perhaps Trac users would find it more friendly?
Agilo has a simple dashboard with a sprint burndown chart, a graph of stories and tasks (total, planned, and closed), and allocation of tasks to team members by percent. In addition, it allows custom queries and reports to be created and saved.
Viability, Support & Documentation
The product documentation is adequate but not excellent. The forums are very active and seem to be a good place for support. The Pro version includes professional support for about €8.50 per month.
Usability
I found some of Agilo’s features to be unintuitive and difficult to use, requiring many clicks and pages to accomplish common tasks. The task board/whiteboard feature, however, is excellent and very easy to use.
Strengths
Excellent task board/whiteboard iteration view with drag and drop functionality.
Supports absolute ranking of stories by drag and drop, and estimates in story points.
Good reporting features, including user-customized reports that can be saved.
Weaknesses
Some features are not intuitive. It feels like Trac didn’t support agile concepts very well so they had to be force-fit into Trac’s model.
When creating a task, it can be associated with a sprint, but not with a story.
Many operations require lots of clicks to complete.
Overall Rating
Although the task board/whiteboard view is intuitive and excellent, other features are less intuitive and often not very easy to use. The sprint burndown in the demo instance was flawed, showing 1200 hours when only 37 hours of tasks were planned.
eXplainPMT
URL: http://github.com/explainpmt/explainpmt/tree/master
Version reviewed: No version specified at demo site: http://github.com/explainpmt/explainpmt/tree/master (login: demo/demo)
Technology: Ruby, RDBMS (SQLite, PostgreSQL or MySQL)
License: GPL
Concepts
The highest level construct is the project, and eXplainPMT supports multiple projects. Each project has one or more releases, and iterations. Note that iterations are associated with projects, not with releases. A project has one backlog, and a backlog contains stories. Stories have tasks and acceptance tests, and can be assigned to a release. Stories may also be associated with an initiative, which is somewhat like an epic, except initiatives cannot be ranked or prioritized. Surprisingly, tasks do not have estimated or actual hours; they have only two states: incomplete or complete.
Users in eXplainPMT do not have specific roles; all users are the same. Users may be grouped into teams.
Viability, Support & Documentation
eXplainPMT has no user guide and only a brief README file for an installation guide. It has no forums, nor any email support. It is unclear whether development is still active; the last update was November 2008.
Usability
The user interface is straightforward and intuitive, but some very basic features are lacking. For example, after creating a story in the backlog, it cannot be moved into an iteration. In addition, eXplainPMT does not support drag and drop nor the richer experience of modern browser applications.
Strengths
Intuitive interface.
Supports the definition of acceptance tests for stories.
Weaknesses
Cannot estimate or track task hours!
No task board/whiteboard view.
No iteration burndown chart.
No releases or roadmap.
Development status is unclear; the last update was November 2008.
Support and documentation are almost non-existent.
Not suitable for large projects since it allows only one iteration to be active at a time.
Overall Rating
eXplainPMT is missing many important features, the development status is uncertain, and support and documentation are almost non-existent. It does not support large teams. Agilefant, IceScrum, Agilo and XPlanner are all likely to be better tools for most agile teams.
XPlanner
XPlanner is included in this comparison because at one time it had a large user base and was the primary tool in this category. Although the project is dormant now, it serves as a good baseline for seeing how tools have changed in the past few years.
Version reviewed: 0.7b (beta)
Technology: Java 1.5, Tomcat 5.0 (not 5.5), MySQL
License: LGPL
Concepts
The highest level construct is the project, and XPlanner supports multiple projects. It does not include releases. Each project has one or more iterations. It does not include a product backlog, but a workaround is to create a special iteration to use as a product backlog. Iterations contain stories, and stories contain tasks. Tasks may be of type feature, debt, defect, ftest (functional test), atest (acceptance test), or overhead. Stories are estimated in hours, and tasks are estimated and tracked in hours.
Users in XPlanner can be assigned four permission levels: Viewer (read only), Editor, Admin., or Super Admin. XPlanner does not have a team construct for grouping users.
Viability, Support & Documentation
The last update to XPlanner was in May 2006, so it’s safe to say the project is dormant. The project does have forums for support that contain lots of useful help but they are inactive now; the forum averages two new topics per month with a few replies each. The installation documentation is sufficient although it’s only a README file in the latest version 0.7b. User documentation is minimal, but the tool is intuitive enough that little documentation is necessary.
Usability
XPlanner’s UI is straightforward and intuitive. However, it lacks most of the client-side (AJAX-based) usability features of most modern browser applications.
Strengths
Intuitive interface.
Rich built-in reports and charts.
SOAP API for integration.
Customizable notation for simple URL linking with external systems such as defect tracking.
Weaknesses
No releases or roadmap.
No task board/whiteboard view.
No story points.
No "epics" or hierarchy of stories/features/requirements.
The project is dormant, with the last update in May 2006.
Support is very limited since the project is dormant.
Overall Rating
Despite its shortcomings, XPlanner is still a good tool for small teams. Since the project is dormant and other tools have better features now, we recommend Agilefant, IceScrum or Agilo over XPlanner, but recommend XPlanner over eXPlainPMT for most teams.
Conclusion
See also
References
<references>
<ref name = techniques> http://www.revision-zero.org/reuse</ref> <ref name = Examples_of_open_source_scrum_tools> http://www.openlogic.com/wazi/bid/188152/Comparing-Open-Source-Agile-Project-Management-Tools</ref> <ref name = Scrum> http://en.wikipedia.org/wiki/Scrum_(development)</ref> </references>