I just finished reading an eBook on agile development. There were some key insights in there that I want to share. To start with, you need to identify the backlog of work to do. This includes both new features and bugs to fix.
When you estimate the time needed to complete the work, focus on user stories instead of requirements. Count developers for only 6 hours of productive work at the max. I personally would only schedule based on 4 actual productive programming hours per day.
Development is split up into sprints. It is wise to have a Sprint Zero to get your team organized. Some sprints should harden your system by focusing on bug fixes alone. We do this on my current project.
Require progress updates once per day. When you finish any given sprint, review all the tests. Hopefully your tests are automated for optimal test team performance. Waste is defined as any activities that do not add value to the final product. You are going to want to trim waste with a vengeance.
Finally there are only two values for percent complete that matter. They are 0% and 100% done. Anything in between is best thought of as 0% complete. Radical.