Экстремальное программирование — это путь непрерывного совершенствования к желаемому совершенству, который в общих чертах приносит такие идеи, как короткие циклы разработки, подход к поэтапному планированию, гибкость и способность быстро реагировать на изменения, зависимость от автоматизированного тестирования, постоянно развивающийся дизайн с функции, а также тесное сотрудничество и постоянные обсуждения в команде.
Ценности, принципы и практика — вот как описывает экстремальное программирование Кент Бек; все они - кусочки одной и той же головоломки, которая не завершена без присутствия всех трех.
Вы не станете программистом XP только потому, что хотя бы раз прочитали книгу или применили все методы. Вы можете считать себя таковым только после того, как поняли ценности и принципы и даже начали применять практики. И ежедневное применение практик вместе с созданием новых практик для решения проблемы, не охваченной предложенными практиками, если это необходимо, является еще одним компонентом, который заставит вас расти: каждая практика действительна до тех пор, пока она уважает ценности и принципы.
Итак, давайте сразу к делу: почему именно уровневый список, а не, например, топовый? Это может показаться тривиальным выбором, просто для того, чтобы следовать тренду, но на самом деле он имеет очень четкое обоснование.
Список из 5 основных принципов будет означать, что «эти 5 являются основными, вы можете обойтись без остальных». Мне не хочется говорить, что можно обойтись без каких-либо ценностей и принципов XP. Например, формат Top 5 намного лучше подходит для практики.
Смысл многоуровневого списка в том, чтобы сказать: «нужны все ценности и принципы, но давайте попробуем расставить приоритеты». Очевидно, что приоритет очень личный, поэтому вы, вероятно, не согласитесь: пусть я знаю ваши в комментариях.
Приоритет для меня в основном означает, что отсутствие человека на первой позиции более серьезно, чем отсутствие того, что на последней позиции. Другими словами, если предположить, что мы находимся в месте, где нет ни одной из этих ценностей и принципов, с чего нам начать пытаться вставить их в контекст, в котором мы находимся.
Ценности
5 - Обратная связь
Как уже упоминалось, все ценности являются фундаментальными, поэтому даже такая важная ценность, как обратная связь, оказывается на последнем месте. Ни одно направление не остается верным надолго в реальных проблемах, говорим ли мы о программном обеспечении, требованиях или архитектуре системы. Изменения неизбежны, поэтому необходима обратная связь. Основная причина последней позиции в том, что искать (быструю) обратную связь очень сложно и ИМХО требует смешения чужих ценностей.
4 - Связь
Коммуникация — один из фундаментальных аспектов ИТ-команды, который часто вызывает проблемы; каждый раз, когда что-то не работает, мы должны спросить себя, была ли проблема со связью на базе. Тем не менее, хотя это и важно, общение затруднено, еще сложнее, когда мы работаем удаленно; общению, по моему опыту, определенно способствуют мужество, простота и уважение, поэтому я ставлю его после них.
3 - Простота
Часто выполнение простых вещей происходит от больших умений: когда ты умеешь делать что-то честно и просто, без излишеств, ты проявляешь большие знания и опыт. Поэтому очень важно с самого начала поставить простоту в центр своего выбора; опять же, мы пытаемся упорядочить эти ценности, и простота становится возможной только у людей, которые проявляют мужество и уважение.
2 - Мужество
Смелость всегда важна: она способствует общению и простоте, обеспечивая более искреннюю обратную связь между членами команды. Смелость выражать искреннее мнение может быть мощным инструментом, позволяющим делать выбор в сторону простоты, но она может стать опасной, когда отсутствует уважение.
1 - Уважение
Уважение обязательно стоит на первом месте: это первое, что компания должна гарантировать команде. Если люди почувствуют уважение, они ответят с максимальной отдачей, даже перед некоторыми организационными проблемами. Это уважение станет основой роста команды. Чувство уважения как профессионала, но и как человека подготовит почву для многих хороших последствий: люди будут более уверенно следовать таким принципам, как смелость, общение и обратная связь, что приведет к простоте плавным путем.
Заключение
Этот список был забавной игрой: невероятно осознавать, как много людей начинают думать, пытаясь упорядочить ценности, которые являются фундаментальными для команды. Нет смысла пытаться использовать этот список конкретным образом, но путь, который приводит вас к написанию собственного списка, показывает, насколько они связаны. Любой заказ имеет смысл, потому что они строго связаны друг с другом, влияя друг на друга положительно или отрицательно, в зависимости от того, насколько команда их понимает.