Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CodeFest 2018. Владимир Пригарин (Improve Digital) — Как не про…играть все сроки

16b6c87229eaf58768d25ed7b2bbbf52?s=47 CodeFest
April 09, 2018

CodeFest 2018. Владимир Пригарин (Improve Digital) — Как не про…играть все сроки

Посмотрите выступление Владимира: https://2018.codefest.ru/lecture/1303/

Мобильная разработка меняется очень быстро: появляются новые технологии, фреймворки, подходы. Именно поэтому многие разработчики рано или поздно сталкиваются с задачей оценки фичи, которую раньше не делали ни они, ни кто либо из их команды. В эти моменты очень велика вероятность ошибиться в оценке в разы, рискуя своей репутацией перед заказчиком (либо своим личным временем, либо дальнейшим продвижением по карьере и т.д.)

Владимир в своем докладе расскажет о ситуации, когда оценка фичи выросла с 20 до 120 человекочасов.

Вы узнаете:
— Как не оказаться в такой ситуации.
— Как оценить функционал с новой технологией.
— Почему не стоит верить документации и фреймворкам с GitHub.
— Что делать, если оценка все же выросла.

Все это на основе реальной ситуации с интеграцией In-app purchases в iOS приложение.

16b6c87229eaf58768d25ed7b2bbbf52?s=128

CodeFest

April 09, 2018
Tweet

Transcript

  1. Как не про…играть все сроки Владимир Пригарин iOS Developer Improve

    Digital
  2. Как оценить новую фичу?

  3. Профит Как предотвратить проблемы при разработке или оценке новой фичи

  4. • Проблема • Как решали • Как избежать Структура

  5. Оценено • Экран • Логика покупки inapp’ов • Связующая логика

    Действительность • Экран • Логика покупки inapp’ов • Связующая логика • Аккаунт в приложении • Логика с внутренним сервером • Защита от мошенников • Отображение на экране профиля • Разблокировка контента • Автопродление подписок • Сложность в тестировании • Новый App Store • Особенности при релизе подписок 20 120
  6. А теперь история и все по порядку

  7. 1 Некачественный ресерч

  8. Ресерч • Находим документацию по фиче • Читаем документацию •

    Находим фреймворки • Тестовый проект • Вжух и готово
  9. Ресерч (реальность) • Идем в гугл и вводим название фичи

    • Находим статьи и фреймворки • Тестовый проект • Немного читаем документацию • Вжух и готово
  10. Проблемы ресерча • Пренебрежение документацией • Не подходящие фреймворки •

    Поверхностный анализ
  11. Inapps Screen Service

  12. WWDC и все просто

  13. WWDC и все просто Это ложь

  14. Ресерч, решение • Начинать с документации • Находить подходящие фреймворки

    • Узнайте о своем кейсе в сообществе
  15. 2 Мультиаккаунт забыт

  16. Мультиаккаунт (AppleID + AppUserID) * подписки Увеличение затрат

  17. О, я знаю этого парня!

  18. Inapps Screen Service

  19. О фреймворках ★ Звезды не показатель ✓ Дата последнего изменения

    ✓ Частота обновлений ✓ Количество закрытых и открытых вопросов
  20. 3 Защита?

  21. Защита от мошенников • смена AppleID • смена даты •

    смена UserAppID
  22. Inapps Screen Service Security

  23. 4 Внедрение в приложение не оценено

  24. Зависимость логики • Продление • Покупка • Восстановление

  25. Inapps Screen Service Security Manager

  26. Inapps Screen Service Security Lessons Library Profile Manager

  27. Inapps Screen Service Security Manager Lessons Screen Library Screen Profile

    Screen Lessons Library Profile
  28. Сложность растет, что делать?

  29. Сложность растет, что делать? • Обозначить проблему • Признать проблему

    • Рассказать команде и вместе решить Если проблема есть, не значит что проблема в тебе - проблема просто есть.
  30. Сложность растет, что делать? 1. Найти все связанные с задачей

    элементы системы
  31. Сложность растет, что делать? 2. Декомпозировать

  32. Деком позировать

  33. Де ком по зи ро вать

  34. Д е к о м п о з и р

    о в а т ь
  35. Сложность растет, что делать? 3. Провести оценку

  36. Сложность растет, что делать? 4. А нужна ли эта фича?

  37. Необходимость фичи Приоритет: 0 - без нее невозможно 1 -

    очень нужна 2 - средней важности 3 - минор Фича Приоритет Авторизация 0 Регистрация 1 Туториал 2 Виджет 3
  38. 5 Не подходящая логика защиты

  39. Inapps Screen Service Security Manager Lessons Screen Library Screen Profile

    Screen Lessons Library Profile
  40. Inapps Screen Service Security Manager Lessons Screen Library Screen Profile

    Screen Lessons Library Profile
  41. 6 Тестировать просто (нет)

  42. Тестирование • Очень много кейсов • Проверка защиты заняла много

    времени • iTunes со странными ошибками
  43. Ошибки iTunes Error Domain=SKErrorDomain Code=0 “Cannot connect to iTunes Store”

    Означает все что угодно: От косяка в коде до лежащего iTunes
  44. Ошибки SSServerErrorDomain

  45. Ошибки SSServerErrorDomain • Возникает при активном тестировании возобновляемых подписок •

    Через какое-то время девайс отпускает • Баг? Радар открыт с июля 2017
  46. “Раньше работало, теперь не работает” © QA

  47. Что делать если ничего не работает? Сообщество - кладезь знаний

  48. 7 Релизить просто (нет)

  49. Выливка • Создание покупок на бою • Тестирование боевых покупок

    • Сбор инфы для ревью
  50. Реджект Buy 9.99$ Buy 19.99$ Buy 49.99$ Some promo information

    Buy 9.99$ Buy 19.99$ Buy 49.99$ Some promo information terms of use
  51. Как избежать реджекта • Информация о покупках в описании приложения

    • Информация о покупках в самом приложении • Простота приобритения покупок • Восстановление покупок
  52. Выводы и итоги • Не пренебрегайте качественным анализом • Абстрагируйтесь:

    фича —> вся система • Д Е К О М П О З И Р У Й Т Е • Ваш лучший помощник - сообщество
  53. Бонус: чек-лист по оценкам 1 Время на разработку ◦ желательно

    разбивать задачу на блоки по 2-4 часа - это поможет более детально спроектировать реализацию на этапе оценки и избежать нежданчиков; ◦ следует учитывать использование сторонних сервисов и время на ознакомление с их спецификой; ◦ оценку следует делать в два этапа: после первой итерации оценки необходимо выдохнуть, выпить кофе и провести саморевью. 2 Время на ревью если оно есть на проекте ◦ сюда входит время ревьюера и время на фиксы замечаний по результатам ревью. 3 Время на багфикс 4 Время на на добавление всех необходимых анимаций если они есть 5 Время на поддержку всех требуемых девайсов 6 Время на прояснение всех аспектов, выявление специфичных кейсов, общение с дизайнером и менеджером ◦ Оценка будет зависеть от сложности и степени формализации задачи. Ну то есть если задача сформулирована поверхностно, не учтены сопутствующие кейсы, изменение каких-то смежных процессов - на выяснение может уйти больше времени; если задача сформулирована подробно - потребуется меньше времени. 7 Учитываем время самостоятельное тестирование ◦ это прогон граничных условий, специфичных кейсов; ◦ если задача абстрактна (например, абстрактный модуль для вообще всех картинок), стоит учесть время на построение проверочных кейсов / написание юнит тестов. 8 Время на сборку, отправку билдов тестировщику
  54. Выводы и итоги • Чаще подводите итоги проделанной работы •

    Если что-то идет не так - пора об этом говорить • Менеджеры знают крутые подходы • Помни: вы - команда
  55. Владимир Пригарин iOS Developer Improve Digital Спасибо за внимание! Если

    у вас возникли вопросы, я с удовольствием обсужу их с вами vovkaprigarin vovkaprigarin@gmail.com vovkaprigarin
  56. None