Your team needs to select a project lifecycle. Read another post from the project management series. The post is based on a remarkable book written by Johanna Rothman, Manage It!
When we say that we are Agile, the real truth is that we think that we are agile. In the previous post, you can read about Five Warnings That You Are Not Agile.
Here is Johanna’s advice on how to select an appropriate project life cycle.
Project life cycles described in this book are models:
All models are wrong, but some of them are useful [wikipedia].
Do not forget that you could use a combination of project life cycles. Also, your project is a REALITY, do not be afraid to create your own project life cycle!
You could have all requirements defined at the beginning (staged delivery), or develop them in iterations (Agile), but you should definitely have in your project feature-based delivery. Doing that, you will be able to evaluate your architecture as soon as possible. Because of the nature of software development (infinitive number of possible choices), it is not possible to have HARDCODED software architecture at the project beginning.
Johanna states that Scrum makes visible, adaptable, and inspectable a lot of project decisions, this is one of its advantages. Most importantly, you must be aware of situations when you should RUN AWAY from Agile. If the team could not get enough attention from the customer, or team members are not comfortable collaborating in an Agile way (for example, pairing with developer or tester). These are smells that you should not choose Agile. Johanna’s advice is to try with the iteration life cycle, such as staged delivery. Also, the option is to start with Agile because of Agile will reveal customer communication problems earlier than other lifecycles.