Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Необходимыенавыкитехническоголидера в AgileпроектахАлександр Мартюшев«АСКОН»agile.fellow@gmail.com
АСКОН
Agile«Тяжелый» процесс
«Тяжелый» процесс- Утвержденные требования- Спецификации- Технические задания- Детальные долгосрочные планы
«Тяжелый» процесс- Утвержденные требования- Спецификации- Технические задания- Детальные долгосрочные планы               ...
«Тяжёлые» последствия          «Это невозможно»          «Это очень долго»          «Вам это не нужно»          «Мы лучше ...
«Тяжёлые» последствия          Специалист             по тому,           почему это         нельзя сделать
Agile + изменения       =
AgileТребования изменяются быстрее  Код протухает быстрее
Когда править?                 t
Исправим позже?                  t
Психология
Эксперименты75%        ???85%        ???
Посчитаем75%      98%85%      99%
Эксперименты75%    38%     ???85%    35%
Эксперименты75%    38%     10%85%    35%
Неуверенность                              СомненияНеопределенность
Теория разбитых окон
Эксперименты Рисовать на стенах  запрещено!
Эксперименты Рисовать на стенах  запрещено!
Эксперименты   33%   69%
Исправим позже? :)                 t
Итого:Не откладывайте проблемы
Проблема                     Да                                Нет                                    Есть решение?       ...
Проблема                     Да                                Нет                                    Есть решение?       ...
Итого:Не откладывайте проблемыПлан действий
Что выбрать?
Простота
S.O.L.I.DSingle ResponsibilityOpen-CloseLiskov SubstitutionInterface SegregationDependency Inversion
S.O.L.I.D        Принцип персональной           ответственности  Приложение,    Rectangle выполняющее                     ...
S.O.L.I.D       Принцип персональной          ответственности  Приложение,        GUI выполняющее     приложениегеометриче...
S.O.L.I.DПринцип открытия-закрытия  Client           Server                 <<interface>>  Client                 ClientIn...
S.O.L.I.D     Принцип открытия-закрытия      Policy                       Employee+ PolicyFunction()- ServiceFuntion()    ...
S.O.L.I.DПринцип подстановки Лисков Rectangle      void g(Rectngle r)+ GetHeight()   {+ GetWidth()      r.SetWidth(5);+ Se...
S.O.L.I.DПринцип инверсии зависимостей                      Lamp    Button          + TurnOn()                    + TurnOf...
S.O.L.I.DПринцип инверсии зависимостей   Switchable          Lamp   + TurnOn()        + TurnOn()   + TurnOff()       + Tur...
S.O.L.I.DПринцип инверсии зависимостей   Policy            Mechanism                         Utility
S.O.L.I.DПринцип инверсии зависимостей                <<interface>>    Policy                PolicyServices               ...
S.O.L.I.DПринцип разделения   интерфейсов Modem           Dialer + send() + recv()  + dial()      Termimal+ hangup()      ...
S.O.L.I.D        Принцип разделения           интерфейсов            <<interface>>                                       D...
Принимаем решение
Что еще может помочь
Итого:Не откладывайте проблемыПлан действийКритерии выбора решения
Как разгребать?
Сперва все разобрать...
… а потом собрать?
РефакторингРеальность            Цель
Рефакторинг
Рефакторинг
Итого:Не откладывайте проблемыПлан действийКритерии выбора решенияРефакторинг
Проблема
Автоматизируйте
Автоматизируйте
Автоматизируйте
Время
Время
Время
Время
Прошлый век?
Прошлый век?
Итого:Не откладывайте проблемыПлан действийКритерии выбора решенияРефакторингАвтоматизируйте тестирование
С ног на голову
Взрыв мозга
Цикл TDD
Тесты   SUT
Тесты   SUT
Тесты   SUT
Тесты   SUT
С         Interface        е        рТесты        в   SUT   Interface        и        с                  Interface
С   Interface        еТесты        р            Interface        в        и        с            Interface
Итого:Не откладывайте проблемыПлан действийКритерии выбора решенияРефакторингАвтоматизируйте тестированиеОсвойте TDD
Александр Мартюшевagile.fellow@gmail.com
мартюшев александр - необходимые навыки технического лидера в Agile проектах
мартюшев александр - необходимые навыки технического лидера в Agile проектах
мартюшев александр - необходимые навыки технического лидера в Agile проектах
мартюшев александр - необходимые навыки технического лидера в Agile проектах
мартюшев александр - необходимые навыки технического лидера в Agile проектах
мартюшев александр - необходимые навыки технического лидера в Agile проектах
мартюшев александр - необходимые навыки технического лидера в Agile проектах
мартюшев александр - необходимые навыки технического лидера в Agile проектах
мартюшев александр - необходимые навыки технического лидера в Agile проектах
мартюшев александр - необходимые навыки технического лидера в Agile проектах
мартюшев александр - необходимые навыки технического лидера в Agile проектах
мартюшев александр - необходимые навыки технического лидера в Agile проектах
мартюшев александр - необходимые навыки технического лидера в Agile проектах
мартюшев александр - необходимые навыки технического лидера в Agile проектах
мартюшев александр - необходимые навыки технического лидера в Agile проектах
мартюшев александр - необходимые навыки технического лидера в Agile проектах
мартюшев александр - необходимые навыки технического лидера в Agile проектах
мартюшев александр - необходимые навыки технического лидера в Agile проектах
мартюшев александр - необходимые навыки технического лидера в Agile проектах
мартюшев александр - необходимые навыки технического лидера в Agile проектах
мартюшев александр - необходимые навыки технического лидера в Agile проектах
мартюшев александр - необходимые навыки технического лидера в Agile проектах
Upcoming SlideShare
Loading in …5
×

мартюшев александр - необходимые навыки технического лидера в Agile проектах

В IT проектах уровень неопределенности очень высок. В Agile проектах такие изменения происходят гораздо чаще, чем
в традиционных, потому что
Agile стимулирует изменения, и никак их не ограничивает. Если ничего не предпринимать, то под действием новых требований техническое качество будет ухудшаться от итерации к итерации. Некачественный код, неадекватный дизайн — все это может привести
к замедлению эффективности разработки, а возможно и к провалу проекта.

  • Be the first to comment

мартюшев александр - необходимые навыки технического лидера в Agile проектах

  1. 1. Необходимыенавыкитехническоголидера в AgileпроектахАлександр Мартюшев«АСКОН»agile.fellow@gmail.com
  2. 2. АСКОН
  3. 3. Agile«Тяжелый» процесс
  4. 4. «Тяжелый» процесс- Утвержденные требования- Спецификации- Технические задания- Детальные долгосрочные планы
  5. 5. «Тяжелый» процесс- Утвержденные требования- Спецификации- Технические задания- Детальные долгосрочные планы Изменение требований
  6. 6. «Тяжёлые» последствия «Это невозможно» «Это очень долго» «Вам это не нужно» «Мы лучше знаем что вам нужно»
  7. 7. «Тяжёлые» последствия Специалист по тому, почему это нельзя сделать
  8. 8. Agile + изменения =
  9. 9. AgileТребования изменяются быстрее Код протухает быстрее
  10. 10. Когда править? t
  11. 11. Исправим позже? t
  12. 12. Психология
  13. 13. Эксперименты75% ???85% ???
  14. 14. Посчитаем75% 98%85% 99%
  15. 15. Эксперименты75% 38% ???85% 35%
  16. 16. Эксперименты75% 38% 10%85% 35%
  17. 17. Неуверенность СомненияНеопределенность
  18. 18. Теория разбитых окон
  19. 19. Эксперименты Рисовать на стенах запрещено!
  20. 20. Эксперименты Рисовать на стенах запрещено!
  21. 21. Эксперименты 33% 69%
  22. 22. Исправим позже? :) t
  23. 23. Итого:Не откладывайте проблемы
  24. 24. Проблема Да Нет Есть решение? Помощь Долго Данных недостаточно Как долго? N часов Отложи Решаем с POИсправь сейчас Все должны знать о проблеме Внеплановая задача (технический беклог)
  25. 25. Проблема Да Нет Есть решение? Помощь Долго Данных недостаточно Как долго? N часов Отложи Решаем с POИсправь сейчас Все должны знать о проблеме Внеплановая задача (технический беклог)
  26. 26. Итого:Не откладывайте проблемыПлан действий
  27. 27. Что выбрать?
  28. 28. Простота
  29. 29. S.O.L.I.DSingle ResponsibilityOpen-CloseLiskov SubstitutionInterface SegregationDependency Inversion
  30. 30. S.O.L.I.D Принцип персональной ответственности Приложение, Rectangle выполняющее GUIгеометрические +draw() приложение вычисления +area() GUI
  31. 31. S.O.L.I.D Принцип персональной ответственности Приложение, GUI выполняющее приложениегеометрические вычисления Geometric Rectangle Rectangle GUI +draw() +area()
  32. 32. S.O.L.I.DПринцип открытия-закрытия Client Server <<interface>> Client ClientInterface Server
  33. 33. S.O.L.I.D Принцип открытия-закрытия Policy Employee+ PolicyFunction()- ServiceFuntion() EmployeeType Implementation Programmer Manager- ServiceFunction() Salesman
  34. 34. S.O.L.I.DПринцип подстановки Лисков Rectangle void g(Rectngle r)+ GetHeight() {+ GetWidth() r.SetWidth(5);+ SetHeight() r.SetHeight(4);+ SetWidth() assert(r.Area() == 20); } Square
  35. 35. S.O.L.I.DПринцип инверсии зависимостей Lamp Button + TurnOn() + TurnOff()
  36. 36. S.O.L.I.DПринцип инверсии зависимостей Switchable Lamp + TurnOn() + TurnOn() + TurnOff() + TurnOff() Button
  37. 37. S.O.L.I.DПринцип инверсии зависимостей Policy Mechanism Utility
  38. 38. S.O.L.I.DПринцип инверсии зависимостей <<interface>> Policy PolicyServices <<interface>> Mechanism MechanismServices Utility
  39. 39. S.O.L.I.DПринцип разделения интерфейсов Modem Dialer + send() + recv() + dial() Termimal+ hangup() PPP
  40. 40. S.O.L.I.D Принцип разделения интерфейсов <<interface>> Dialer IDialer + dial() + hangup()Modem Termimal <<interface>> IChannel + send() PPP + recv()
  41. 41. Принимаем решение
  42. 42. Что еще может помочь
  43. 43. Итого:Не откладывайте проблемыПлан действийКритерии выбора решения
  44. 44. Как разгребать?
  45. 45. Сперва все разобрать...
  46. 46. … а потом собрать?
  47. 47. РефакторингРеальность Цель
  48. 48. Рефакторинг
  49. 49. Рефакторинг
  50. 50. Итого:Не откладывайте проблемыПлан действийКритерии выбора решенияРефакторинг
  51. 51. Проблема
  52. 52. Автоматизируйте
  53. 53. Автоматизируйте
  54. 54. Автоматизируйте
  55. 55. Время
  56. 56. Время
  57. 57. Время
  58. 58. Время
  59. 59. Прошлый век?
  60. 60. Прошлый век?
  61. 61. Итого:Не откладывайте проблемыПлан действийКритерии выбора решенияРефакторингАвтоматизируйте тестирование
  62. 62. С ног на голову
  63. 63. Взрыв мозга
  64. 64. Цикл TDD
  65. 65. Тесты SUT
  66. 66. Тесты SUT
  67. 67. Тесты SUT
  68. 68. Тесты SUT
  69. 69. С Interface е рТесты в SUT Interface и с Interface
  70. 70. С Interface еТесты р Interface в и с Interface
  71. 71. Итого:Не откладывайте проблемыПлан действийКритерии выбора решенияРефакторингАвтоматизируйте тестированиеОсвойте TDD
  72. 72. Александр Мартюшевagile.fellow@gmail.com

    Be the first to comment

    Login to see the comments

  • blv

    Mar. 27, 2012
  • HarooMambooroo

    Apr. 16, 2012
  • iliacmd

    Dec. 26, 2012

В IT проектах уровень неопределенности очень высок. В Agile проектах такие изменения происходят гораздо чаще, чем в традиционных, потому что Agile стимулирует изменения, и никак их не ограничивает. Если ничего не предпринимать, то под действием новых требований техническое качество будет ухудшаться от итерации к итерации. Некачественный код, неадекватный дизайн — все это может привести к замедлению эффективности разработки, а возможно и к провалу проекта.

Views

Total views

1,006

On Slideshare

0

From embeds

0

Number of embeds

4

Actions

Downloads

0

Shares

0

Comments

0

Likes

3

×