Category: архитектура

Category was added automatically. Read all entries about "архитектура".

верхний пост: кто я? про что я?

Меня зовут Иван Курманов. Я мужчина, муж и отец. Инженер-программист, руководитель группы разработчиков, индивидуальный предприниматель, консультант.

Уже несколько лет я учусь делу практического психолога, психотерапевта. Если вам нужно выговориться, нужна помощь, и вообще-то хочется жить лучше (например, жить "в ладу с собой"), приходите ко мне на терапию и я постараюсь помочь, по мере своих сил. Я работаю в гештальт-подходе, но вам не обязательно знать, что это означает. Мои основные ценности:
- осознавание (осознанность);
- личная свобода и ответственность каждого за свою жизнь;
- близкие и питательные отношения с другими; близость в отношениях;
- небольшие радости и удовольствия сегодня (сравните: некоторые скорей ориентируются на личную эффективность, грандиозные достижения, абстрактное светлое будущее, или Счастье с большой буквы — это не ко мне).

Я живу и работаю в Минске. Я также работаю по скайпу с людьми из других городов.

Здесь можно задавать вопросы. И по электропочте: duraley@gmail.com

Сложность при разработке software

Основной длящийся во времени вызов, который держит меня в профессии инженера/менеджера — вызов сложности. Сложность всегда наступает, иногда создавая впечатление хаоса, и только направленные усилия — мои и команды — этому противостоят.

Это чем-то похоже на тетрис: сверху падают новые хотелки и требования заказчика, баг-репорты, идеи от программистов, новые версии библиотек-зависимостей и операционных систем (и устаревание старых). Когда ты не успеваешь это всё укладывать ровными рядами, то они превращаются в нагромождение. 

Когда проект разрабатывается годами, нагромождение неизбежно. Вместе с нагромождением требований, фич и кода, растёт хрупкость системы и постепенно сложность становится ключевым ограничением развития, узким местом развития. С этим приходится как-то разбираться.

Как?

Есть один очевидный, "в-лоб" способ: документировать. Документировать требования, документировать архитектуру, снабжать код комментариями. И у этого способа есть своя цена. 

Во-первых, это увеличение объёма текста, информации. По мере роста объёма текста, требуются всё новые и новые введения, индексы и перекрёстные ссылки; по мере добавления комментариев в код, он становится "разбавленным". В какой-то момент возникает соблазн/необходимость составить список документов, а затем и список списков и возникает новый "фронт" нагромождения.

Collapse )

эксперименты с архимейт (archimate)

Продвигаюсь всё ближе к концу книги ailev про системно-инженерное мышление (http://techinvestlab.ru/systems_engineering_thinking). Раздел 8 (последний) посвящён инженерии предпринятия, и среди прочего затрагивает тему ArchiMate (http://en.wikipedia.org/wiki/ArchiMate) — языка моделирования. Написано так соблазнительно, что мне захотелось тут же пойти разбираться подробно и рисовать диаграммы на этом языке.

Одна из причин соблазна в том, что я в своё время долго пытался понять, как мне со своими ребятами программистами в одном и долгосрочных проектов обсуждать архитектуру. Я понимал, что чтобы обсуждать архитектуру, её надо как-то описать. И текстовые описания здесь очень очень слабы.

Есть люди, которые используют UML для описания архитектуры. Но я вообще не понимаю про UML, хотя и делал какие-то попытки освоения его, раньше.

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

Я так же думал использовать ArchiMate в недавнем проекте по бизнес-анализу, но на деле до этого не дошло.

Учитывая, что это уже не первый случай такого соблазна в сторону Архимейт у меня, я таки пошёл пробовать. Вооружился бесплатным редактором — http://www.archimatetool.com/. Изучил введение к версии 2.1 (слайды) http://www.opengroup.org/archimate/2.1/ArchiMate2_intro.pdf и перечитал некоторые старые посты Левенчука на эту тему (http://ailev.livejournal.com/956829.html). Раскопал скачанную когда-то спецификацию. Пока моделирую только software уровень (архитектуру информационной системы).

production tool