97 вещей, которые должен знать архитектор ПО

Мой перевод цикла статей 97 Things Every Software Architect Should Know, выложенных под лицензией Creative Commons Attribution 3

1 Ваше резюме не должно быть на первом месте
2 Сложное - упрощайте, с усложнением - боритесь!
3 Скорее всего, ваша главная пробема - не техническая
4 Коммуникация - это король, а ясность и лидерство - его покорные слуги
5 Баланс между техническими требованиями и интересами участников
6 Ищите настоящую причину требований
7 Встаньте!
8 Небоскребы не масштабируются!
9 Вы участвуете в переговорах чаще, чем вы думаете
10 Количество имеет значение!
11 Строка работающего кода ценнее, чем 500 строк спецификации
12 Универсальных решений не существует!
13 Никогда не рано задуматься о производительности
14 Архитектура определяет производительность
15 Коммит без проверки - убийца производительности
16 Однообразия может и не быть
17 Бизнес управляет
18 Простота лучше универсальности
19 Архитектор должен быть практиком
20 Непрерывная интеграция
21 Избегайте неудач планирования
22 Все сразу получить невозможно
23 База данных - ваша крепость
24 Используйте неопределенность как мотиватор
25 Расширение границ проекта - враг успеха
26 Повторное использование - это прежде всего люди
27 В слове "Архитектура" нет буквы "Я".
28 Вид с высоты 300 метров
29 Попробуйте альтернативы перед принятием решения
30 Знания предметной области
31 Программирование - это процесс проектирования
32 Время все меняет
33 Дайте разработчикам свободу
34 Не старайтесь произвести эффект
35 Проблемы в зеркале больше, чем они кажутся
36 Профессия архитектора ПО неофициальная. Ну и что?
37 Архитектор, помни об этике!
38 Любая система рано или поздно откажет
39 Контекст решает все
40 Производительность важна!
41 Проектирование пустого пространства
42 Язык профессионалов
43 Будущее за разнообразием
44 Гномы, эльфы, маги и короли
45 Давайте учиться у архитекторов зданий
46 Борьба с повторами
47 Добро пожаловать в реальный мир!
48 Наблюдение вместо контроля
49 Знакомьтесь, архитектор Янус.
50 Границы и интерфейсы
51 Проверяйте предположения, особенно собственные.
52 Фиксируйте обоснования
53 Давайте разработчикам больше полномочий
54 Данные - главное в системе.
55 Система контроля версий - не только для кода, но и для данных
56 Будьте осторожны с метафорами