Interface Ltd.
119334, г. Москва, ул. Бардина, д. 4, корп. 1.
(495) 229-0436, shopadmin@itshop.ru
Подписаться на новости в формате RSS | В избранное | Вход
Купить Delphi XE2 - получить C++ Builder XE2 Бесплатно Обновить КОМПАС 3D и График до V13 со скидкой 13% Купить MSDN - Скидка 35% Легализация Windows за 5000 рублей Купить Office 2010 - Скидка 15% Купить Windows Server за 21000 рублей Купить RAD Studio XE2 - получить DB Optimizer XE2 Бесплатно Купить ArchiCAD 15 + nanoCAD СПДС Бесплатно
 
Каталог:
 
 
Подписка на новости:
Новости ITShop
Windows 7 и Office: Новости и советы
Обучение и сертификация Microsoft
Вопросы и ответы по MSSQLServer
Delphi - проблемы и решения
Adobe Fotoshop: Алхимия Дизайна
 
Ваш отзыв:
Оцените качество магазина ITShop.ru на Яндекс.Маркете Если вам нравится наш магазин - скажите об этом Google!
 
 
Способы оплаты:
 
 
Курс расчета:
 1 у.е. = 30.94 руб.
 
 Цены показывать:
 
 
 
 
  

Хороший выбор плохой архитектуры

Vsevolod Leonov

Познавательная активность

моих друзей-блоггеров стимулирует очередную итерацию в анализе получаемой информации. Евгений Чмель, один из победителей нашего с DelphiFeeds.ru конкурса блогов, в своей "собирательной" статье довольно удачно совместил собственные размышления с достаточно вдумчивой селекцией опубликованных книжных мыслей.

Количество опубликованной литературы на тему "как правильно создавать ПО" настолько превысило нормупотребления реально программирующего специалиста, что мы должны быть благодарны Евгению хотя бы за краткий пересказ основных моментов через призму собственно восприятия.

Выбор в условиях неопределённости

Психологический портрет хорошего разработчика обязательно будет укомплектован румяным и красивым комплексом неполноценности. Мы сомневаемся в себе уже в момент проклика в Project->New Application. Редкий кусок кода мы готовы признать красивым, эффективным и выше всякой критики. Мы часто страдаем от собственного "дилетантства", "косорукости" и "быдлокодерства". Обычно, чем умнее и опытнее разработчик, тем больше скептицизма он испытывает, глядя на направление развития собственной системы. Давайте немного поизбавляемся от заниженной самооценки.

Основная проблема в разработке архитектуры ПО - неопределённость. Мы не знаем:

  • степени стабильности бизнес-моделей (где гарантия, что через полгода нас не попросят коренным образом перестроить БД?);
  • периода сохранения интереса нашего начальства к качеству создаваемой системы (слушай, сделай хоть как-нибудь, лишь бы она работала сейчас, а не через месяц);
  • запаса прочности собственного энтузиазма (надоело, сделаю тяп-ляп, а потом, когда станет ясно, что нужно реально для пользователей, пересмотрю всё заново).

В условиях неопределённости

обычно принято оперировать понятием "стратегия". В настоящий момент мы не можем понять, как текущий шаг скажется на эффективности проекта в целом. Чтобы (грубо говоря) не умереть от стресса/уметь объяснить начальнику, почему ты делаешь так, а не по-другому, мы принимаем некую "стратегию".

Перефразируя выжимки из теории игр (которая идёт значительно дальше предсказаний результатов лотереи), относительно архитектуры ПО можно выделить ряд стратегий:

  1. хорошо бизнесу (отличная архитектура, удобство сопровождения, но долго ждать результатов);
  2. хорошо программисту (быстро сделанная архитектура, проблемы сопровождения, но регулярные результаты от отдела разработки ПО);
  3. творческий беспорядок (отсутствие понятия "архитектура", много мелких итераций, цель разработки ПО - удовлетворение жажды творчества программиста).

Возможно, в комментариях вы меня дополните, исходя из своего миропонимания. Смысл этого списка лишь в том, чтобы правильно понять существующий новогодний салат оливье (мешанина, ералаш) в советах и рекомендациях, вплоть до взаимоотрицаний (посмотритевышеупомянутую статю). И тогда сентенции типа "простота лучше универсальности" или "не создавайте решений на перспективу" более не кажутся "опасным бредом" или "чудесными откровениями". Это просто есть описание некой стратегии (зафиксированной автором тезиса в своей голове).

Если плохая архитектура существует

значит это кому-нибудь нужно. Хочу кратко рассказать случай из моей жизни. Жила-была очень способный разработчик - Елена. Большой опыт, умение делать всё от базы до интерфейса. Создавала систему CRM для компании, где работала более 10 лет. Прошла путь от маленькой базёнки до кроссплатформенного монстра. Работала в одиночку.

Система CRM была краеугольным камнем бизнеса. Сервисная компания могла конкурировать на достаточно плотном рынке только из-за того, что очень быстро адаптировалась к новым условиям, бойко выдумывала различные скидочные программы и качественно мониторила количественные показатели степени удовлетворения клиентов.

Но Елена в какой-то момент передумала быть программистом и решила стать финансистом. То ли сказался развод с мужем, то ли надоело обращение "Леночка, ты почему не доделала ввод данных?", а захотелось пожить в образе "Елена Михайловна, когда у Вас будет время посмотреть документы?". Мозгов-то Лене Абросимовой было не занимать.

Чем кончилось дело

спросите вы? Сначала она захотела уволиться, в чём ей было с удовольствием отказано, т.к. архитектура оказалась настолько запутанной, что банда молодых горячих парней без (уже) Елены Михайловны не могли "вкурить" даже в основные 20 таблиц с 50 хранимыми процедурами. И уже на совещании с привлечением генерального было принято решение перевести Лену в финансистки, попутно оплатив ей корпоративный MBA, лишь бы она на ближайшие 2 года не помышляла об уходе из компании, была доступна для консультаций и могла бы на худой конец пофиксить внезапно всплывший баг.

Как вы понимаете

Лена была "хорошей девочкой", ничего она не пыталась сделать нарочито плохо, запутанность архитектуры возникла случайно, эволюционно, намножив сущностей не специально, а вслед за бурно развивающимся и противоречивым материнским бизнесом.

Вот в этой абсолютно реальной истории (а я оставил несколько скрытых совпадений) есть один неявный вывод - господа IT-директора, занимайтесь стратегией!

Ссылки по теме

  
Горячая линия:
 
Помощь:
Задать вопрос ONLINE
     программы
     обучение
     экзамены
     компьютеры
Бесплатный звонок
ICQ-консультанты
Skype-консультанты
Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
 
Популярные статьи:
Разработка ПО СУБД и хранилища данных Резервное копирование Информационная безопасность Средства тестирования SAP Business Objects Microsoft Oracle IBM Rational Symantec Офисное ПО Графические редакторы САПР Прикладное ПО Управление проектами Управление разработкой ПО Разработка веб-приложений Операционные системы Windows Операционные системы Linux Антивирусное ПО и защита от спама Управление ИТ-инфраструктурой ИТ-Обучение Adobe AutoDesk Corel IBM Interface Download ABBYY Бизнес-тренинги Embarcadero ИТ-Сертификация Telelogic GFI Eset Software Доктор Веб Лаборатория Касперского SAP Business Objects (OEM) Компьютер и здоровье IBM Lotus WMware
 
Бестселлеры:
Windows Professional 7 GGK ЛЕГАЛИЗАЦИЯ - 5000 руб. Windows Professional 7 GGK ЛЕГАЛИЗАЦИЯ - 5000 руб.
Windows Server Standard 2008 R2 Windows Server Standard 2008 R2
Delphi XE2 Professional Delphi XE2 Professional
ESET NOD32 Антивирус - лицензия на 2 года на 1ПК ESET NOD32 Антивирус - лицензия на 2 года на 1ПК
AutoCAD LT 2010 Бессрочная лицензия AutoCAD LT 2010 Бессрочная лицензия
TestComplete 8 TestComplete 8
Антивирус Касперского 2012 Антивирус Касперского 2012
Дистанционные курсы по управлению проектами Дистанционные курсы по управлению проектами
Oracle Database Standard Edition One Oracle Database Standard Edition One
Adobe Creative Suite 5 Design Premium Adobe Creative Suite 5 Design Premium
Adobe Photoshop CS5 Adobe Photoshop CS5
Курс Курс "Основы моделирования бизнес-процессов и спецификации требований к ПО"
Avira Professional Security Avira Professional Security
Курс Курс "Разработка приложений в архитектуре клиент-сервер с помощью Delphi"
 

Подписаться на новости в формате RSS | В избранное | Вход


Rambler's Top100 Проверить аттестат Товары@Mail.ru