Most suitable agile project management tool [closed] - project-management

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I have been working with managing agile teams for quite some time. Now I'm at a company that no matter how hard I push for the fact that face-to-face is the way to go and that excel sheets works to get us going. But the company sees the "burn-down-chart in a webpage" as the main focus. They actually see that and the ability to see and follow the backlog online as the most important thing and we basically can't get going before this is in place. The people involved are actually not that many and they are not spread across multiple offices so I really can't see the need.
But I have decided to stop driving myself crazy about this and just bite the bullet.
So I started looking around and gave Pivotal Tracker, Banana Scrum and a few other a try. A mix of them all would probably be my best fit but given the criteria bellow, which would suite me best? I have searched StackOverflow and read up on a few recommendations before posting, but none of them actually fitted all my needs. The MAIN issue is to give people an indication of the workload and future work-load of the dept, but if we are going to start using a management tool it might as well fill a few other requests.
Ability to run it on an in-house
server (since a lot of the systems it should integrate with are not public on the net)
Ability to integrate it with
Bugzilla, preferably two-way
Ability for external
applications (such as websites) to
fetch data about backlog and
bunrdown-chart
Ability to handle
cross-functional teams (ie we might
only have one person on a team with a
given ability. Before I used to
handle this manually to avoid over allocating this person in a sprint, but if others
are to be able to fiddle with the
backlog this should preferably be
automatically indicated)
Ability to print index cards
Virtual white-board
Ability to set up automatic reports to be mailed
Long term indication coarse-grained (correct name?) estimation of features done and short term fine grained estimation
UPDATE: Open-Source would be preferable. Jira is nice, but licensing is quite expensive
UPDATE 2012-01-03: I would like to tip about Backlogs for Redmine which adds Scrum facilities to Redmine in a acceptable manner.

JIRA with the GreenHopper plug-in provides most of what you want. As you say, it's not free, but the licensing costs are reasonable. Twenty dollars to get started with 10 users is a sweet deal.
I've used GreenHopper for a few years. We tried Excel spreadsheets beforehand; they sucked. The problem requires a database and better visualization.
On request, we printed off JIRA task cards for a physical taskboard for a few months. But that was silly -- DRY. A projector in the standup room is all you need. Optionally, you can filter tasks to focus on those team member in turn.
Ability to run it on an in-house server (since a lot of the systems it should integrate with are not public on the net)
Yes.
Ability to integrate it with Bugzilla, preferably two-way
Last I checked, it could import Bugzilla issues.
Ability for external applications (such as websites) to fetch data about backlog and bunrdown-chart
Jelly scripts and JQL might help here.
Ability to handle cross-functional teams (ie we might only have one person on a team with a given ability. Before I used to handle this manually to avoid over allocating this person in a sprint, but if others are to be able to fiddle with the backlog this should preferably be automaticly indicated)
Not sure what you're looking for here. You can create custom groups of users. In the basic system, the only indication of over-allocation is a user's total number of hours in a sprint.
Ability to print index cards
We did this. There's a "Print Cards" menu item.
Virtual white-board
There's a task board. No arbitrary drawing surface.
Ability to set up automatic reports to be mailed
Yes, with very fine control of who gets sent what in response to what events. There are several mechanisms, configurable by either administrators, project administrators, or users.
Long term indication coarse-grained (correct name?.. hehe) estimation of features done and short term fine grained estimation
There's an hour-based burndown chart for the short-term of the next sprint, and an issue-based burndown for the long-term.

Pivotal Tracker is a great tool. Unfortunately it's now going paid (not free anymore). Other tools that are pretty solid include: Rally, Version One, Jira (with Greenhopper), AgileZen, AgileBuddy, TinyPM, Aldon Agile Manager, Agile Bench, Scrum Desk, Scrum Ninja to name a few.
Agile tools are being built by the boat load. You may never find the "perfect tool." Period.
I do suggest that you start with a whiteboard, tape, and stickies. At the end of the day, wallboards are KING for Agile.

On my last project I used Pivotal Tracker which was very slick, though you have to accept that it's Pivotal's way or the highway :) Although its no longer free, it is cheap. I haven't tried Mingle, though I hear some good things about it if you're willing to put in the configuration effort, similar to Greenhopper, which is what we've just shifted to using internally.
#Jody - I don't find Jira to be overkill for small teams if you configure it minimally. Even so I can sympathise that Jira/Greenhopper don't 'just work' out of the box, and something like Pivotal Tracker or 37signals BaseCamp may be a better fit.

If you are interested in open source tools, I would suggest to look at the Scrum Open Source Tools Directory But if cost is a problem and you don't have many people in your project, a lot of commercial tools like TinyPM offer free version of their tools for small teams (5 persons in their case I believe)

I used 37 signals' basecamp with much success. I combined this with a 3rd party burndown chart - http://www.burndowngraph.com/.
I managed the backlog offline in a spreadsheet or as a single todo list in the project. Though you could use 2 basecamp projects. One for the current sprint, and one for the backlog. Each Story becomes a todo list, and each task is ...well, a todo item. Hour estimations for tasks go at the end of a todo item in the form "1h" or "1d" or whatever.
The sum of all todo's is your sprint backlog & taskboard in one.
For your integration concerns, they have a wonderful API that lets you do just about anything you want.
It won't print index cards, but if you really need them there's always the API.
Automatic reports, hmmm. I don't think so, but if people are genuinely interested, they should check the project page for updates.
Not sure it would help you with the cross functional team thing, but maybe I don't exactly understand the problem there.
I think that covered all your points (not that basecamp can, but it's close)
It really sounds like you are trying to use this tool to appease management, but still do things your way. Whatever tool you pick won't be completely successful until you and the team embrace it as well.
Best of luck. BTW, I find greenhopper and jira to be complete overkill for small teams.

Related

Use bug tracker to get things done and manage personal tasks? [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 9 years ago.
Improve this question
This is slightly off-topic, but can only be answered by programmers and is useful to many programmers:
Do you think it is useful to use a bug tracking system to keep track of personal todo items and to Get Things Done? I have not tried that; in fact, I don't have much experience with bug tracking systems. For my todo lists, I have played around with Google Tasks and Remember The Milk, but both of them have shortcomings:
Google Tasks: I like that you can create todo lists easily, can reorder items in the list and easily create hierarchies. But it is way too simplistic and does not allow to tag tasks or move tasks from one list to another.
Remember The Milk: It is nice and sleek, but you cannot create hierarchies of tasks, cannot arbitrarily reorder tasks and cannot set dependencies of tasks.
That's where a bug tracking system should come in:
Since I think (maybe too much?) like a programmer, my tasks have a natural hierarchy and a tree of dependencies, like in a Makefile. Here are two examples:
The task of writing my thesis is done when several milestones are done. Some of these milestones can run in parallel (writing background chapter, running experiments A, running experiments B), others depend on each other (writing main chapter depends on first getting results from experiments A).
The same is true for more personal goals: I want to host a dinner party, which requires finding a good date, finishing the guest list, making invitations, finding nice recipes, cooking, ...
For me, all these tasks involve hierarchical dependencies and milestones that bug tracking systems should be able to handle?
Here is an article that explains how to do advanced GTD with Remember The Milk, but he has to use several workarounds: (1) add a general tag 'wait' to tasks that are waiting for others to be completed but you cannot enter the IDs of the tasks that they are waiting for, (2) starting some special tasks with "." so that they are at the top of the alphabetically sorted list and signal that others are 'below' it as subgoals. Bug tracking systems should be able to handle these things much more naturally?
Does anyone have experience and can recommend a lightweight bug tracking system that might be good for this? Other requirements: Should run as web app, should allow me to tag a task with several tags (like 'work', 'fun', 'short-task', 'errands', ...).
I have used quite a few bug/issue tracking systems and also task management and project management systems so far for professional purposes. Personally I am big fan of Getting Things Done, time and task management. For Getting Things Done, I also had my time with Google Tasks and Remember The Milk. Although they simply do the work, they have several shortcomings, as you mentioned before.
I have tried several things and within the scope of this question I will try to breakdown my experience with this tools based on your requirement.
Bugzilla
Bugzilla is a mature product which has several features, it is a great bug tracking software. You can easily create a demo instance if you want to give it a try. But based on your requirements, I don't think it is the best fit.
Redmine
I have played with Redmine, it is OK as an issue tracking system but I was not very satisfied with its usage. You can have a look at the demo page.
MantisBT
I also happen to play with MantisBT and in my opinion MantisBT is a barely OK bug tracking system and I don't think it will be the best fit.
Team Foundation Server
I use TFS on a daily basis, but mostly for version control and it is many things besides version control. Work items can be used as bug tracking and it a great tool for team management but it is not lightweight and I also don't think it is the best fit.
Wunderlist
Wunderlist is a great tool for GTD. It is very simple and list based. You can create several lists, you can create reminders etc. For personal use, this is my favorite choice for GTD, up to now. Although pro version has a few more features, it won't solve your problems based on your requirements.
Basecamp
I have used Basecamp, mainly for project management, task and issue management. You can create projects, and create tasks for each project. It is very easy to use and if you want to collaborate it is very easy. But it has its shortcomings.
In my humble opinion conventional issue tracking systems are no good for Getting Things Done. From what I understand, you need a simple yet powerful project management tool. Which brings us to our winner.
Trello
Trello is a web-based project management application developed by Fog Creek Software
Some of the features are:
You can create projects. Projects are shown as lists.
Create tasks. Tasks are shown as cards. You can also assign tasks to
other individuals.
You can move cards easily from one project to another, i.e. from
Doing to Done.
You can use tags, attach files and create checklists and etc.
It is very well explained in this short video : http://www.youtube.com/watch?v=xWiunIolf4s
Also #JoelSpolsky explains it in detail here : http://www.youtube.com/watch?v=aaDf1RqeLfo
In my opinion Trello would cover exactly what you need, most probably even more.
FogBugz is a nice for GTD
I keep my (mostly work-related) GTD tasks in my FogBugz database and am quite happy with it. You can try the hosted version for free:
http://www.fogcreek.com/FogBUGZ/IntrotoOnDemand.html
I'm very happy using https://www.pivotaltracker.com for this purpose. Pivotal tracker is an agile project management tool. It lets you estimate and track the effort (on a scale of 1-5, not real time estimates.) It then lets you track your velocity on each specific project.
Within a project stories can be in different panes such as 'active', 'backlog', 'icebox', etc. It's easy to see at a glance what is in progress and what is coming up. Simply drag and drop to rearrange your queue of stories.
I have a number of projects such as my boat, homestead, etc. Stories can have tags and also subitems.
Pivotal Tracker doesn't have any scheduling or reminders. The idea is that you'll be looking at it daily and reorganizing stories as you go.
It also has an open API and quite a few supporting apps have been built for it. I personally use PivotalBooster on my mac, especially during my internet blackout from 7-9PM daily.
One thing I wish I could do easily is print out the stories for a project. It shouldn't be hard to do with their API, I just haven't taken the initiative.
Before this I tried Trello and found it to be bit more work than Pivotal Tracker. I also spent a fair amount of time with org-mode in emacs, and while it is pretty amazing I found it cumbersome.
I've had alot of success using the Agile Software Project Management Software JIRA. It has user stories, estimation, customizable formats, export to excel, and many other great features. There is a free version, and the commercial version for up to 10 developers is $10 a month. It has many plug ins available including ones that connect to github and svn repositories. You can easily attach images and files to each issue/bug. You can easily use it for new projects as well as bug tracking.
Redmine, pretty awesome, free, opensauce etc.
http://www.redmine.org/
Edit:
There is a fork of Redmine that looks promising, ChiliProject, https://www.chiliproject.org/
Demo is here.
Not sure why they forked Redmine, but i believe they wanted faster release cycles and more open to community changes.
I suggest http://www.abstractspoon.com/tdl_resources.html I have used it for many years and find it quite sufficient for my needs. I believe it also fits what you are looking for.
Look at the comparison of existing issue trackers.
http://en.wikipedia.org/wiki/Comparison_of_issue-tracking_systems
I think you can easy make your choice.
Regards.
I've used dozens of application lifecycle management tools, from basecamp to jira to wunderlist, assemblr and many more, but the one I keep coming back to is the simple issue / milestone managment tool set built into github.
I like github mostly because it's got all the source code version control stuff a project needs, (Git is really nice to use) plus zillions of hooks for notifying other systems upon commits. It's got simple collaboration setup and management, allows you to publish pages to promote and describe your project, allows multiple projects, accounts range from free to cheap to corporate depending on your needs (I've found the cheap option works very well for me as a freelance developer), and the task / issue / milestone management system is simple but excellent. It also throws in a very good wiki system for collaborative documentation, and allows hooks for a range of continuous integration / build and test on commit tools, meaning you can control all aspects of a project lifecycle easily from one dashboard. It's also much more lightweight than many others such as trello which rely on a lot of client-side fancy stuff and often feel sluggish when all you want to do is quickly pop in and tick off a task. There are also good apps for iPhone and Android that interface well with GitHub, meaning you can use it as a mobile task manager with ease.
So, based on the requirements you specified in your question I'd suggest GitHub would satisfy you completely.
Note I am not affiliated with GitHub in any way, this is a recommendation based on my years of actual experience with many such systems.

Managing Project Development for Single Programmer? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 5 years ago.
Improve this question
I am going to be starting a new job in a few weeks where I will be responsible for both the maintenance and development of a couple of existing web applications and the development of new web applications.
As I will be the only developer on the project and the previous developer was more of a hobbyist, no formal project management or planning techniques have been followed. Additionally no bug tracking has been used or if anything has been recorded its just been notes on paper.
I would therefore like to introduce a better system to help resolve some of the issues and help ensure things run more smoothly. I intend to develop using an agile process (likely scrum) and would therefore like to know what all-in-one solutions people could recommend for me to look into further. I am looking for something which will provide at minimum:
Project Planning
Defining new features
Time estimating
Ability to organise tasks by priority
Project Management
Tracking active tasks
Reporting
Bug Tracking
I would also like to let other staff easily submit new bugs in the applications which they find or customers report. Additionally support for them to add new stories / high level tasks would be of use so they can note down other new requirments/features and I can then work with them to outline more detailed tasks and estimates.
So far I have looked at a number of systems including:
FogBugz - Seems great for bug reporting but would need something else for project planning / management
Agile Buddy - This is probably the best solution I have found so far
Trac
Smart Sheets
Pivotal Tracker
However, as I have not actually used any of these systems myself I do not know what ones would be best or whether there is a better solution out there??? So any recommendations you can provide would be much appreciated.
Actually, FogBugz does project management as well. It will even try to learn how accurate time estimates for features are from each user, and give you estimated milestone completion times accordingly, with probabilities of finishing at various dates. I've used it for the bug tracking, and really liked it, but I've also read enough about its project management features to know that it has them, and they're pretty good.
FogBugz feature list
When I was working as a solitary developer, I picked up a copy of Planning Extreme Programming and bought a pack of 3x5 cards and a plastic box for them. I used those in the Planning Game and stuck the ones I was working on on my wall. My boss could walk by and see what I was working on. This worked well and cost little.
We're currently using Zen at work - it's a web-based Kanban board for planning. This is nice when your stakeholders aren't co-located or if priorities/requirements change frequently.
You can enter bugs as user stories with either system, or you could use a separate defect-tracking system.
I'd question if Scrum is suitable for a one-developer shop. It's targeted towards project management. I'd rather not have a stand-up meeting with myself. ;) XP (minus pair programming) works fine for a solitary developer.
For a one-man show, you don't need any tools to speak of.
Tools -- generally -- are for coordination.
If it's just you, what -- precisely -- are you coordinating?
If you want to make things visible, a pair of simple internally-focused web pages built from static content will do.
Bugs.
Burndown for Features.
That's about it. Use the simplest tools you can possibly use. I recommend using docutils to generate the HTML from plain, simple text.
Don't go tool-happy until you have a large enough team that simple text doesn't work any more.

What's most important when you need to establish a software development infrastructure in your company? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
Let's say you work for a huge company which suddenly decides to do custom in-house software development. Additionally, they want to be able to offer successful developments to their customers as well (if any).
Now you are in charge of it.
What would you see as most important to build a successful software development infrastructure?
flexible to future growth
flexible on used technologies (projects with c, java, .net, web, mobile, ...)
What kind of tools (source control, forge, ...), hardware (virtual, seperate dev & production, ..), processes (guidelines, code reviews, ...), etc.
UPDATE: Please don't answer that you need the right people and the right tools. This is exactly what i am looking for.. What are the right tools and what people of what type would you hire first to join your team? Think of it as you will be the lead of that development.
Set yourself up to pass the Joel Test with at least a score of 10.
I think having the right people is going to be the most important. Nothing else will matter if your programmers stink.
Someone in charge who knows what they're doing.
Obviously, there are lots of factors, but here are the ones I'd say are crucial:
Hire smart people (and pay them what they're worth)
Select good tools appropriate for the kind of development (don't go for cheap tools)
Establish version control system and policies
Establish testing mechanisms and policies
Don't be afraid to outsource the stuff you don't know how to do
Get the best people for the job. If they aren't willing to pay for the best available, or give you a hard time over your personnel budget, you're off to a bad start.
Get the right tools for the job... software, hardware, support contracts from your vendors, etc.
Establish procedure early on for your development life cycle, and make sure that you have the people in place to make use of it. This is everything from how you evaluate Opportunity Assessments to Development, Testing, and post-production support. Make sure you have the people and the tools for each part of the life cycle.
Dont try to be flexible in technologies. First start by focusing on one technology (Java, .NET, whatever...) and then move to other if you need to. You will be able to solve problems using any technologies, but it is very hard to find people good in many technologies.
At the infrastructure level, Source Control is a must. Continuous integration is a plus. Take time to put in place a standard project layout that you will be able to evolve. It make it easier for developers to switch projects. Take time to put in place a good build process (Ant, Maven, in the Java world). Integrate your build process with your IDE so that developers dont have to wait 5 minutes to deploy their project every time they want to test a code change.
I agree with Guillaume: If you want to build a department from scratch, you need to focus. You need to build your team, have everybody grow into their new responsibilities, get to know each other etc. Trying to go into too many directions at once is the direction towards failure.
So, identify the technology you want to develop in. Since the primary goal in your example is in-house development, the in-house requirements will determine your decision. Build your team with that primary goal in mind.
For in-house development, you need at least two people who already know the company and its processes. (Two because one will definitely be ill or on holidays when the first major crisis hits you). On the other hand you need some outsiders, who are not entrenched by the "we have always done it like this" mindset, who can think out of the box. Those should also be at least two people, for the reason stated above. Your job as the team leader is to balance those two groups and integrate them into a team.
For future growth, always think in terms of organic growth.
Do not increase the team size by 200 %, hire one new guy here and another guy (or gal) there. Slowly build your team.
When you take on a new project, always think of expanding your teams expertise. Try something new with every project. That can be a new source repository, an automated daily build process, a new system to write specifications or documentation, or even a different technology (for example Java when you usually develop in .Net, Delphi or C++). Just make certain you never try to make a big leap in an important project. (I once worked for a company who decided to switch from VB 6.0 to .Net for the biggest project they had ever attempted before. They survived. Barely.)
That way your department will slowly but constantly expand its capabilities. Then when the opportunity presents itself to do development for an external customer, you will already have accumulated most of the knowledge you need in order to pull it off.
Oh yes, and smacl is right, too: You need solid QA/QM if you want your department to survive long term.
Start laying out (and follwing) your QA rules from day one. Keep them as short and flexible as possible. Add what you discover to be missing, and throw out what proves to be unnecessary or impractical.
Not sure this is what you wanted to know, but I felt the need to say it ;-)
Develop a strong QA strategy, including acceptance criteria and change control. Preferably keeping it lightweight to suit internal clients. In addition understand how to carry out requirements analysis, expectation management, and resource management.
Put another way, don't just wing it to create crappy solutions that waste more time than they save and are impossible to maintain. Take time to think about what you want and need, how you can achieve it, and what it is going to cost.
I will offer an answer more focused specifically on coding and the developers / architects role in addition to the previous answers on teams, version control, qa etc. which are of course all important.
Many of your decision is very dependant on your specific business and software structure (a single product code base, SOA, many projects etc.) But in general you should always spend significant time up front developing Core Software Infrastrcuture that will pay huge dividends during the SDLC.
Software infrastruture
Coding Naming Conventions Exception
Handling strategies Logging
Strategies Settings and Configuration
Base classes and Helper Classes
General Architecture and Layers
(Presentation, Facade, Domain
Entities, Data Stores etc.)
Design Tools such as UML 2.0
Requirements
Management / End user interaction
There are tons more, but these are certainly some basics to think about. All of the successful projects I have been involved with incorporated decent software infrastructure. I will also note that many of the project that fail have a common theme... lack of a common infrastructure in place. In most cases these failed projects are lead by a non-technical person that think they can simply throw a bunch of ideas at a few programmers and expect them to deliver in a few weeks.
Bottom line, you need to invest some up front planning and prototyping to ensure success in the long term!
Good luck.
Raiford
www.blacksaber.com
The first persons you should hire should be experienced senior level professionals. Then build up from them / with their input. Add the junior people later.

How do you manage web developers remotely? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 years ago.
Improve this question
I'm the leader of a small web development team, and I have a feeling that we will have a couple telecommuters joining the team pretty soon (either new employees, or existing employees that will begin telecommuting). Any idea how to effectively manage and collaborate with developers working remotely?
Most of the work we do is client-driven. We're doing agile development (or our version of it, anyway), but since it's mostly client work, we can't really assign a feature to a developer and set them lose for a week or two like we might be able to with a desktop app or something like that. The biggest problem we have when people occasionally work from home is collaborating - it's tough to work together without the benefit of a whiteboard and hand-waving.
It seems like software development is perfect for telecommuting, but I haven't been able to find many good resources about the practical aspects of working remotely within a development team. Has anyone else had any experience with this?
I freelance a lot and in doing so work remotely a lot of the time. These are the things that make my life as easy as possible (so might be things you want to "suggest"). I think they're mostly common-sense, but you never know...
[Everyone] Communicate well. When you're having a conversation face-to-face, you can be verbose and explain things in a round-a-bout way. When you're limited to email, IM and phone, all parties need to explain themselves fully but succinctly. I find that summarising long emails into request/action points goes a long way towards getting things done well.
[Everyone] Have a online project tracking space. Most tend to use a ticket system or some description, where action points can be assigned to members. It wouldn't hurt to use this same space for tracking emails and sharing whiteboard ideas. Most online project apps allow for that by default.
[Management] Don't pester devs. If you need something urgently, set the status of the ticket, give them a call and chase them up later on in the day. Half-hourly emails asking "is it done yet?" does more harm than good!
[Management] Make sure messages get passed along. If a dev says "somebody needs to do something", it's your job to make sure the message is passed along to the right person. There are few things more annoying than passing a message to a project manager for them to accidentally sit on it. I don't want to have to chase up things like that because it's, frankly, not what I'm being paid for.
[Management] Make sure people have something to do. If you send them home with nothing on their task list that they can immediately action, they're not going to put in the effort. It's a damned sight harder to keep yourself productive at home than it is in the office when you've little or nothing that you can do. You might have to juggle tasks if there's a blocker.
I work at home full time. Here are things that help in my small (6 people) team.
Set up rules for using IM. For example, allow remote workers to block off time not to be interrupted by email or IM. Require workers to keep status up-to-date somewhere (IM, Yammer, etc) which helps keep them accountable to stay on task. Stay in touch without being a distraction.
Meet in person occasionally if possible. Nothing can replace a face-to-face meeting. Skype is ok for group meetings, but not if whiteboards are involved.
Use SharedView or another screen sharing program for collaborating. Screenshots/screen captures are helpful as well to make sure both parties are on the same page.
"Any idea how to effectively manage and collaborate with developers working remotely?"
What does "effectively" mean? I can be negative and assume it means "with me, the project leader in control of everything". I can be positive and assume you want people to be as effective as possible.
Sometimes, "effective" is management-speak for "under my control". Or it means "not screwing around."
The question, then is "effectively doing what?" Effectively "working" is rather vague. Hence my leap to the dark side of project management. [Which, I admit, is probably wrong. But without specific team productivity problems, the question has no answer.]
"it's tough to work together without the benefit of a whiteboard and hand-waving" This is only sometimes true, there are lots of replacements. The "hand-waving" over the internet happens more slowly and more thoroughly.
The group-think around the whiteboard is fun -- it's a kind of party. However, for some of us, it's not very productive. I need hours to digest and consider and work out alternatives; I'm actually not effective in the group whiteboard environment.
I find it more effective to use the alternative "slow-motion" whiteboard technologies. I like to see a draft pitch for an idea. Comment on it. Refine it. A lot like a Wiki or Stackoverflow. I really like the internet RFC model -- here's my idea; comment on it. When there are no more improvements, that's as good as it's going to get.
I work in Mississippi and my home office is in Michigan. I spend several hours a day pair programming with my team with ease. The tools I use are:
SharedView
Remote Deskop Assistance
Live Meeting
Oovoo
Skype
Depending on who and how many will depend on the tool I use.
"Use the right tool for the job and invest in a damn good headset." - Me.
I've generally used some time of community based software such as a wiki, blog, or forum to handle the documentation areas. We also have a Cisco phone system and use some capabilities of the system. I'd also recommend live meeting or webex to do frequent team meetings. Skype and IM clients such as Live Messenger are also good tools. For the short status updates, twitter does the trick.
Check out the Agile Scrum methodology with VSTS. Scrum forces us to have daily 15 minutes meeting and small mile stones , It makes sure the effective togetherness and tight communication. Make sure you use Task,Bug assignment etc through VSTS
I agree with John Sheehan's response. I am a consultant and manage other consultants - both on a project basis (as PM) and on a client basis across projects. I have worked with developers on a purely remote basis as well as telecommuting (meaning the majority of time we are co-located). Working remotely is a matter of trust and communication. Co-locating is best, but if you work remotely, simply create a culture of frequent communication. IM and phone are great for this, email less so. If you have a less than communicative co-worker, it is up to you as the manager to reach out. Ask for status. Force code-checkin on a frequent basis for review.
[EDIT] - Yes, don't pester and set expectations! Be clear and concise.
First of all use scrum (daily scrum calls, scrum board w/ burndown chart (wikis do a great job there), iteration in sprints etc). Next to that use tools that make it more easy to collaborate remotely like skype and VNC (maybe campfire?) and a wiki. I worked for 2 years on a project w/ people in 3 countries on 2 continents and various time zones and it worked quite well. The key is having tools and methodologies that make it more difficult for people to "hide", so that everything you and your team does is visible.
I find clear communication and staying on task are challenging with virtual teams. I try to use regular scheduled update meetings (over the phone or video conference) with a written agenda to help with these challenges.
At the front on the agenda list the major milestones and the near term milestones. The first item is always "check progress" each team member simply updates us on when they expect to finish the particular tasks involved. We try not to get involved in long stories here. It's simply "what are you going to do and when".
Once the progress check is done deal with any other issues raised in during the last week and any issues the team has that can be sorted out whilst you are in the meeting. Anything let over (such as new issues raised) needs to have the question asked "who is needs to sort this out and when".
Once you set a common format for the meeting you can do this weekly in 30-45 minutes with teams of 5-8 people. Keep it short and sweet so it isn't viewed as an imposition. Keep it focused on actions and schedule so it can be valuable.
I'm currently the PM of a smaller project that has two developers (myself and another developer that works out of the office). We are currently having daily SCRUM meetings, which last for about 15 minutes. We discuss what got done the previous day, what problems were encountered and what I can do to help with these problems, and what will be done tomorrow.
They're pretty quick and seemed to be very helpful.
Using a Time Tracking Software for your remote employees can greatly help you in managing the team.
While hiring a remote employee, you would be concerned about,
The amount of time spent in getting a task done.
The quality of the work done.
Collaboration based on the progress of the project.
The real time progress on a task.
Collaborating to solve bugs and logical errors.
I was in your situation a while ago and then I tried StaffTimerApp and it helped me in the following ways.
A Time Tracking Software gives crystal clear statistics about the time spent on getting a task done. StaffTimerApp captures screenshots and converts them into billable and non-billable hours. Hence, you would know if any time was wasted while getting the work done. You would also know the exact amount of time spent in getting the work done. If you pay your contractor by the hour, this application can help you tremendously.
If you use a time tracking software that captures screenshots, you can look at them to analyse the quality of work that is being delivered. I used this feature and was able to save some tasks from derailing.
A Time Tracking Software lets the employer know how far along the employee is with the task, hence the information extracted by Time Tracking will make collaboration easier. StaffTimerApp proved to be very helpful as I was able to collaborate with the other employees based on this information.
The screen sharing feature equipped me with the power of viewing my employee's laptop screen in real time. This way I would get to know about the progress on a task.
So you need a good Time Tracking Software with great productivity analytics and employee monitoring capabilities to feel comfortable with hiring a remote developer.

What tools are available for a team leader & members to manage tasks (Agile programming) [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I are working in a small development team of 4 people.
We are trying develop "Agile style" - story points, small tasks, etc...
Unfortunately, we are currently managing our tasks in a (shared) excel table.
We looked at some available tools (Mingle, TFS, Scrum for Team System), but all of these looked like they would be too much overhead and take the fun out of working.
What are you Agile lovers using for tracking your tasks over long period of time?
Update
The current top answer is not really an answer to what I intended to ask - I need some tool to help me find out, over the long run, which features & tasks I estimated correctly, and where did I go horribly wrong. I see how a whiteboard/all of post-its help with managing the current or previous iterations, but I don't see myself searching for a post-it from 2 months ago.
Update Response: It doesn't seem imprortant to track WHAT was underestimated as much as WHY it was underestimated. This is something addressed at the iteration retrospective. If there are impediments, they should be addressed early and resolved. If you're looking to address something more specific than just seeing a task in the past that was undersetimated, you should ask about that.
A whiteboard, index cards and sharpies.
Just use Trac. It has everything you need for a small project. You could use the ticketing system to distribute the tasks (in Agile you should think in terms of stories and not individual tasks anyway) but if it's not enough you could get extra plugins for time management etc.
We're using Xplanner right now, with pretty good results.
Write them out on labels and stick them up on a board - it works :) Also Scrum really does not give you overhead - it works pretty well and is very satisfying for all team members imho :)
Here we use Trac for one project and #Task for another.
At another company, we used Excel sheets with each person's tasks, printed and pinned to the wall.
In general, most forms of actually planning, documenting, and tracking tasks is going to take the fun out of working... But it is completely necessary to stay sane.
I really like JIRA and the GreenHopper plugin looks to add some nice features.
"We looked at some available tools (Mingle, TFS, Scrum for Team System), but all of these looked like they would be too much overhead and take the fun out of working."
I can only suggest you give Mingle a real trial, it's amazing. My developers love it and so do I.
There is a small learning curve but it's so flexible, I'd suggest looking at the Hybrid sample project and the built-in reports to get over any reservations you may have.
Our project would be dead in the water if it wasn't for Mingle, I have a disability but can still modify 300+ cards in a day if required. Plus it's free for a year for 5 users or less!
Post-its cannot possibly facilitate the communication and teamwork that this software provides out of the box, and if you don't like the way it works you can keep tweaking it till it suits your team.
Hardware - I'd suggest a quad core & 8GB for decent performance.
Disclosure: I have no association with Thoughtworks, other than loving their s/ware.
Index cards work great, but if you need it online, I'd try Unfuddle. You can use it for small groups for free, and it's lightweight enough that you can adjust it to your group's needs pretty easily.
I use it at work, and we keep all stories in its "notebooks" (read: wikis) and tasks in its tasking system. It has built in milestones and releases, and its Subversion and Git integration are pretty great: we can log comments on and resolve tasks with version control messages.
We're using ScrumWorks for about 30 people. They have a free edition.
http://danube.com/scrumworks
I like Pivotal Tracker. It's a story-based project planning tool that allows teams to collaborate in real-time
Rally is a really nice tool that is focused around Agile development.
I like dotProject for actual task tracking. You can easily attack the database to get your on statistical data out of it if needen.
For the planning proces I use Microsoft Project mainly because I'm used to it. I also used the open source tool OpenProj.
Changing tasks in dotProject is painful, so I usually enter them only about 4 to 6 weeks in advance.
FogBuz seems to be a great tool, I just never had the time to try it out and am realla a late adopter of such tools.
This question is mostly a duplicate of https://stackoverflow.com/questions/12328/what-bug-tracking-software-do-you-use which has a lot of answers - tasks are not necessarily bugs, but good tools let you specify other task types than 'bug'.
We're using Eventum at the moment to handle our tasks. It may not be the best but it's worth taking a look at. Each "issue" in our case is often broken down features or use cases that is assigned to someone to implement.
We also use Trac, but it does not scale very well. Handling Use Cases and Test Cases may also get cumbersome. It really depends on the scope of the project and the size of the development team. I think for teams with less than 10 people Trac does an excellent job, but after that you are hitting the glass ceiling.
We are starting to take a closer look at Confluence/Jira (perhaps with Greenhopper) as we are starting to outgrow Trac.
Oh, and post its, index cards and whiteboards work really well if everybody is on-site ;-)
RallyDev.com. Free 5-user community edition and it's actually pretty good!
For a co-located team nothing beats a big wall and a whole bunch of index cards as far as I'm concerned. Maybe with whiteboard or two for burnup/down charts.
We are a team spread across multiple locations. The tool I've found useful has been a wiki built over Twiki.
Benefits:
Wiki-like environment so collaboration is easy.
Plugins available to add 'applications' such as minutes of meetings, Bulletin Boards,
Discussion Forums.
Secure.
Check out Intervals. We built it as a web design agency with very similar issues as yours. We hadd 4 or 5 guys all tracking time and tasks in xcel documents and it was difficult to get anything done.
I the agile teams I work with, we dont manage task over a long period of time. Instead, we manage a "backlog" of features to be added to the product. We sometime also call those "user stories". This backlog is a kind of slicing of the product in a list of incremental features to be delivered. We manage this backlog in Excel, with very few columns such as description, complexity evaluation and done/not done, iteration, and that's it.
During the iteration, the tasks are managed in a postit wall as presented in one of the answers. In case a task last more than one iteration, we manage to fragment it, ensuring features/user stories are delivered at each iteration.
An example of user story in the excel backlog, it would have complexity associated with it:
"The user can log on the system using a form with id and password"
Some examples of associated tasks, to be done during an iteration. Those will be managed with postit, with not complexity.
"Code the logging form, using GWT"
"Implement security algorithm to check password validity"
"Create a user/password table in the database"
"Test the logging form on the integration system"
We've been using Accunote (accunote.com). A vendor set it up so I have no idea what it costs, or even if we are sing it properly.
Why it works:
Fairly easy to edit/update.
Easy to modifiy tasks in sprint, copy to/from backlog tab, etc.
Everyone looks at the burndown charts, especially the "by user" one, and that keeps the team working together and gives a sense of accomplishment.
There's probably other tools that do the same, or better (and the Accunote Javascript can be a bit awkward).
Key thing is that it should be really easy to use and have some sort of "team space" where you can all keep an eye on each other and see how each of you are going.

Resources