See the Whole
An overview of the whole project will give you an advantage to adapt to changes, which is the most important factor in agile development.
Do not sub-optimize in order to get the details right, but worry about the system as a whole.
- Measuring
Be careful how and what you measure. All features may be implemented in time in every iteration and the customer may still be unhappy. Measuring changes the focus. When you measure the hours spent on paid projects compared to internal time, then you can optimize this to have almost every hour spent on paid projects. Unfortunately, you will discover that the quality of the software will fall, as people will not have enough variation in their daily work. - Appropriate Contracts
Time and material contracts are among the only kind of contracts which are suitable for agile development. Fixed priced contracts demand knowledge and in-depth analysis of the problem. Customers rarely sign time and material contracts, because they fear that the costs may run away. In these cases try to make fixed price contracts for the well known parts only. - Scope, Price, Time, Resources
These are the four main factors when doing a project. You cannot have them all constrained. When you begin on working on a project make it clear for yourself which of the factors are fixed and which are negotiable or mutable.
Real Life Experience
I have worked on a lot of fixed prize contracts. None of these projects were to my or the customers satisfaction. The most successful of these had a fixed price contract in the beginning and a time and material contract afterwards. There was put a lot of work on scheduling and analysis - often with wrong estimates, which was bad for product quality.
The problem was often caused by the sales people, not the customer. The customer wants to have a price tag on the product he orders, which can be done with a reasonable error margin. Unfortunately, the salesman typically takes the approach: Look what we did before; How long did it take? What have other companies done? We want the project and we are of course better than all the competitors, so we base our fixed price contract on these facts. The developers are sometimes asked to give an estimate too, but they have little time to do so, because the time they spent is not paid by any customer.
Learn to have a tight communication between the customer and the developers from the very beginning and avoid making early decisions, when knowledge about the details is missing.