Doing it in parallel isn't really possible, unless I'm missing something major, if you don't know the baseline against which you need to test.
What's the value in testing something that's incomplete?
[edit]Note: by incomplete I don't mean without full low level designs, I just mean that whatever it is you are testing hasn't been finished in design or coding at this point...
Traditional project deliver attempts to define a contract with a scope of work (requirements) and then guess the cost and time associated with it. The time to the project is that the scope is delivered (validated using acceptance testing) it's effectively attempting to model the complete system as a requirement then deliver the complete system.
The reality is that the scope changes over time. The business value (not the money) to the customer for parts of the scope and new scope also changes over time.
The result is a change request process that results, over time, not being able to adequately cope with the changes to the complete system AND the existing development. Oh - then theres the failure due to budget overruns...
The result is delivered and .. often failure to deliver quickly and early results in systems that don't do what the customer wants or fail completely to deliver what the customer wants NOW in terms of business value.
Agile on the other hand focuses on people. It trusts that people know what they're doing and how to deliver business value of the customer.
The iterative breakdown and delivery to need management - a backlog and prioritisation through business value. Iterative working with the customer means they effectively sign off a progressive delivery of business value.
Thus you have a customer, your customer knows roughly what they want and through interactive iterations. At the end of each iteration you're signing off acceptance.
Dates are still important but the customer is engaged through the entire sprint cycle with the engineers working directly with the customer.
The dangers are:
* information overload and overall solution, however there's nothing stopping you from having an overall definition picture at a high level (that's what the product/project backlog is). Your engineers must know how their work fits - if not then they're not caring in what they deliver and will be ineffective.
* not setting dates - agile doesn't mean you don't have dates, you do. You, the customer and the engineering staff all know them as they're in the backlog. Make it your team's responsibility for highlighting dates at risk at the standup (scrum).
* "doomsday clock" being used for R&D - the scrum idea of a clock is to show if you've done a "quick hack" to deliver quickly how much you need todo to complete it correctly. It doesn't mean the time required to redevelop something because of a new technology is available and the engineers want to use it - that's R&D and is a backlog task.
* X is the substitute for the customer. No. No. No. Only if you're developing product then the product manager is the customer for market-led/multi-customer features or use cases.
* Definition of done - that doesn't mean the engineer has checked in their godlike piece of development. It's when the customer is happy. The sprint acceptance means they're happy - if the thing isn't then either the customer changed their mind in the scope or the the development took longer than estimated originally - the over run/new work is additional that carried over to the next sprint. The customer can see quickly (and everyone else) if there's changes through the burn downs.
Long post.. lots if different things that are difficult to put but Agile really works in an organised way and if you have 100 developers then it still works. However the way in which the organisation is left to them. They still need to define, decompose the work and demonstrate the work is complete. Even if it's a scrum of scrums or tribes or however you wish to look at organising.
One really nice example is Valve. They have no organisational structure- the entire team is fluid and works by moving their desks physically.. so you development work may have a team made up of PR, Marketing, Legal and developers.. all working side by side. They don't compartmentalise the different functions and the result is that the team get a very good idea between the functions on how they need to communicate and work.
Traditional - paper - "you do this"
Agile - people - "I trust you to make the customer happy (work done)"