SlideShare une entreprise Scribd logo
1  sur  27
Импотека или как перестать
залезать в долги
версия 2.0
18+
@maxbeard12
О себе
Шульга Максим
9 лет в погонах
14 лет разрабатываю софт
Руководитель разработки
“Код Безопасности”
http://maxshulga.ru
@maxbeard
Поговорим о чем мы
• Парадокс технического долга
• Виды долгов в работе разработчика
• Как с ними бороться?
• Итого
@maxbeard12
Технический долг
@maxbeard12
Что это такое?
Технический долг
Разница между идеальным техническим
решением и тем решением, которое
принимается сейчас
К долгу относится только реализация:
“КАК” сделано, а не “Что”
@maxbeard12
Технический долг
Разница между идеальным техническим
решением и тем решением, которое
принимается сейчас
К долгу относится только реализация:
“КАК” сделано, а не “Что”
=> ДОЛГ РЕАЛИЗАЦИИ
@maxbeard12
Долг реализации
• неверные архитектурные решения
• “костыли” - “временные” решения
• невозможность рефакторинга
@maxbeard12
Долг реализации
@maxbeard12
Долг реализации
@maxbeard12
@maxbeard12
Долг реализации (бороться как?)
Долг реализации (бороться как?)
“***ь, чтоб дебажить эту судорожную сраку так время есть, а
чтобы рефакторить нету” (с)
Что будем делать?
@maxbeard12
Долг реализации (бороться как?)
“***ь, чтоб дебажить эту судорожную сраку так время есть, а
чтобы рефакторить нету” (с)
Что будем делать?
@maxbeard12
Долг реализации (бороться как?)
“***ь, чтоб дебажить эту судорожную сраку так время есть, а
чтобы рефакторить нету” (с)
• архитектура: баланс между “продумали” и
“перемудрили”
• “костыли” - только так, чтобы легко исправить в
будущем и с фиксацией долга
• РЕФАКТОРИНГ с умом
@maxbeard12
Долг реализации (бороться как?)
http://blog.crisp.se/2013/10/11/henrikkniberg/good-and-bad-
technical-debt
@maxbeard12
Долг реализации (бороться как?)
А что делать, если у меня legacy код?
@maxbeard12
Долг реализации (бороться как?)
А что делать, если у меня legacy код?
@maxbeard12
Долг реализации (бороться как?)
А что делать, если у меня legacy код?
@maxbeard12
Долг реализации (бороться как?)
А что делать, если у меня legacy код?
Презентация про legacy
http://www.youtube.com/watch?v=YruzQgWdv48
@maxbeard12
Технологический долг
Отказ от применения новшеств в
языках, фреймворках,
инструментах
• С++11
• boost
• IDE
• свои “велосипеды”
@maxbeard12
“Почему программисты часто изобретают велосипед?
Потому что текущий велосипед уже не велосипед, а
астролябия для трёхлапых енотов” (с)
Технологический долг (бороться как?)
• Проще убедить применять то, в чем разбираешься ты
• Другие языки изучай ты - расширяй кругозор свой
@maxbeard12
Процессный долг
• Continuous Integration
• Ревью кода
• Статический анализ
• Автотесты
• Гибче, еще гибче :)
@maxbeard12
Отказ или затягивание принятия решений по применению
правильных инженерных практик:
Процессный долг (бороться как?)
@maxbeard12
Просто берем и делаем:
• Continuous Integration
• Ревью кода
• Статический анализ
• Автотесты
• Гибче, еще гибче :)
Долг компетенции
Что такое?
@maxbeard12
Долг компетенции
Возникает из-за узкоспециализированной
разработки, когда в команде есть
человек(и) с уникальными знаниями
Усугубляется отсутствием обмена
знаниями
@maxbeard12
Долг компетенции (бороться как?)
• Больше общаемся
• Меняемся задачами
• Ревью кода
• Парное программирование
@maxbeard12
А что в итоге?
Технический долг:
• долг реализации
• технологический долг
• процессный долг
• долг компетенции
Кругом долги, как страшно жить :)
Бери да помни:
не штука занять, а штука отдать (с)
@maxbeard12
Спасибо! Вопросы?
Шульга Максим
maxim.shulga@mail.ru
@maxbeard12
http://maxshulga.ru
http://bit.ly/Tech_Debt

Contenu connexe

En vedette

XP Days Ukraine 2014 - Refactoring legacy code
XP Days Ukraine 2014 - Refactoring legacy codeXP Days Ukraine 2014 - Refactoring legacy code
XP Days Ukraine 2014 - Refactoring legacy codeDmytro Mindra
 
XPDays Ukraine: Legacy
XPDays Ukraine: LegacyXPDays Ukraine: Legacy
XPDays Ukraine: LegacyVictor_Cr
 
Club of anonimous developers "Refactoring: Legacy code"
Club of anonimous developers "Refactoring: Legacy code"Club of anonimous developers "Refactoring: Legacy code"
Club of anonimous developers "Refactoring: Legacy code"Victor_Cr
 
Legacy: как победить в гонке (Joker)
Legacy: как победить в гонке (Joker)Legacy: как победить в гонке (Joker)
Legacy: как победить в гонке (Joker)Victor_Cr
 
Working Effectively With Legacy Code
Working Effectively With Legacy CodeWorking Effectively With Legacy Code
Working Effectively With Legacy CodeNaresh Jain
 
Cтратегия сокращения технического долга
Cтратегия сокращения технического долгаCтратегия сокращения технического долга
Cтратегия сокращения технического долгаBoris Volfson
 
Автоматизация тестирования - это пот, кровь и слезы
Автоматизация тестирования - это пот, кровь и слезы Автоматизация тестирования - это пот, кровь и слезы
Автоматизация тестирования - это пот, кровь и слезы Maxim Shulga
 
Dealing With Legacy PHP Applications
Dealing With Legacy PHP ApplicationsDealing With Legacy PHP Applications
Dealing With Legacy PHP ApplicationsViget Labs
 
PHP 7.1 : elegance of our legacy
PHP 7.1 : elegance of our legacyPHP 7.1 : elegance of our legacy
PHP 7.1 : elegance of our legacyDamien Seguy
 
Dealing with Legacy PHP Applications
Dealing with Legacy PHP ApplicationsDealing with Legacy PHP Applications
Dealing with Legacy PHP ApplicationsClinton Dreisbach
 
Working with Legacy Code
Working with Legacy CodeWorking with Legacy Code
Working with Legacy CodeEyal Golan
 
Working Effectively With Legacy Code
Working Effectively With Legacy CodeWorking Effectively With Legacy Code
Working Effectively With Legacy Codescidept
 
FitNesse+PowerSlim on Windows
FitNesse+PowerSlim on WindowsFitNesse+PowerSlim on Windows
FitNesse+PowerSlim on WindowsMaxim Shulga
 
Transforming legacy PHP applications with Symfony2 and Varnish
Transforming legacy PHP applications with Symfony2 and VarnishTransforming legacy PHP applications with Symfony2 and Varnish
Transforming legacy PHP applications with Symfony2 and VarnishCraig Marvelley
 
Working With Legacy Code
Working With Legacy CodeWorking With Legacy Code
Working With Legacy CodeAndrea Polci
 
Pimp legacy PHP apps with Apigility - TrueNorthPHP 2014
Pimp legacy PHP apps with Apigility - TrueNorthPHP 2014Pimp legacy PHP apps with Apigility - TrueNorthPHP 2014
Pimp legacy PHP apps with Apigility - TrueNorthPHP 2014Michelangelo van Dam
 
From Legacy to DDD in PHP | Tech Talks | Privalia
From Legacy to DDD in PHP | Tech Talks | PrivaliaFrom Legacy to DDD in PHP | Tech Talks | Privalia
From Legacy to DDD in PHP | Tech Talks | PrivaliaJordi Vila Gallardo
 
Living With Legacy Code
Living With Legacy CodeLiving With Legacy Code
Living With Legacy CodeRowan Merewood
 
Технический долг: взгляд и действия со стороны QA / QC&AT
Технический долг: взгляд и действия со стороны QA / QC&ATТехнический долг: взгляд и действия со стороны QA / QC&AT
Технический долг: взгляд и действия со стороны QA / QC&ATCodeFest
 

En vedette (20)

XP Days Ukraine 2014 - Refactoring legacy code
XP Days Ukraine 2014 - Refactoring legacy codeXP Days Ukraine 2014 - Refactoring legacy code
XP Days Ukraine 2014 - Refactoring legacy code
 
XPDays Ukraine: Legacy
XPDays Ukraine: LegacyXPDays Ukraine: Legacy
XPDays Ukraine: Legacy
 
Club of anonimous developers "Refactoring: Legacy code"
Club of anonimous developers "Refactoring: Legacy code"Club of anonimous developers "Refactoring: Legacy code"
Club of anonimous developers "Refactoring: Legacy code"
 
Legacy: как победить в гонке (Joker)
Legacy: как победить в гонке (Joker)Legacy: как победить в гонке (Joker)
Legacy: как победить в гонке (Joker)
 
Working Effectively With Legacy Code
Working Effectively With Legacy CodeWorking Effectively With Legacy Code
Working Effectively With Legacy Code
 
Legacy vs Agile Team
Legacy vs Agile TeamLegacy vs Agile Team
Legacy vs Agile Team
 
Cтратегия сокращения технического долга
Cтратегия сокращения технического долгаCтратегия сокращения технического долга
Cтратегия сокращения технического долга
 
Автоматизация тестирования - это пот, кровь и слезы
Автоматизация тестирования - это пот, кровь и слезы Автоматизация тестирования - это пот, кровь и слезы
Автоматизация тестирования - это пот, кровь и слезы
 
Dealing With Legacy PHP Applications
Dealing With Legacy PHP ApplicationsDealing With Legacy PHP Applications
Dealing With Legacy PHP Applications
 
PHP 7.1 : elegance of our legacy
PHP 7.1 : elegance of our legacyPHP 7.1 : elegance of our legacy
PHP 7.1 : elegance of our legacy
 
Dealing with Legacy PHP Applications
Dealing with Legacy PHP ApplicationsDealing with Legacy PHP Applications
Dealing with Legacy PHP Applications
 
Working with Legacy Code
Working with Legacy CodeWorking with Legacy Code
Working with Legacy Code
 
Working Effectively With Legacy Code
Working Effectively With Legacy CodeWorking Effectively With Legacy Code
Working Effectively With Legacy Code
 
FitNesse+PowerSlim on Windows
FitNesse+PowerSlim on WindowsFitNesse+PowerSlim on Windows
FitNesse+PowerSlim on Windows
 
Transforming legacy PHP applications with Symfony2 and Varnish
Transforming legacy PHP applications with Symfony2 and VarnishTransforming legacy PHP applications with Symfony2 and Varnish
Transforming legacy PHP applications with Symfony2 and Varnish
 
Working With Legacy Code
Working With Legacy CodeWorking With Legacy Code
Working With Legacy Code
 
Pimp legacy PHP apps with Apigility - TrueNorthPHP 2014
Pimp legacy PHP apps with Apigility - TrueNorthPHP 2014Pimp legacy PHP apps with Apigility - TrueNorthPHP 2014
Pimp legacy PHP apps with Apigility - TrueNorthPHP 2014
 
From Legacy to DDD in PHP | Tech Talks | Privalia
From Legacy to DDD in PHP | Tech Talks | PrivaliaFrom Legacy to DDD in PHP | Tech Talks | Privalia
From Legacy to DDD in PHP | Tech Talks | Privalia
 
Living With Legacy Code
Living With Legacy CodeLiving With Legacy Code
Living With Legacy Code
 
Технический долг: взгляд и действия со стороны QA / QC&AT
Технический долг: взгляд и действия со стороны QA / QC&ATТехнический долг: взгляд и действия со стороны QA / QC&AT
Технический долг: взгляд и действия со стороны QA / QC&AT
 

Similaire à ITGM#4 Технический долг 2.0

Bit byte 2014 как перестать залезать в долги
Bit byte 2014 как перестать залезать в долгиBit byte 2014 как перестать залезать в долги
Bit byte 2014 как перестать залезать в долгиMaxim Shulga
 
"Dealing with legacy code"
"Dealing with legacy code""Dealing with legacy code"
"Dealing with legacy code"HYS Enterprise
 
"Этот код плохой, его нужно переписать". Слышали? Как обосновать
"Этот код плохой, его нужно переписать". Слышали? Как обосновать"Этот код плохой, его нужно переписать". Слышали? Как обосновать
"Этот код плохой, его нужно переписать". Слышали? Как обосноватьMaksym Bezuglyi
 
Хто створює програмне забезпечення? Огляд сучасних ІТ-професІй
Хто створює програмне забезпечення? Огляд сучасних ІТ-професІйХто створює програмне забезпечення? Огляд сучасних ІТ-професІй
Хто створює програмне забезпечення? Огляд сучасних ІТ-професІйLutskITCluster
 
От заката до рассвета | Максим Безуглый | Zlit Tech
От заката до рассвета | Максим Безуглый | Zlit TechОт заката до рассвета | Максим Безуглый | Zlit Tech
От заката до рассвета | Максим Безуглый | Zlit TechZlit
 
В.Денисенков Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...
В.Денисенков   Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...В.Денисенков   Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...
В.Денисенков Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...borovoystudio
 
В.Денисенков - Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...
В.Денисенков - Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...В.Денисенков - Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...
В.Денисенков - Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...borovoystudio
 
Профессии в IT
Профессии в ITПрофессии в IT
Профессии в ITSam Faktorovich
 
Daemons In Web on #devrus
Daemons In Web on #devrusDaemons In Web on #devrus
Daemons In Web on #devrusAlex Chistyakov
 
День ADV на Russian Digital Week: Масштабирование решений - проекты, которые ...
День ADV на Russian Digital Week: Масштабирование решений - проекты, которые ...День ADV на Russian Digital Week: Масштабирование решений - проекты, которые ...
День ADV на Russian Digital Week: Масштабирование решений - проекты, которые ...ADV/web-engineering
 
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...Tech Talks @NSU
 
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...DevOps_Fest
 
разработка собственной Agile методологии для управления крупными проектами
разработка собственной Agile методологии для управления крупными проектамиразработка собственной Agile методологии для управления крупными проектами
разработка собственной Agile методологии для управления крупными проектамиSQALab
 
CodeFest 2011. Макаров А. — Как разрабатывается Yii
CodeFest 2011. Макаров А. — Как разрабатывается YiiCodeFest 2011. Макаров А. — Как разрабатывается Yii
CodeFest 2011. Макаров А. — Как разрабатывается YiiCodeFest
 
IT CAMPUS. How to Stop Worrying and Clear Your Technical Debt [RUS]
IT CAMPUS. How to Stop Worrying and Clear Your Technical Debt [RUS]IT CAMPUS. How to Stop Worrying and Clear Your Technical Debt [RUS]
IT CAMPUS. How to Stop Worrying and Clear Your Technical Debt [RUS]Alex V. Petrov
 
Как не стать заложником одной платформы (MBLTdev)
Как не стать заложником одной платформы (MBLTdev)Как не стать заложником одной платформы (MBLTdev)
Как не стать заложником одной платформы (MBLTdev)Алексей Панфилов
 
Как мы делаем Banki.ru
Как мы делаем Banki.ruКак мы делаем Banki.ru
Как мы делаем Banki.ruRoman Ivliev
 
Развитие Docsvision в 2012-2013 гг.
Развитие Docsvision в 2012-2013 гг.Развитие Docsvision в 2012-2013 гг.
Развитие Docsvision в 2012-2013 гг.Expolink
 
Баба Яга против!
Баба Яга против!Баба Яга против!
Баба Яга против!Roman Dvornov
 

Similaire à ITGM#4 Технический долг 2.0 (20)

Bit byte 2014 как перестать залезать в долги
Bit byte 2014 как перестать залезать в долгиBit byte 2014 как перестать залезать в долги
Bit byte 2014 как перестать залезать в долги
 
"Dealing with legacy code"
"Dealing with legacy code""Dealing with legacy code"
"Dealing with legacy code"
 
"Этот код плохой, его нужно переписать". Слышали? Как обосновать
"Этот код плохой, его нужно переписать". Слышали? Как обосновать"Этот код плохой, его нужно переписать". Слышали? Как обосновать
"Этот код плохой, его нужно переписать". Слышали? Как обосновать
 
Хто створює програмне забезпечення? Огляд сучасних ІТ-професІй
Хто створює програмне забезпечення? Огляд сучасних ІТ-професІйХто створює програмне забезпечення? Огляд сучасних ІТ-професІй
Хто створює програмне забезпечення? Огляд сучасних ІТ-професІй
 
От заката до рассвета | Максим Безуглый | Zlit Tech
От заката до рассвета | Максим Безуглый | Zlit TechОт заката до рассвета | Максим Безуглый | Zlit Tech
От заката до рассвета | Максим Безуглый | Zlit Tech
 
В.Денисенков Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...
В.Денисенков   Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...В.Денисенков   Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...
В.Денисенков Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...
 
В.Денисенков - Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...
В.Денисенков - Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...В.Денисенков - Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...
В.Денисенков - Семь раз отмерь. Все что надо знать о выборе подрядчиков, прог...
 
Профессии в IT
Профессии в ITПрофессии в IT
Профессии в IT
 
Daemons In Web on #devrus
Daemons In Web on #devrusDaemons In Web on #devrus
Daemons In Web on #devrus
 
День ADV на Russian Digital Week: Масштабирование решений - проекты, которые ...
День ADV на Russian Digital Week: Масштабирование решений - проекты, которые ...День ADV на Russian Digital Week: Масштабирование решений - проекты, которые ...
День ADV на Russian Digital Week: Масштабирование решений - проекты, которые ...
 
Как разраба
Как разрабаКак разраба
Как разраба
 
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
 
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...
 
разработка собственной Agile методологии для управления крупными проектами
разработка собственной Agile методологии для управления крупными проектамиразработка собственной Agile методологии для управления крупными проектами
разработка собственной Agile методологии для управления крупными проектами
 
CodeFest 2011. Макаров А. — Как разрабатывается Yii
CodeFest 2011. Макаров А. — Как разрабатывается YiiCodeFest 2011. Макаров А. — Как разрабатывается Yii
CodeFest 2011. Макаров А. — Как разрабатывается Yii
 
IT CAMPUS. How to Stop Worrying and Clear Your Technical Debt [RUS]
IT CAMPUS. How to Stop Worrying and Clear Your Technical Debt [RUS]IT CAMPUS. How to Stop Worrying and Clear Your Technical Debt [RUS]
IT CAMPUS. How to Stop Worrying and Clear Your Technical Debt [RUS]
 
Как не стать заложником одной платформы (MBLTdev)
Как не стать заложником одной платформы (MBLTdev)Как не стать заложником одной платформы (MBLTdev)
Как не стать заложником одной платформы (MBLTdev)
 
Как мы делаем Banki.ru
Как мы делаем Banki.ruКак мы делаем Banki.ru
Как мы делаем Banki.ru
 
Развитие Docsvision в 2012-2013 гг.
Развитие Docsvision в 2012-2013 гг.Развитие Docsvision в 2012-2013 гг.
Развитие Docsvision в 2012-2013 гг.
 
Баба Яга против!
Баба Яга против!Баба Яга против!
Баба Яга против!
 

ITGM#4 Технический долг 2.0

Notes de l'éditeur

  1. В последнее время обсуждение того, что такое технический долг и к чему он приводит постоянно идет в сообществе. Как правило, все строится вокруг того какие технические решения принимаются и почему. Для нас, людей занимающихся разработкой программных продуктов, техническим решением является и то как мы будем делать (архитектурно), и то каким языком программирования будем пользоваться, и то какие практики будут использоваться, и то как это будет тестироваться, и тд и тп. Соответственно и долги будут свои в каждой из этих областей. И поборов, хотя бы одну из них мы серьезно облегчим себе жизнь.
  2. Как это не странно, нет устоявшегося определения технического долга. Уорд Каннигем дает его расплывчато. Зато все знают, к чему этот долг приводит. Если попытаться его сформулировать, то получится следующее. Обратите внимание на КАК. К долгу не относятся те фичи, которые мы не сделали. К долгу можно отнести только то, «как» фичи были сделаны. Например, долгом может считаться несоответствие в общем то работающего UI, каким-либо руководствам, стандартам и тп.
  3. То есть получается, что мы говорим о долге реализации. Что мы под ним понимаем?
  4. К долгу реализации можно отнести то, что обычно и называют техническим долгом. Кстати картинку смастерил на основе идеи @cartmendum (М.Дорофеев) Есть идеи почему она такая? Так вот, приобрести этот долг можно и приняв неправильные архитектурные решения, и добавив "костыли" в коде, и упростив процесс тестирования оставив там только "успешные" сценарии. Сюда же добавим и невозможность рефакторить исходный код, которая вызвана отсутствием тестов, что зацикливает эту проблему и вводит в клинч, когда все больше времени требуется на добавление новых фичей, потому что постоянно умирают старые. Или наоборот "рефакторится" все направо и налево, а проверяют все это тестировщики ручками.
  5. Ассоциация: Красивая картинка – луг, коровки, красота
  6. Шаг вправо, шаг влево… ногу поставил, а вытащить стремно, понимаешь что вонять будет…
  7. Возражения вида "все равно все сделают через ж**у" плохи уже тем что что предполагают не делать вообще ничего. Надо стараться оставлять мир код после себя чище: там где чисто – стыдно мусорить. Сюда же относится и популярная теория разбитых окон: если появляется одно разбитое окно и оно не ремонтируется, то скоро много окон в здании будет разбито.
  8. ?
  9. А давайте как и раньше? 
  10. Архитектура: совет дать очень сложно. Самый напрашивающийся (и популярный) вариант: легко расширяемая, легко тестируемая и тд, и тп. А что это? И насколько это нужно будет в будущем (принципы YAGNI). Стараемся соблюдать баланс Наши горячо любимые костыли – использовать можно (ну никуда без с них). Но если используем, то только в тех местах, где они просто исправляются. Костыли недопустимы в архитектурных решениях. Фиксация этого долга обязательна (бага, задача и тп) Рефакторим только в тех частях кода, которые касаются текущих задач (особенно это касается тех, кто работает с тестировщиками)
  11. Картинки по Книбергу
  12. Предваряя возможный вопрос про legacy код. Кстати, а что это такое? Что делать? Вот как то так 
  13. Ответ очень простой
  14. На самом деле все уже давно придумано за нас. Читаем, изучаем, применяем. Метод Микадо.
  15. На самом деле все уже давно придумано за нас. Читаем, изучаем, применяем. Метод Микадо.
  16.  У меня на глазах пример использования С++, когда часто можно наблюдать осторожность (мягко говоря) во внедрении С++11, когда отказываются от использования boost'a, когда продолжают писать свои мега-крутые "велосипеды" игнорируя open-source библиотеки. Все это приводит к замедлению разработки, снижению качества и даже к снижению мотивации у людей, потому что они используют "несвежие" инструменты.
  17. Как правило эти ограничения накладываются из-за опасения того, что использование новые технологий несет риск сдвига по сроков (изучение), выявления возможных проблем и тд. Но, если нет возможности изучать это на работе, то изучай сам, приходи к начальнику и рассказывай (а главное показывай), как можно сделать круче (проще, быстрее и тд) Изучение других языков тоже помогает. Когда я возвращался к С++ после программирования на Python, я постоянно задавал себе вопрос как сделать на C++ так же круто (удобно, просто) как на питоне. Оказывается можно - boost, C++11. Получается не так изящно, но гораздо удобнее, чем голые плюсы.
  18. Время от времени встречаю команды в которых не работает ни один из этих пунктов. Отсутствие веры, желания, понимания важности этого всего приводит к тому, что эти задачи, как правило с нижайшим приоритетом, накапливаются в списке общих задач. Потому что у нас всегда есть суперсрочные и суперважные для продукта задачи. И как следствие, только для того чтобы просто понять, что свежесобранный сетап не работает, приходится тратить от 10 мин до N часов (зависит от навороченности продукта). Я не буду объяснять зачем это все надо, это тема отдельных докладов по каждому и пунктов.
  19. Тут рецепт простой: надо просто взять и сделать. Никто этого за вас делать не будет. Это ваша профессия, то, за что вы получаете деньги. Мастерство, если хотите. Особенно классно (для меня как менеджера), когда разработчики сами это делают. Я про CI много слышал, даже игрался. Но как то не пошло. Год назад в команде появился человек, который просто сказал, «а давайте я сделаю». Взял и сделал. Через месяц остальные с удовольствием подключились в игру «найди полезный плагин для Jenkins»
  20. ?
  21. Возникает из-за узкоспециализированной разработки, когда в команде есть человек(и) с уникальными знаниями. Это усугубляется отсутствием обмена знаниями или, хотя бы, обмена возникающими проблемами и принятым по ним решениям. Такое можно наблюдать в масштабе и целой компании, и даже маленькой команды. В итоге, принимаются решения заведомо неверные, которые у человека разбирающегося в вопросе вызывают дикое удивление. И это нас возвращает к долгу реализации. А если спец уходит, то вообще возникает вакуум и код, которые он суппортил, превращается в магический лабиринт из языковых инструкций, которые реализуют "нечто". К нему стараются не прикасаться без крайней необходимости, при первой же возможности к нему применяется паттерн "invented not here" и он помечается черной меткой под названием "переписать".
  22. Тут тоже ничего гениального.