Here are some common problems (and solutions) which I see in teams which have been doing Agile for a while, but feel that they’re not quite doing it right:
Tasks are normally written on index cards and created during the iteration planning meeting. Tasks are estimated in an abstract unit ‘points’. The estimation is done by all the developers. Tasks aren’t allocated when they are created, but rather the developers choose which task they want to do in the daily scrum.
The columns should represent your workflow, so other columns may be appropriate for you.
In the daily standup meeting, cards would be moved from one column to the next. The ‘velocity’ of the team is how many ‘points’ get completed in an iteration, that is how many tasks get moved to ‘Complete’.
If you have two teams, each working a two week iteration you can then have a release every week, which allows you to be very responsive to small or urgent requests.