Kim tự tháp Ai cập được ghép lại bằng những phiến đá tảng. Chúng tồn tại suốt hơn 5 ngàn năm qua. Một tàu hàng không thể chở cả một khối hàng hoá liền mạch, nhưng việc chia nhỏ thành từng container đã giúp việc vận chuyển số lượng hàng khoá khổng lồ. Một xe khách chỉ có thể chơ được hàng chục khách. Nhưng việc ghép các toa xe thành một đoàn tàu đã giúp vận chuyển được cùng lúc hàng trăm, hàng nghìn khách. Hay như các mảnh ghép lego đã giúp các bạn nhỏ sáng tạo ra nhiều sản phẩm sáng tạo khác nhau.

Nhiều containers xếp chồng giúp tạo thành một tàu hàng siêu lớn. Việc xếp dỡ cũng trở nên đơn giản, dễ dàng.

Nhiều mảnh ghép lego giúp tạo ra các sản phẩm sáng tạo. Việc bổ sung, tháo dỡ cũng dễ dàng hơn.

Từng khối đá ghép với nhau giúp tạo ra Kim tự tháp khổng lồ, đứng vững suốt nhiều ngàn năm.

Nhiều toa tàu ghép lại giúp tạo thành phương tiện hiệu quả trong vận chuyển được nhiều hành khách, hàng hoá hơn.
Tương tự như vậy, trong kỹ thuật lập trình, với những dự án lớn, bài toán lớn sẽ luôn được tách ra thành các bài toán nhỏ hơn. Và mỗi bài toán nhỏ hơn kia lại được tách ra thành nhiều bài toán nhỏ hơn nữa. Cứ như vậy cho đến khi vấn đề cần giải quyết đủ nhỏ và đơn giản (giống câu chuyện bó đũa của người Việt). Đây chính là chiến lược chia để trị, để quản lí.
Để giải quyết được các từng vấn đề nhỏ, sau đó lại ghép chúng lại với nhau để tạo thành ứng dụng lớn hoàn chỉnh thì chúng ta cần sử dụng kỹ thuật tạo ra các hàm (functions). Trong thực tế, những người viết code chuyên ghiệp, các lập trình viên hay người có kinh nghiệm sẽ luôn giải quyết bài toán dưới dạng các hàm.







