И. Каравашкин – Справочник рекрутера. Архитектор программного обеспечения - Chief Software Architect (CAS) (страница 8)
4. Интеграция улучшений безопасности: CSA обеспечивает интеграцию улучшений безопасности в модернизированные приложения – это включает внедрение надёжного шифрования, контроля доступа и мер по соблюдению требований.
Постоянное Совершенствование
1. Внедрение инструментов мониторинга производительности: CSA рекомендует интегрировать инструменты мониторинга производительности для постоянной оценки показателей работоспособности системы (например, времени отклика), обеспечивающих постоянную оптимизацию.
2. Итерации проектирования, ориентированные на пользователя: CSA выступает за итеративные процессы проектирования, при которых обратная связь с пользователем учитывается на каждом этапе – это гарантирует, что модернизированные приложения будут соответствовать меняющимся потребностям конечных пользователей.
3. Программы передачи знаний: CSA разрабатывает программы передачи знаний, чтобы обеспечить понимание разработчиками новых технологий и методологий, способствуя формированию культуры непрерывного обучения.
Проводя команды разработчиков программного обеспечения через стратегические оценки, создание дорожной карты, поэтапные подходы к внедрению, оценку технологий, интеграцию улучшений безопасности, внедрение инструментов мониторинга производительности, итерации проектирования, ориентированного на пользователя, и инициативы по обмену знаниями, CSA играют незаменимую роль в обеспечении успешного процесса модернизации/эволюции. Это не только расширяет функциональность системы, но и согласуется с бизнес–целями для достижения долгосрочного успеха.
Управление Техническим Долгом
Управление техническим долгом является важнейшей обязанностью главных архитекторов программного обеспечения (CSA), поскольку это напрямую влияет на качество программного обеспечения, «ремонтопригодность» и масштабируемость с течением времени. Вот подробный обзор того, как CSA управляют этим аспектом.
Выявление Технической Задолженности
1. Аудиты кода: Регулярные аудиты кода необходимы для выявления областей, в которых накопилась техническая задолженность – анализ сложности существующих кодовых баз для выявления недостатков или устаревших компонентов.
2. Инструменты мониторинга производительности: Использование инструментов мониторинга производительности помогает выявить узкие места и неоптимальные методы кодирования, которые со временем приводят к увеличению затрат на обслуживание.
3. Оценки рисков: CSA проводит оценку рисков путём оценки потенциального воздействия на надёжность системы, уязвимости в системе безопасности, проблемы соответствия требованиям, связанные с технической задолженностью.
Расстановка приоритетов
1. Анализ воздействия: Определение того, какие части кодовой базы оказывают большее влияние – сюда входят критические модули, которые часто используются или подвержены сбоям.
2. Анализ затрат и выгод: CSA проводит анализ затрат и выгод для решения различных типов технической задолженности, сопоставляя немедленные исправления с долгосрочными выгодами.
3. Системы определения приоритетов: Разработка систем определения приоритетов (например, с использованием метода «Одолженных часов») помогает классифицировать и ранжировать задачи на основе срочности и воздействия – это гарантирует, что первоочерёдные задачи будут решаться в первую очередь.
Рефакторинг
1. Инкрементный подход: CSA выступает за инкрементный рефакторинг, при котором вносятся небольшие изменения для улучшения качества кода без нарушения текущих операций.
2. Проверки кода: Внедрение строгих процессов проверки кода помогает поддерживать чистые стандарты кодирования и предотвращать накопление новой технической задолженности на этапах разработки.
3. Внедрение шаблонов проектирования: Поощрение разработчиков к использованию установленных шаблонов проектирования обеспечивает модульность, возможность повторного использования и ремонтопригодность – это снижает сложность с течением времени.
Непрерывный Мониторинг
1. Инструменты автоматического обнаружения: Интеграция автоматизированных инструментов для обнаружения частей кода или потенциальных областей технической задолженности помогает постоянно поддерживать чистую кодовую базу.
2. Циклы обратной связи: Установление циклов обратной связи с разработчиками для быстрого решения возникающих проблем гарантирует, что усилия по рефакторингу будут постоянными, а не просто разовыми исправлениями.
3. Обновления документации: Постоянное обновление документации о текущем состоянии, внесённых изменениях для устранения технической задолженности – это обеспечивает ясность в отношении улучшений архитектуры системы с течением времени.
Стратегии смягчения последствий
1. Технические планы погашения задолженности: Создание подробных планов систематического погашения накопленных долгов путём определения приоритетов в областях с высокой отдачей и эффективного распределения ресурсов.
2. Учебные программы: Проведение учебных сессий, посвящённых лучшим практикам в области кодирования, шаблонам проектирования, методологиям тестирования – это помогает разработчикам понять последствия технической задолженности.
3. Механизмы стимулирования: Внедрение программ стимулирования, которые вознаграждают команды за активное выявление и устранение технической задолженности, может способствовать формированию культуры, в которой поддержание качества кода является приоритетным.
Эффективное управление техническим долгом требует постоянных усилий со стороны CSA, включая идентификацию с помощью аудитов и инструментов мониторинга, стратегическую расстановку приоритетов на основе анализа воздействия, методы постепенного рефакторинга, текущие инициативы по обучению, механизмы автоматического обнаружения, обновления документации, пенсионные планы и программы стимулирования. Поступая таким образом, они гарантируют, что программные системы остаются надёжными, масштабируемыми, «ремонтопригодными» и при этом соответствуют долгосрочным бизнес–целям.
CSA служат стратегическими лидерами, которые устраняют разрыв между бизнес–целями и техническим исполнением, глубоко понимая организационные стратегии, создавая единое архитектурное видение, обеспечивая соответствие ИТ-решениям, побуждая команды к постоянным инновациям, пропагандируя новые технологии, способствуя эффективной коммуникации между подразделениями, принимая важнейшие архитектурные решения, управляя усилиями по модернизации программного обеспечения и снижая техническую задолженность.
Обязанности CSA многогранны: они должны не только разбираться в тонкостях текущих бизнес–стратегий, но и предвидеть будущие потребности, обусловленные тенденциями рынка. Они лидируют в разработке архитектурной стратегии, соответствующей этим целям, обеспечивая при этом масштабируемость, безопасность, надёжность и ремонтопригодность – ключевые факторы поддержания долгосрочного успеха. Их способность стимулировать инновации и создавать среду для сотрудничества, в которой команды могут изучать новые технологии, имеет решающее значение. Более того, CSA играют ключевую роль в содействии коммуникации между заинтересованными сторонами бизнеса и техническими командами – задача, требующая исключительных лидерских качеств и способности урегулировать конфликты, обеспечивая при этом соответствие стратегическим целям. Они также отвечают за руководство командами разработчиков в процессах модернизации программного обеспечения, которые расширяют функциональность системы без нарушения текущих операций.
Конец ознакомительного фрагмента.
Текст предоставлен ООО «Литрес».
Прочитайте эту книгу целиком, купив полную легальную версию на Литрес.
Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.