Define the Application Architecture
A key task for the core team to do before they complete the overall project plan is to identify, define, and validate an appropriate application architecture. Although some might say that this can be deferred until the rest of the team is in place, my thought is that the choice of application architecture influences the size and composition of the team.
To validate the application architecture, the core team has to do some coding to implement a feature end to end. By building what used to be called the executable architecture, the core team learns how the architecture really works. The other real bonus is that the core team can use this knowledge to identify the skills needed and to calibrate the initial project estimates.
Ideally, the selected application architecture should be built on top of available frameworks and middleware. Infrastructure projects are always high-risk, and very few application development projects should waste time and energy creating their own infrastructure unless there's a really compelling justification.