Planning High Quality On Time!

[article]
Member Submitted
Summary:

In the past few years, most software projects dealing with the Internet have strict time-to-market issues resulting in tight schedules imposed on project teams to deliver on time. This leaves the project manager with different options on how to go about planning project activities and deliverables. In this document, I explain three common methodologies for planning a project. My basis for comparison, as you will see, will be based on answering two important questions:

How early does integration begin?

How early does testing begin?

Later in this document, I explain 3 common methodologies for planning a project, my bases for comparison, as you will see, will be based on answering 2 important questions:

  • How early does integration begin?
  • How early does testing begin?

Option I: Tier Based
This option is based on dividing the team based on their technical specialty that is associated with each tier (UI Tier, COM Tier, Database Tier…etc), this enables rapid development and a relatively long planed integration period. See the diagram below:

What's Good?
You will have the team working simultaneously, leading to minimal dependency between each tier development.

What's Bad
You will have integration problems eating out from the functionality testing time.

High integration risk, of having the likely event of integration taking forever to be done, resulting in high probability of an unstable application.

Option II: Module Based
Divide into a module-based team structure where a sub group is formed from each tier, and all sub-groups work concurrently.

What's Good?
You will have each module integrated and ready to be tested as you go.

You will have the team working simultaneously, leading to minimal dependency between each module development.

What's Bad
Integrating modules at the end can be a big headache where every sub-team discovers interfaces that were they never thought of.

High integration risk, of having the likely event of integration taking forever to be done, resulting in high probability of an unstable application.

Option III: Module By Module Based
Divide your whole team into the different tiers, where all work on delivering a module, integrated it and move into the next module until the system being build is final.

What's Good?
You will have each module integrated and ready to be tested as you go.

You will ensure full integration by the end of the delivery cycle where minimal integration testing is needed at the end.

What's Bad
None, in my point of view this is the best option of the three it allows the team to foresee integration problems earlier in the project as well as giving the testing team an early start at the functionality testing.

About the author

StickyMinds is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.