Create a single team from multiple specialties
Create a small team to deliver each chunk of functionality. Co-locate the team so they can communicate directly, face to face, with no internal documentation required. Ensure the team has (or has access to) all the required skills.
Co-ordination across teams requires some special effort, but communication within the team is cheap. Team sizes should ideally be between 2 and 5 people. A single person with all the desired skills is hard to find, over about 5 to 7 people and communications start to get too expensive.