SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Разработка ПО
 Введение в специальность

                  Павел Егоров
                    @xoposhiy
                  pe@kontur.ru
Радости профессии
https://twitter.com
Задачи любой сложности!
Алгебра
    ТеорВер
       МатСтат
           МетВыч
              ДифУры
                  …
                       …
                           …
Работа
Печали профессии
        Точность и безошибочность

                       задачи   сверху

                эта страшная   отладка
Начать легко!
На сколько сложным должен быть
                язык программирования?
      Теорема
           о структурном программировании


                             if
                            while
                                “;”
Не все так просто…
20-30% всех IT-проектов проваливаются!
              http://www.ambysoft.com/surveys/success2011.html




  Чем больше система, тем выше риск


      15—50 ошибок на 1000 строк кода
                    Стив Макконнелл «Совершенный код»
66.ru переписан с нуля трижды
          за 5 лет существования
                    Евгений Островский




            JetStyle трижды делал
                 с нуля «ПО для рабочих групп»
                                              Алексей Кулаков




                    * Согласно докладам с конференции FailConf.ru
Иногда «приходится бежать со всех ног,
         чтобы только остаться на том же месте!»

Такие проекты невозможно
                   переписать с нуля
Деградация
         Robert Martin. Clean code
«Со временем продукт становится
     все менее структурированным,
     если только с этим специально
     не бороться»
                            Lehman Law
Деградация
         Robert Martin. Clean code
Откуда берется
  сложность?
Проклятье низкого порога вхождения

   так заманчиво сразу бежать кодить!
~N
   2



Больше кода — больше зависимостей!
Разработка ПО — командная игра

  Year    Operating System     SLOC (Million)   Team size

  1993   Windows NT 3.1              4            340

  1994   Windows NT 3.5              7            530

  1996   Windows NT 4.0              11           1500

  2000   Windows 2000               30           3100
  2001   Windows XP                 45          4000
  2003   Windows Server 2003       50           4400
Как лечить?
                      Проводить разведку
                      требования, прототипирование
                      опросы, тестирование

        Проектировать
        декомпозиция на модули, потенциальные изменения


    Держать код в порядке

Улучшать командное взаимодействие
Вопросы?




                @xoposhiy
              pe@kontur.ru
  http://vk.com/kontur_edu

Weitere ähnliche Inhalte

Ähnlich wie Разработка ПО. Введение в специальность 1

2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
HappyDev
 
Денис Чернилевский - Вы кто вообще такие
Денис Чернилевский - Вы кто вообще такиеДенис Чернилевский - Вы кто вообще такие
Денис Чернилевский - Вы кто вообще такие
Yandex
 
ZFConf 2011: Как может помочь среда разработки при написании приложения на Ze...
ZFConf 2011: Как может помочь среда разработки при написании приложения на Ze...ZFConf 2011: Как может помочь среда разработки при написании приложения на Ze...
ZFConf 2011: Как может помочь среда разработки при написании приложения на Ze...
ZFConf Conference
 
Андрей Лабунец. Механизмы трассировки
Андрей Лабунец. Механизмы трассировкиАндрей Лабунец. Механизмы трассировки
Андрей Лабунец. Механизмы трассировки
LiloSEA
 

Ähnlich wie Разработка ПО. Введение в специальность 1 (20)

Можно ли писать автотесты на родном языке?
Можно ли писать автотесты на родном языке?Можно ли писать автотесты на родном языке?
Можно ли писать автотесты на родном языке?
 
Фишки и прелести TypeScript
Фишки и прелести TypeScriptФишки и прелести TypeScript
Фишки и прелести TypeScript
 
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
 
Олег Антонян
Олег АнтонянОлег Антонян
Олег Антонян
 
Денис Чернилевский - Вы кто вообще такие
Денис Чернилевский - Вы кто вообще такиеДенис Чернилевский - Вы кто вообще такие
Денис Чернилевский - Вы кто вообще такие
 
Инженерия Хаоса или научите меня геймдеву
Инженерия Хаоса или научите меня геймдевуИнженерия Хаоса или научите меня геймдеву
Инженерия Хаоса или научите меня геймдеву
 
Читабельные отчеты для автоматизации на C# / Gallio / BDDfy
Читабельные отчеты для автоматизации на C# / Gallio / BDDfyЧитабельные отчеты для автоматизации на C# / Gallio / BDDfy
Читабельные отчеты для автоматизации на C# / Gallio / BDDfy
 
Как жить в согласии с SOLID?
Как жить в согласии с SOLID?Как жить в согласии с SOLID?
Как жить в согласии с SOLID?
 
ZFConf 2011: Как может помочь среда разработки при написании приложения на Ze...
ZFConf 2011: Как может помочь среда разработки при написании приложения на Ze...ZFConf 2011: Как может помочь среда разработки при написании приложения на Ze...
ZFConf 2011: Как может помочь среда разработки при написании приложения на Ze...
 
о неудачах майкрософт и не только 2
о неудачах майкрософт и не только   2о неудачах майкрософт и не только   2
о неудачах майкрософт и не только 2
 
Особенности веба
Особенности вебаОсобенности веба
Особенности веба
 
Андрей Лабунец. Механизмы трассировки
Андрей Лабунец. Механизмы трассировкиАндрей Лабунец. Механизмы трассировки
Андрей Лабунец. Механизмы трассировки
 
Cценарий ролика EDISON
Cценарий ролика EDISONCценарий ролика EDISON
Cценарий ролика EDISON
 
04 HappyDev-lite-2015 autumn. Евгений Тюменцев. Программирование глазами мате...
04 HappyDev-lite-2015 autumn. Евгений Тюменцев. Программирование глазами мате...04 HappyDev-lite-2015 autumn. Евгений Тюменцев. Программирование глазами мате...
04 HappyDev-lite-2015 autumn. Евгений Тюменцев. Программирование глазами мате...
 
Восток — дело тонкое, или Уязвимости медицинского и индустриального ПО
Восток — дело тонкое, или Уязвимости медицинского и индустриального ПОВосток — дело тонкое, или Уязвимости медицинского и индустриального ПО
Восток — дело тонкое, или Уязвимости медицинского и индустриального ПО
 
Maybe some mock_true
Maybe some mock_trueMaybe some mock_true
Maybe some mock_true
 
игровая логика, проблемы и решения
игровая логика, проблемы и решенияигровая логика, проблемы и решения
игровая логика, проблемы и решения
 
К стратегической сессии по будущему интернета
К стратегической сессии по будущему интернетаК стратегической сессии по будущему интернета
К стратегической сессии по будущему интернета
 
Охота на угрозы на BIS summit 2016
Охота на угрозы на BIS summit 2016Охота на угрозы на BIS summit 2016
Охота на угрозы на BIS summit 2016
 
SECON'2016. Лексунин Евгений, Как не запутаться в веб-разработке
SECON'2016. Лексунин Евгений, Как не запутаться в веб-разработкеSECON'2016. Лексунин Евгений, Как не запутаться в веб-разработке
SECON'2016. Лексунин Евгений, Как не запутаться в веб-разработке
 

Mehr von Pavel Egorov

Code retreat @ крешкурс2013
Code retreat @ крешкурс2013Code retreat @ крешкурс2013
Code retreat @ крешкурс2013
Pavel Egorov
 
Software Engineering. Введение в специальность. Что дальше?
Software Engineering. Введение в специальность. Что дальше?Software Engineering. Введение в специальность. Что дальше?
Software Engineering. Введение в специальность. Что дальше?
Pavel Egorov
 
Software engineering. Введение в специальность. Проектирование, требования
Software engineering. Введение в специальность. Проектирование, требованияSoftware engineering. Введение в специальность. Проектирование, требования
Software engineering. Введение в специальность. Проектирование, требования
Pavel Egorov
 
Машинное обучение (Открытый семинар по средам)
Машинное обучение (Открытый семинар по средам)Машинное обучение (Открытый семинар по средам)
Машинное обучение (Открытый семинар по средам)
Pavel Egorov
 

Mehr von Pavel Egorov (13)

Git basics
Git basicsGit basics
Git basics
 
Интеллект-карты для конспектирования
Интеллект-карты для конспектированияИнтеллект-карты для конспектирования
Интеллект-карты для конспектирования
 
Мастер класс по алгоритмам. Часть 1
Мастер класс по алгоритмам. Часть 1Мастер класс по алгоритмам. Часть 1
Мастер класс по алгоритмам. Часть 1
 
Мастер класс по алгоритмам. Часть 2
Мастер класс по алгоритмам. Часть 2Мастер класс по алгоритмам. Часть 2
Мастер класс по алгоритмам. Часть 2
 
Code retreat @ крешкурс2013
Code retreat @ крешкурс2013Code retreat @ крешкурс2013
Code retreat @ крешкурс2013
 
Software Engineering. Введение в специальность. Что дальше?
Software Engineering. Введение в специальность. Что дальше?Software Engineering. Введение в специальность. Что дальше?
Software Engineering. Введение в специальность. Что дальше?
 
Software engineering. Введение в специальность. Проектирование, требования
Software engineering. Введение в специальность. Проектирование, требованияSoftware engineering. Введение в специальность. Проектирование, требования
Software engineering. Введение в специальность. Проектирование, требования
 
Машинное обучение (Открытый семинар по средам)
Машинное обучение (Открытый семинар по средам)Машинное обучение (Открытый семинар по средам)
Машинное обучение (Открытый семинар по средам)
 
Cистема подготовки разработчиков @ CoIT
Cистема подготовки разработчиков @ CoITCистема подготовки разработчиков @ CoIT
Cистема подготовки разработчиков @ CoIT
 
AI challenge 2011
AI challenge 2011AI challenge 2011
AI challenge 2011
 
Highload: специализированные высокопроизводительные индексы
Highload: специализированные высокопроизводительные индексыHighload: специализированные высокопроизводительные индексы
Highload: специализированные высокопроизводительные индексы
 
Highload в контуре @ DUMP 2011
Highload в контуре @ DUMP 2011Highload в контуре @ DUMP 2011
Highload в контуре @ DUMP 2011
 
Основы Di контейнеров
Основы Di контейнеровОсновы Di контейнеров
Основы Di контейнеров
 

Разработка ПО. Введение в специальность 1