Перед началом работы нужно понять, что требуется сделать (выявить требования и критерии успеха), и спроектировать решение. Решение должно состоять из детального описания решаемой задачи, программного кода и тестов, доказывающих, что код решает поставленную задачу.
Работа ведется в команде. Команда плотно взаимодействует с постановщиком задачи. Постановщик задачи устанавливает критерий успеха. Ведущий цели создает дизайн решения и обеспечивает покрытие тестами. Специалист по контролю качества выступает критиком этого решения и тем самым страхует от неудачи.
Решения или их элементы могут быть использованы повторно и это следует учитывать при их создании.
Программные решения компании Uniteller состоят из модулей. Эти модули устроены по одинаковому принципу и общаются друг с другом через четко определенные интерфейсы. Единица разработки – модуль.
Продукты — являются композитными приложениями и включают в себя необходимый набор модулей. Возможности конечного продукта определяется сочетанием модулей, входящих в него, и настройкой их взаимного поведения. Cтруктура продукта и в некотором роде возможности и свойства задаются его схемой. Схема может быть задана статически или может формироваться динамически.
Модули многократно используются повторно.
В случае, если в процессе работы обнаруживаются ошибки, команда возвращается к тому этапу, на котором была допущена ошибка, и переделывает этот этап и все последующие за ним заново.
Например: