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 Будьте осторожны с метафорами
57 Фокусируйтесь на техподдержке и сопровождении
58 Выберите любые два
59 Предпочитайте принципы, аксиомы и аналогии вместо мнений и предпочтений
60 Начинайте с "Шагающего скелета"
61 Делитесь знаниями и опытом
62 Простые решения для простых задач
63 Проектируйте только то, что сможете реализовать сами
64 Возврат вложений
65 Устаревшая версия
66 Единственное решение? Найдите еще одно!
67 Оценивайте влияние изменений
68 Вам придется работать и с "железом"
69 За "хаки" сейчас придется потом расплачиваться с процентами
70 Лучшее - враг хорошего
71 Избегайте "Замечательных идей"
72 Качественный контент создает успешные системы
73 Бизнес против архитектора
74 Проверьте, что сломается, если изменятся условия
75 Архитектор - прежде всего программист
76 Как вы яхту назовете...
77 Стабильные задачи дают качественные решения
78 Вам потребуется усердие
79 Принимайте ответственность за решения
80 Не спешите решать задачи
81 Выбирайте технологии тщательно, а расставайтесь с ними неохотно
82 Ваш заказчик - не ваш клиент
83 Так не будет никогда
84 Выбирайте фреймворки, хорошо стыкующиеся с другими
85 Сделайте экономическое обоснование
86 Паттернопатология
87 Изучайте языки.
88 Не применяйте смекалку
89 Проектируйте системы, "прозрачные" в использовании
90 Ищете и удерживайте тех, кто умеет и любит решать проблемы
91 Программы не существуют в физическом мире
92 Оплачивайте технический долг
93 Не пытайтесь угадать будущее
94 Проблема принятия проекта пользователями
95 Архитектурный консоме
96 Система для пользователя - это ее интерфейс
97 Крупные проекты не строятся, а вырастают