Divide and Conquer

Divide and conquer is a well-known method for delivering complex projects by breaking the whole project into smaller tasks until those tasks are simple enough to be solved directly.

Divide and conquer also has the advantage of being a natural target for parallelization. This means that different people can solve different tasks at the same time, shortening the overall development time. This can be a great advantage particularly if your team is following the waterfall model[*] of software development.

Dividing Efficiently

Always divide tasks according to their functional domain first, and only then within the same domain. It will help you assign tasks more easily.

To begin with, after you decompose your large project into smaller tasks, you need to be able to implement those tasks separately. That's a lot easier if you adopt a modular architecture from the start.

Modular Architecture

One of the principles of large-scale web development is to use a modular architecture on your projects. Modularity can best be achieved by following the object-oriented programming (OOP) paradigm, which provides some important characteristics of software design, as you can see here:


A way to create new classes using previously defined classes. The new classes inherit attributes and operations of the pre-existing classes. This approach highly incentivizes the reuse of existing code.[]


The measure of the way an application is divided into components, or modules. On a modular ...

Get PHP and Smarty on Large-Scale Web Development now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.