[Page under construction]
At its heart, the Agile principles and processes are about optimizing work flow--in this case, the flow of value through software development processes. Optimization for a component (e.g., single feature delivery) does not optimize the system.
Agile recognizes that all units of value (e.g., business features or architecture enablers) pass through a process' interconnections (i.e., hand-offs); and that when a transaction between two points in a process is burdensome or costly (i.e., has a high transaction cost), it encourages the actors in the system (us) to accomplish more work and accumulate more value (i.e., increase batch size) before pushing it through the pipeline.
By comparison, shorter hand-offs allow for smaller units of value to be pushed through the pipeline more quickly and frequently, thereby increasing predictability, quality, efficiency, visibility, and flexibility. So, to improve on a process, it is more economic to focus on reducing the delays between integration points (e.g., analysis, design, development, test, deployment, use). And the best way to reduce delays is to restrict the size of the units of work that a resource (such as an Agile Team) should tackle at any one time. Consistently accomplishing small tasks results in big goals getting accomplished faster and with less cost and frustration.
In short, Agile seeks to optimize and predict how much work can done at a time rather than which work will be complete by a particular date.