em linhas gerais muito gerais: Programação por módulos (no contexto do web development) é a divisão de um site em diferentes partes, consoante as suas funcionalidades e que podem ser desenvolvidas e testadas em separado dos restantes. Este método permite que o código fonte seja escrito apenas uma vez e possa ser mais tarde reaproveitado ou modificado com maior facilidade e em menos tempo.
Com o evoluir da engenharia de software, mais particularmente o web development, tem-se vindo a registar uma maior preocupação em acompanhar as necessidades organizacionais e não só. Esta preocupação traduz-se numa maior capacidade de adaptação a alterações que possam ocorrer durante o processo de desenvolvimento. Para que isto seja possivel, é necessário que a metodologia de desenvolvimento adoptada assim o permita, sendo este o factor crucial para o sucesso ou não de um projecto. Metodologias ágeis têm como ponto de partida a complexidade inerente a qualquer processo de desenvolvimento e permitem uma maior flexibilidade, num ambiente sempre susceptivel a mudanças rápidas e inesperadas, às quais é necessária uma reacção rápida.
A modularidade é um principio que visa o desenvolvimento de módulos que possam funcionar optimamente de forma independente dos restantes. Este modelo tem como vantagens imediatas uma maior facilidade de criação e manutenção, uma vez que a falha de um módulo não compromente o sistema completo. Precisamente por serem independentes uns dos outros, é possivel adicionar ou substituir módulos, sem que o utilizador final se aperceba. Estes módulos após implementados podem ser posteriormente reutilizados, evitando repetições desnecessárias de código e tempo perdido.