SlideShare a Scribd company logo
1 of 24
Download to read offline
Стас Фомин

             Integrating
Open Source Software Environments
 into Software Development Process

         Интеграция
    Open-Source систем для
    процесса разработки ПО

                                     1/24
Проблемы общие для отрасли
●   управление изменениями
    change management
●   конфигурационное управление
    Software Configuration Management
●   проектное управление и коммуникации
    project management and workflows
●   регистрация ошибок и проблем
    defect and issue tracking
●   управление знаниями
    knowledge management




                                          2/24
Решений много. Возможно слишком.
                     Что выбрать?
                    Что из этого важно?
                    Что неважно?
                    Сколько обьектов, ролей,
                    функций, процессов,
                    обязательных практик...

                    Согласятся ли коллеги?
                    Слишком сильная декомпозиция,
                    все зарегулировано....

                    А может придумать своё? YAUP?
                    Yet Another Unified Process?
                            Как это
                            автоматизировать?
                            Обойтись маркерной
                            доской и стикерами?
                            Купить единую систему учета
                            всего? Или обойтись офисными
                            документами и таблицами?


                                                   3/24
Никто не любит бюрократию
 ➢   Никто не любит заполнять отчеты
 ➢   Программисты — особенно
 ➢   Сильные программисты — еще сильней




        ...и да, у нас  — сильные программисты...

dilbertru.blogspot.com                         4/24
Денег жалко. Их даже может не хватать.
Особенно молодым, небольшим,
и развивающимся командам.




Польза от софта неочевидна, по сравнению с железом,
жилплощадью, одеждой, едой...
                                                      5/24
6/24
Обьекты управления: наш взгляд
                                 Ошибки
                      Запросы
                           Проблемы
           Ошибки у заказчика
                                  Требования
              Запросы на доработку
                                         Задачи
                      Ошибки в коде



                                                    Знания
       Артефакты
                                          Технологии Регламенты
Программный код                             Инструкции
                                                           Постановки задач
                         Документация         Что такое M4?
                                                        Как верстать в LaTeX?
 Сборки                                       Что значит ошибка 0x800ea?
    Дистрибутивы                        Где лежит сахар и ключи от офиса?
         Бинарные ресурсы             Кому положена оплата за телефон?




                                                                            7/24
Эволюционный open-source минимализм
●   1998—2001:
    –   CVS,
    –   SGML Docbook,
        XML/XHTML,
    –   Email

●   2002: + Bugzilla: управление проблемами
●   2004: + Mediawiki: управление знаниями
●   2005: + Bonsai: Древо Кода
●   2007: + Subversion: Система контроля версий

                                                  8/24
Минимальное Покрытие Проблем Решениями

  Проблемы




                          Знания
Артефакты
                                      9/24
Bugzilla: управление проблемами
●   разработка «The Mozilla Organization»
●   система учета/контроля/регистрации
●   ошибок/инцидентов/требований/идей/дел/задач
Баг («Bug»): задание, запрос, рекламация,
 или просто сообщение, требующее обратной
 связи.
Назначение: регистрация и предоставление
 интересантам целостной информации о
 багах.
Интерфейсы: редактирования, запроса и
 поиска, почтовое и RSS-оповещение.
                                                  10/24
Bugzilla: управление проблемами
Общеизвестна
Развитая система прав
Массовые правки



Интерфейс не очень sexy
Гибкость и адаптивность
 не заложена

                                  11/24
Анатомия Бага




                12/24
Анатомия Бага: Роли
 Контроллер/QA


                            Инициатор/Reporter




Ответственный/Assignee

                              Наблюдатели/СС

                                             13/24
Анатомия Бага
    Состояние:                   Структура:
    Status/Resolution            Classification
    Приоритет/Важность           Product
    Priority, Severity, Deadline Component

  Где и когда: Version, Target Milestone
  Текст: Summary, Comments, Whiteboard
  Тэги: Keywords, Flags

URL, Attachments,
Hours Estimated/Worked...

                          s
                  S, Vote
    latfo rm, O
  P                                         14/24
Представление: списки, OLAP-срезы, графы




                                       15/24
Журналы работ. Протоколы решения задач.

Email/RSS-оповещение




                                         16/24
Анализ локальных OLAP-кубов по Bugzilla




                                      17/24
Вики: Корпоративная CMS




                          18/24
Каждому заказчику по MediaWiki. Нам не жалко!




  Докрутка: система репликации статей между Виками.

                                                      19/24
Mediawiki: Наши «Докрутки»




А также:
  Голосования
  Массовое редактирование
  Подписки
  Репликацию
  Экспорт в офисные документы
и др.

                                            20/24
Bonsai: Древо Кода




                     21/24
Альтернативы? — Пожалуйста!
Open-source комплекты (трекер+вики+SCM):
●   Trac: http://trac.edgewall.org/
●   Redmine: http://www.redmine.org/
●   CVSTrac: http://cvstrac.org/
●   RoundUp: http://roundup.sourceforge.net/
Аналоги по отдельности — не перечислить за час.
«Нановариант» для «микрокоманд»
  (распределенные команды из 2-3х человек):
Google Docs+Google Spreadsheets + Google Code/Freepository


                Да,мы знаем про Jira. Да, она очень хорошая.
                                                         22/24
23/24
24/24




                                                     stas@custis.ru
             на вопросы — отвечаю
Стас Фомин

                                    stas@custis.ru




                                                     stas@custis.ru
                                                     stas@custis.ru
                                                     stas@custis.ru
                                                     stas@custis.ru

                                                               http://www.custis.ru

More Related Content

Similar to Integrating Open Source Software Environments into Software Development Process

Рейтинг навыков .NET-разработчика
Рейтинг навыков .NET-разработчикаРейтинг навыков .NET-разработчика
Рейтинг навыков .NET-разработчикаSkillsWiki
 
Рейтинг навыков .NET-разработчика
Рейтинг навыков .NET-разработчикаРейтинг навыков .NET-разработчика
Рейтинг навыков .NET-разработчикаgeekfamilyrussia
 
Methodologies and technologies used in Ukrainian IT companies
Methodologies and technologies used in Ukrainian IT companiesMethodologies and technologies used in Ukrainian IT companies
Methodologies and technologies used in Ukrainian IT companiesAlex Turevski
 
Техники аналитика - CATWOE, H-METHOD, MOSCOW, SQUARE
Техники аналитика - CATWOE, H-METHOD, MOSCOW, SQUAREТехники аналитика - CATWOE, H-METHOD, MOSCOW, SQUARE
Техники аналитика - CATWOE, H-METHOD, MOSCOW, SQUARESQALab
 
SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии
SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерииSECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии
SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерииSECON
 
Sqadays 2010 burmistrov_fomin_20101120(2)
Sqadays 2010 burmistrov_fomin_20101120(2)Sqadays 2010 burmistrov_fomin_20101120(2)
Sqadays 2010 burmistrov_fomin_20101120(2)Alexei Lupan
 
Тьюториал "Введение в системную инженерию" (14 января 2013)
Тьюториал "Введение в системную инженерию" (14 января 2013)Тьюториал "Введение в системную инженерию" (14 января 2013)
Тьюториал "Введение в системную инженерию" (14 января 2013)Anatoly Levenchuk
 
Кризисное управление проектами: проблемы, компромиссы, решения
Кризисное управление проектами: проблемы, компромиссы, решенияКризисное управление проектами: проблемы, компромиссы, решения
Кризисное управление проектами: проблемы, компромиссы, решенияSQALab
 
раубичи ронд
раубичи рондраубичи ронд
раубичи рондzolik
 
Без единого разрыва: горящие IT­сервисы и механизмы их тушения
Без единого разрыва: горящие IT­сервисы и механизмы их тушенияБез единого разрыва: горящие IT­сервисы и механизмы их тушения
Без единого разрыва: горящие IT­сервисы и механизмы их тушенияEDS Systems
 
WordPress как фреймворк для создания сложных систем
WordPress как фреймворк для создания сложных системWordPress как фреймворк для создания сложных систем
WordPress как фреймворк для создания сложных системAnatoly Yumashev
 
Решения Lement Pro - Партнёрское обучение
Решения Lement Pro - Партнёрское обучениеРешения Lement Pro - Партнёрское обучение
Решения Lement Pro - Партнёрское обучениеAlexey Abramov
 
Стандартизация форматов семантических данных (машиностроение)
Стандартизация форматов семантических данных (машиностроение)Стандартизация форматов семантических данных (машиностроение)
Стандартизация форматов семантических данных (машиностроение)Anatoly Levenchuk
 
Как сделать наши проекты немного более управляемыми с Agile
Как сделать наши проекты немного более управляемыми с AgileКак сделать наши проекты немного более управляемыми с Agile
Как сделать наши проекты немного более управляемыми с AgileAlexey Krivitsky
 
5 alina petrenko - key requirements elicitation during the first contact wi...
5   alina petrenko - key requirements elicitation during the first contact wi...5   alina petrenko - key requirements elicitation during the first contact wi...
5 alina petrenko - key requirements elicitation during the first contact wi...Ievgenii Katsan
 
12 методо и проблемо ориентированное по, информационные системы, гис
12 методо и проблемо ориентированное по, информационные системы, гис12 методо и проблемо ориентированное по, информационные системы, гис
12 методо и проблемо ориентированное по, информационные системы, гисSergey Lomakin
 
Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Ontico
 
Как вести 5, 10, 20 проектов и все контролировать
Как вести 5, 10, 20 проектов и все контролироватьКак вести 5, 10, 20 проектов и все контролировать
Как вести 5, 10, 20 проектов и все контролироватьActionspace
 
Разработка веб-сервисов осень 2013 лекция 9
Разработка веб-сервисов осень 2013 лекция 9Разработка веб-сервисов осень 2013 лекция 9
Разработка веб-сервисов осень 2013 лекция 9Technopark
 
Lviv PMDay 2016 S Андрій Мандріка: "Шлях Product Owner`a. Від факапів до успі...
Lviv PMDay 2016 S Андрій Мандріка: "Шлях Product Owner`a. Від факапів до успі...Lviv PMDay 2016 S Андрій Мандріка: "Шлях Product Owner`a. Від факапів до успі...
Lviv PMDay 2016 S Андрій Мандріка: "Шлях Product Owner`a. Від факапів до успі...Lviv Startup Club
 

Similar to Integrating Open Source Software Environments into Software Development Process (20)

Рейтинг навыков .NET-разработчика
Рейтинг навыков .NET-разработчикаРейтинг навыков .NET-разработчика
Рейтинг навыков .NET-разработчика
 
Рейтинг навыков .NET-разработчика
Рейтинг навыков .NET-разработчикаРейтинг навыков .NET-разработчика
Рейтинг навыков .NET-разработчика
 
Methodologies and technologies used in Ukrainian IT companies
Methodologies and technologies used in Ukrainian IT companiesMethodologies and technologies used in Ukrainian IT companies
Methodologies and technologies used in Ukrainian IT companies
 
Техники аналитика - CATWOE, H-METHOD, MOSCOW, SQUARE
Техники аналитика - CATWOE, H-METHOD, MOSCOW, SQUAREТехники аналитика - CATWOE, H-METHOD, MOSCOW, SQUARE
Техники аналитика - CATWOE, H-METHOD, MOSCOW, SQUARE
 
SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии
SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерииSECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии
SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии
 
Sqadays 2010 burmistrov_fomin_20101120(2)
Sqadays 2010 burmistrov_fomin_20101120(2)Sqadays 2010 burmistrov_fomin_20101120(2)
Sqadays 2010 burmistrov_fomin_20101120(2)
 
Тьюториал "Введение в системную инженерию" (14 января 2013)
Тьюториал "Введение в системную инженерию" (14 января 2013)Тьюториал "Введение в системную инженерию" (14 января 2013)
Тьюториал "Введение в системную инженерию" (14 января 2013)
 
Кризисное управление проектами: проблемы, компромиссы, решения
Кризисное управление проектами: проблемы, компромиссы, решенияКризисное управление проектами: проблемы, компромиссы, решения
Кризисное управление проектами: проблемы, компромиссы, решения
 
раубичи ронд
раубичи рондраубичи ронд
раубичи ронд
 
Без единого разрыва: горящие IT­сервисы и механизмы их тушения
Без единого разрыва: горящие IT­сервисы и механизмы их тушенияБез единого разрыва: горящие IT­сервисы и механизмы их тушения
Без единого разрыва: горящие IT­сервисы и механизмы их тушения
 
WordPress как фреймворк для создания сложных систем
WordPress как фреймворк для создания сложных системWordPress как фреймворк для создания сложных систем
WordPress как фреймворк для создания сложных систем
 
Решения Lement Pro - Партнёрское обучение
Решения Lement Pro - Партнёрское обучениеРешения Lement Pro - Партнёрское обучение
Решения Lement Pro - Партнёрское обучение
 
Стандартизация форматов семантических данных (машиностроение)
Стандартизация форматов семантических данных (машиностроение)Стандартизация форматов семантических данных (машиностроение)
Стандартизация форматов семантических данных (машиностроение)
 
Как сделать наши проекты немного более управляемыми с Agile
Как сделать наши проекты немного более управляемыми с AgileКак сделать наши проекты немного более управляемыми с Agile
Как сделать наши проекты немного более управляемыми с Agile
 
5 alina petrenko - key requirements elicitation during the first contact wi...
5   alina petrenko - key requirements elicitation during the first contact wi...5   alina petrenko - key requirements elicitation during the first contact wi...
5 alina petrenko - key requirements elicitation during the first contact wi...
 
12 методо и проблемо ориентированное по, информационные системы, гис
12 методо и проблемо ориентированное по, информационные системы, гис12 методо и проблемо ориентированное по, информационные системы, гис
12 методо и проблемо ориентированное по, информационные системы, гис
 
Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013
 
Как вести 5, 10, 20 проектов и все контролировать
Как вести 5, 10, 20 проектов и все контролироватьКак вести 5, 10, 20 проектов и все контролировать
Как вести 5, 10, 20 проектов и все контролировать
 
Разработка веб-сервисов осень 2013 лекция 9
Разработка веб-сервисов осень 2013 лекция 9Разработка веб-сервисов осень 2013 лекция 9
Разработка веб-сервисов осень 2013 лекция 9
 
Lviv PMDay 2016 S Андрій Мандріка: "Шлях Product Owner`a. Від факапів до успі...
Lviv PMDay 2016 S Андрій Мандріка: "Шлях Product Owner`a. Від факапів до успі...Lviv PMDay 2016 S Андрій Мандріка: "Шлях Product Owner`a. Від факапів до успі...
Lviv PMDay 2016 S Андрій Мандріка: "Шлях Product Owner`a. Від факапів до успі...
 

More from Stas Fomin

average-knapsack.beam.pdf
average-knapsack.beam.pdfaverage-knapsack.beam.pdf
average-knapsack.beam.pdfStas Fomin
 
Levenstein distance.beam
Levenstein distance.beamLevenstein distance.beam
Levenstein distance.beamStas Fomin
 
testopia-missing-link
testopia-missing-linktestopia-missing-link
testopia-missing-linkStas Fomin
 
«Собор или базар»: системы контроля версий — централизованные или распределен...
«Собор или базар»: системы контроля версий — централизованные или распределен...«Собор или базар»: системы контроля версий — централизованные или распределен...
«Собор или базар»: системы контроля версий — централизованные или распределен...Stas Fomin
 
Какой у вас Agile: свежевыжатый или порошковый?
Какой у вас Agile: свежевыжатый или порошковый?Какой у вас Agile: свежевыжатый или порошковый?
Какой у вас Agile: свежевыжатый или порошковый?Stas Fomin
 
Mindmaps: история и идеология
Mindmaps: история и идеологияMindmaps: история и идеология
Mindmaps: история и идеологияStas Fomin
 
Введение в Subversion
Введение в SubversionВведение в Subversion
Введение в SubversionStas Fomin
 
Randomized Complexity
Randomized ComplexityRandomized Complexity
Randomized ComplexityStas Fomin
 
P Reducibility And Npc
P Reducibility And NpcP Reducibility And Npc
P Reducibility And NpcStas Fomin
 
Probabilistically Checkable Proofs
Probabilistically Checkable ProofsProbabilistically Checkable Proofs
Probabilistically Checkable ProofsStas Fomin
 
Obfuscation Curstate Review
Obfuscation Curstate ReviewObfuscation Curstate Review
Obfuscation Curstate ReviewStas Fomin
 
Maximal Independent Set
Maximal Independent SetMaximal Independent Set
Maximal Independent SetStas Fomin
 
Intro And Samples
Intro And SamplesIntro And Samples
Intro And SamplesStas Fomin
 
Greedy Knapsack
Greedy KnapsackGreedy Knapsack
Greedy KnapsackStas Fomin
 
Greedy Covering Almost Ok
Greedy Covering Almost OkGreedy Covering Almost Ok
Greedy Covering Almost OkStas Fomin
 
Greedy Covering
Greedy CoveringGreedy Covering
Greedy CoveringStas Fomin
 
Dynamic Programming Knapsack
Dynamic Programming KnapsackDynamic Programming Knapsack
Dynamic Programming KnapsackStas Fomin
 
Randomized Rounding
Randomized RoundingRandomized Rounding
Randomized RoundingStas Fomin
 

More from Stas Fomin (20)

average-knapsack.beam.pdf
average-knapsack.beam.pdfaverage-knapsack.beam.pdf
average-knapsack.beam.pdf
 
Levenstein distance.beam
Levenstein distance.beamLevenstein distance.beam
Levenstein distance.beam
 
testopia-missing-link
testopia-missing-linktestopia-missing-link
testopia-missing-link
 
«Собор или базар»: системы контроля версий — централизованные или распределен...
«Собор или базар»: системы контроля версий — централизованные или распределен...«Собор или базар»: системы контроля версий — централизованные или распределен...
«Собор или базар»: системы контроля версий — централизованные или распределен...
 
Какой у вас Agile: свежевыжатый или порошковый?
Какой у вас Agile: свежевыжатый или порошковый?Какой у вас Agile: свежевыжатый или порошковый?
Какой у вас Agile: свежевыжатый или порошковый?
 
Mindmaps: история и идеология
Mindmaps: история и идеологияMindmaps: история и идеология
Mindmaps: история и идеология
 
Введение в Subversion
Введение в SubversionВведение в Subversion
Введение в Subversion
 
Randomized Complexity
Randomized ComplexityRandomized Complexity
Randomized Complexity
 
Ptas Knapsack
Ptas KnapsackPtas Knapsack
Ptas Knapsack
 
P Reducibility And Npc
P Reducibility And NpcP Reducibility And Npc
P Reducibility And Npc
 
Probabilistically Checkable Proofs
Probabilistically Checkable ProofsProbabilistically Checkable Proofs
Probabilistically Checkable Proofs
 
Obfuscation Curstate Review
Obfuscation Curstate ReviewObfuscation Curstate Review
Obfuscation Curstate Review
 
Maximal Independent Set
Maximal Independent SetMaximal Independent Set
Maximal Independent Set
 
Intro Erevan
Intro ErevanIntro Erevan
Intro Erevan
 
Intro And Samples
Intro And SamplesIntro And Samples
Intro And Samples
 
Greedy Knapsack
Greedy KnapsackGreedy Knapsack
Greedy Knapsack
 
Greedy Covering Almost Ok
Greedy Covering Almost OkGreedy Covering Almost Ok
Greedy Covering Almost Ok
 
Greedy Covering
Greedy CoveringGreedy Covering
Greedy Covering
 
Dynamic Programming Knapsack
Dynamic Programming KnapsackDynamic Programming Knapsack
Dynamic Programming Knapsack
 
Randomized Rounding
Randomized RoundingRandomized Rounding
Randomized Rounding
 

Integrating Open Source Software Environments into Software Development Process

  • 1. Стас Фомин Integrating Open Source Software Environments into Software Development Process Интеграция Open-Source систем для процесса разработки ПО 1/24
  • 2. Проблемы общие для отрасли ● управление изменениями change management ● конфигурационное управление Software Configuration Management ● проектное управление и коммуникации project management and workflows ● регистрация ошибок и проблем defect and issue tracking ● управление знаниями knowledge management 2/24
  • 3. Решений много. Возможно слишком. Что выбрать? Что из этого важно? Что неважно? Сколько обьектов, ролей, функций, процессов, обязательных практик... Согласятся ли коллеги? Слишком сильная декомпозиция, все зарегулировано.... А может придумать своё? YAUP? Yet Another Unified Process? Как это автоматизировать? Обойтись маркерной доской и стикерами? Купить единую систему учета всего? Или обойтись офисными документами и таблицами? 3/24
  • 4. Никто не любит бюрократию ➢ Никто не любит заполнять отчеты ➢ Программисты — особенно ➢ Сильные программисты — еще сильней ...и да, у нас  — сильные программисты... dilbertru.blogspot.com 4/24
  • 5. Денег жалко. Их даже может не хватать. Особенно молодым, небольшим, и развивающимся командам. Польза от софта неочевидна, по сравнению с железом, жилплощадью, одеждой, едой... 5/24
  • 7. Обьекты управления: наш взгляд Ошибки Запросы Проблемы Ошибки у заказчика Требования Запросы на доработку Задачи Ошибки в коде Знания Артефакты Технологии Регламенты Программный код Инструкции Постановки задач Документация Что такое M4? Как верстать в LaTeX? Сборки Что значит ошибка 0x800ea? Дистрибутивы Где лежит сахар и ключи от офиса? Бинарные ресурсы Кому положена оплата за телефон? 7/24
  • 8. Эволюционный open-source минимализм ● 1998—2001: – CVS, – SGML Docbook, XML/XHTML, – Email ● 2002: + Bugzilla: управление проблемами ● 2004: + Mediawiki: управление знаниями ● 2005: + Bonsai: Древо Кода ● 2007: + Subversion: Система контроля версий 8/24
  • 9. Минимальное Покрытие Проблем Решениями Проблемы Знания Артефакты 9/24
  • 10. Bugzilla: управление проблемами ● разработка «The Mozilla Organization» ● система учета/контроля/регистрации ● ошибок/инцидентов/требований/идей/дел/задач Баг («Bug»): задание, запрос, рекламация, или просто сообщение, требующее обратной связи. Назначение: регистрация и предоставление интересантам целостной информации о багах. Интерфейсы: редактирования, запроса и поиска, почтовое и RSS-оповещение. 10/24
  • 11. Bugzilla: управление проблемами Общеизвестна Развитая система прав Массовые правки Интерфейс не очень sexy Гибкость и адаптивность не заложена 11/24
  • 13. Анатомия Бага: Роли Контроллер/QA Инициатор/Reporter Ответственный/Assignee Наблюдатели/СС 13/24
  • 14. Анатомия Бага Состояние: Структура: Status/Resolution Classification Приоритет/Важность Product Priority, Severity, Deadline Component Где и когда: Version, Target Milestone Текст: Summary, Comments, Whiteboard Тэги: Keywords, Flags URL, Attachments, Hours Estimated/Worked... s S, Vote latfo rm, O P 14/24
  • 16. Журналы работ. Протоколы решения задач. Email/RSS-оповещение 16/24
  • 19. Каждому заказчику по MediaWiki. Нам не жалко! Докрутка: система репликации статей между Виками. 19/24
  • 20. Mediawiki: Наши «Докрутки» А также: Голосования Массовое редактирование Подписки Репликацию Экспорт в офисные документы и др. 20/24
  • 22. Альтернативы? — Пожалуйста! Open-source комплекты (трекер+вики+SCM): ● Trac: http://trac.edgewall.org/ ● Redmine: http://www.redmine.org/ ● CVSTrac: http://cvstrac.org/ ● RoundUp: http://roundup.sourceforge.net/ Аналоги по отдельности — не перечислить за час. «Нановариант» для «микрокоманд» (распределенные команды из 2-3х человек): Google Docs+Google Spreadsheets + Google Code/Freepository Да,мы знаем про Jira. Да, она очень хорошая. 22/24
  • 23. 23/24
  • 24. 24/24 stas@custis.ru на вопросы — отвечаю Стас Фомин stas@custis.ru stas@custis.ru stas@custis.ru stas@custis.ru stas@custis.ru http://www.custis.ru