When I talk about the development organization, or team, I really mean the collection of people who perform the following functions:
Program Management Own the schedule, external dependencies, and manufacturing logistics; participate in design.
Quality Assurance (QA) Assess the status of the product; participate in design.
Development Write code; fix bugs; participate in design.
Product Management/Marketing Own the messages and the launch, the customers, and communications; participate in design.
Documentation/User Education Own the information required to use the product; participate in design.
You don’t need to divide your team into these specific job categories (although it’s generally most efficient to do that), but you do need ...