title: Big picture planning with Agile
body: <p>I did some fairly thorough reading and searching through SO and didn't find anything on this topic, so hopefully I'm not creating a dupe.  If this has been asked before I would appreciate a link.</p>
  
  <p>I work for an enterprise development shop that is currently using a mostly waterfall process for software development projects.  I've read through a lot of books and articles on Agile methodologies, and I can see how a lot of it could really improve our process.  I can also envision how a lot of practices can be applied at the developer level, i.e. pair coding, shorter iterations, refactoring, TDD, etc.  We are already doing a lot of that.</p>
  
  <p>The big gap in my mind, and in the mind of the management in our organization, is how long-term planning would work in an Agile process.  Before we can even start to work on a project, we need to have a budget approved by the internal customers that are paying for the software we are producing.  How do we know what that budget should be if we don't do some fairly detailed requirements and estimation up front?  Sure, our requirements and estimation and not perfect (and sometimes really off) but they are better than nothing.</p>
  
  <p>A related question is how to judge the long term status of a project during construction.  If a particular software product is worth a certain amount of dollars to the organization, how do they know whether we will be able to implement the product before we end up spending more than it is worth?  I can see how Agile works when figuring out what work you can do during the next iteration, but how do you figure out an estimation of what the sum total of work will be to get to version 1.0 and whether or not you can have that done by fourth quarter of next year?</p>
  
  <p>How does this strategic-level planning occur in an Agile shop?  Do you just throw estimates against the initial vague user stories that you start from?  Do you not do long term planning of this nature?  Do you still have an up-front high-level requirements / design phase and then transition into an Agile process once the project is off the ground?</p>
  
  <p>Thanks,</p>
  
  <p>~ Justin</p>