
A schedule by function is grouped by functional roles. Examples of functional role would be Project Manager, Tester, Architect, Developer and so on. The advantage of this structure is that it keeps all the activities for each role together. To help you better understand the structure, I drew it in an organizational (WBS) format below:

The second structure is by deliverable and my personal preference. This is where you group activities by your deliverables. The advantage of this is that you group all the activities needed to complete a deliverable. Another advantage is that you have more flexibility in the type of development life cycle you use (Iterative versus waterfall). And lastly, you keep everything focused on what it is you are delivering for the customer. To help you better understand the structure, I drew it in an organizational (WBS) format below:

1.1 Create requirements for suspension
1.2 Create suspension design to meet requirements
1.3 Build your design
1.4 Test your design
1.5. Milestone: Car Suspension Created If you keep this simple structure, and repeat it for each deliverable, you will have a great project schedule in no time. The last thing would be to define your starting activities (before you deliverables) and closing activities (after your deliverables) and you are all set.