We started with Scrum because its formal structure (estimation, user story planning, task planning, daily meetings, retrospective) helped us get from our old methods to be more agile. We've now found that the 3 planning and esitmation meetings can be done on a task/user story basis in the morning meetings.
We have a large pin board and pin on index cards for each user story. The board is split into not started, in progress and done. We ensure that no task takes more than a day when we break it down, and we break down each user story in the daily morning meeting the day we are going to need it. This keeps us agile so that the list of "features" as user stories can then change without us spending time breaking it down into tasks. This ensure that two week projects can easily be handled in the same way that larger ones are too.
To estimate velocity we count up the cards at the end of the week to see how many task we've done. The downside is that release planning and velocity estimation is not as accurate as with Scrum but this hybrid XP methodology helps developers focus on tasks when ready and not waste too much time in meetings.
Having smaller tasks also promotes more regular commits to source control and combined with a build server and deployment scripts we can deliver a progression in the application once a day at least - great for getting feedback from the client. We also have weekly retrospectives too and have hired in an agile consultant for a week every 3 months or so to ensure we keep on the right track.