Рассмотрим любую организацию, связанную с созданием программных средств, начиная с самой вершины иерархии, и попытаемся выяснить, где выполняется каждая функция проектирования программного изделия или где она должна была бы обеспечиваться, если бы не была предусмотрена заранее. Можно с уверенностью сказать, что требуемые функции могли бы выполняться соответствующими подразделениями с должным качеством, если, разумеется, эти функции в принципе выполнимы в данной организации. Во всяком случае, нет оснований считать, что для проектирования универсального программного обеспечения понадобится какой-то особый подход, хотя жрецы программирования могут с этим и не согласиться. Чтобы определить, следует ли функции объединять или нет, необходимо рассмотреть структуру всей организации сверху вниз и выяснить, какие средства — объединенные или раздельные— в большей степени способствуют целям вышестоящей организации.