diff --git a/docs/charts_tips_and_tricks.md b/docs/charts_tips_and_tricks.md
index 4872e0091fe41f873be664f506439271d8119b4e..f799b60e93b0af94f1527213587c5aaf19436f58 100644
--- a/docs/charts_tips_and_tricks.md
+++ b/docs/charts_tips_and_tricks.md
@@ -50,6 +50,35 @@ underscore(`_`) is not expected to output a Kubernetes manifest file. So
 by convention, helper templates and partials are placed in a
 `_helpers.tpl` file.
 
+## Complex Charts with Many Dependencies
+
+Many of the charts in the [official charts repository](https://github.com/kubernetes/charts)
+are "building blocks" for creating more advanced applications. But charts may be
+used to create instances of large-scale applications. In such cases, a single
+umbrella chart may have multiple subcharts, each of which functions as a piece
+of the whole.
+
+The current best practice for composing a complex application from discrete parts
+is to create a top-level umbrella chart that
+exposes the global configurations, and then use the `charts/` subdirectory to
+embed each of the components.
+
+Two strong design patterns are illustrated by these projects:
+
+**SAP's [OpenStack chart](https://github.com/sapcc/openstack-helm):** This chart
+installs a full OpenStack IaaS on Kubernetes. All of the charts are collected
+together in one GitHub repository.
+
+**Deis's [Workflow](https://github.com/deis/workflow/tree/master/charts/workflow):**
+This chart exposes the entire Deis PaaS system with one chart. But it's different
+from the SAP chart in that this master chart is built from each component, and
+each component is tracked in a different Git repository. Check out the
+`requirements.yaml` file to see how this chart is composed by their CI/CD
+pipeline.
+
+Both of these charts illustrate proven techniques for standing up complex environments
+using Helm.
+
 ## YAML is a Superset of JSON
 
 According to the YAML specification, YAML is a superset of JSON. That