Классический водопадный подход Я работаю программистом уже более 30 лет и предпочитаю программировать, а не управлять людьми. Сегодня мы обсудим организацию процессов разработки. Классический водопадный подход включает планирование, написание кода, тестирование и развертывание линейным способом.
Проблемы, связанные с водопадным подходом "Водопад" хорошо работает для небольших проектов, но становится проблематичным для более крупных из-за трудностей в координации между членами команды. Проблемы с интеграцией возникают, когда различные части кода не взаимодействуют должным образом. Кроме того, исправление ошибок становится все более сложной задачей по мере того, как проходит время с момента их обнаружения.
Введение в гибкие методологии Гибкие методологии предлагают альтернативу традиционным подходам, таким как waterfall, разбивая проекты на более мелкие циклы или спринты, каждый из которых длится около трех месяцев.
Упрощение процессов Сокращая бюрократию и ненужную документацию, задачи можно выполнять более эффективно. Появление персональных компьютеров в конце 70-х и начале 80-х годов произвело революцию в отрасли, позволив ускорить циклы разработки.
Увеличение размера команды "Мифический человеко-месяц" Фредерика Брукса подчеркивает, что привлечение большего числа людей к проекту не обязательно ускоряет его завершение. Общение между членами команды становится все более сложным по мере роста числа подключений.
Планирование пользовательских историй Истории пользователей используются для отражения потребностей пользователей в определенном формате. Анализ отзывов пользователей помогает формировать будущие проекты.
Управление проектной документацией Создание видимых файлов, таких как лицензии, необходимо для ясности проекта и совместной работы.
Роль пользователя В этой главе мы обсудим роль пользователя в добавлении товаров в свою корзину покупок. Мотивация использования корзины покупок заключается в том, чтобы обеспечить пользователям безопасный и удобный способ хранения товаров перед совершением покупки.
Проверка статуса корзины "Проверка статуса корзины" фокусируется на том, как пользователи могут просматривать и проверять содержимое своей корзины покупок в любой момент. Эта функция позволяет пользователям убедиться, что все сделано правильно, прежде чем приступить к покупке.
Функциональность каталога и поиска У нас есть большой каталог с множеством историй. Основная цель состоит в том, чтобы разбить его на отдельные части и обсудить функциональность поиска товаров в каталоге. Нам нужно сформулировать задачи, которые обеспечивают ценность для пользователей или клиентов, например, позволяют пользователям легко находить определенные товары.
Иерархия категорий Категории "Корневая" - это категории верхнего уровня в иерархии нашего каталога, за которыми следуют подкатегории. Пользователи могут перемещаться по этим категориям и выбирать конкретные типы товаров, которые их интересуют.
Альтернативные сценарии В дополнение к навигации по родительским и дочерним категориям существуют альтернативные сценарии, в которых пользователи могут перемещаться вверх или вниз по различным уровням категоризации в зависимости от своих предпочтений.
Введение в систему У нас есть продукты и корзина для покупок. У нас также есть польский покупатель. Продукты распределены по категориям, и существует иерархия для реализации. Однако для окончательного согласования того, как мы будем внедрять корзину покупок, необходимо дальнейшее общение внутри команды.
Итеративный процесс разработки "Польские истории" заменили анализ технических требований бизнес-аналитиками, которые опрашивали экспертов для сбора информации для разработки. Это позволяло быстрее выполнять задачи, но требовало непрерывной интеграции между командами каждые две недели.
Непрерывная интеграция и развертывание Интеграция должна быть непрерывной, обеспечивая доступность программного обеспечения в любое время (непрерывное развертывание). Тестирование играет решающую роль в обеспечении качества программного обеспечения, которое может быть оперативно доставлено клиентам.
Роли в команде В команде распределение ролей важно для обеспечения эффективного функционирования. У фронтенд-программистов, бэкенд-программистов и тестировщиков - у всех есть свои специфические задачи. Тестировщики играют решающую роль в обеспечении качества продукта.
Совместная работа "Бэклог" используется для совместного планирования будущих задач тестировщиками и разработчиками. Расстановка приоритетов производится на основе потребностей бизнеса и предполагаемого времени разработки.
Планирование спринтерских задач Во время совещаний по планированию спринта разработчики разбивают готовые задачи на более мелкие части для реализации, принимая во внимание сложность задачи.
Человеческий фактор в управлении проектами В этой главе докладчик представляет книгу Фредерика Брукса под названием "Человеческий фактор". В книге обсуждается важность командной работы и дается представление о том, как эффективно управлять проектными командами.
Миф о "10-кратных программистах" Были изучены "10-кратные программисты", которые, как полагают, значительно более продуктивны, чем среднестатистические программисты. Однако исследования показывают, что производительность труда не обязательно коррелирует с опытом или уровнем квалификации. Такие факторы, как размер рабочего пространства и непрерывная сосредоточенность, также играют роль в производительности программиста.
Состав команды и результаты ее работы Исследования показывают, что высокопроизводительные программисты, как правило, скапливаются в определенных компаниях, в то время как низкоэффективные собираются в других местах. Такие факторы, как расположение рабочего пространства, сплоченность команды и минимальные перерывы в работе, способствуют повышению уровня производительности среди лучших исполнителей.
Важность спокойной обстановки для производительности "Состояние потока", когда программист полностью погружен в свою работу, не отвлекаясь на внешние раздражители, играет важную роль в достижении высокого уровня производительности. Создание спокойной рабочей обстановки может повысить концентрацию внимания и общую производительность.
Влияние музыки на программирование Музыка может как помогать, так и препятствовать программированию. Исследование, проведенное в Корнельском университете, показало, что некоторые программисты лучше работают, слушая музыку, в то время как другие предпочитают тишину. Интересно, что те, кто слушал музыку, не осознавали, какое влияние она оказывает на их способности к кодированию.
"Умные" лошади и невербальное общение "Умный Ганс", лошадь начала 20-го века, по-видимому, была способна выполнять сложные вычисления, постукивая копытом в ответ на математические вопросы. Однако позже было обнаружено, что Умный Ганс на самом деле бессознательно реагировал на невербальные сигналы своего владельца, вместо того чтобы выполнять реальные вычисления.
Споры вокруг гомеопатии Гомеопатия была подвергнута научному исследованию со смешанными результатами. Несмотря на то, что были проведены исследования, показывающие положительную корреляцию между гомеопатическим лечением и реакцией пациентов, эти результаты часто трудно воспроизвести из-за потенциальных погрешностей, возникающих в процессе тестирования.
Оценка каталога Покупатель просматривает каталог и хочет его оценить. Они обсуждают различные способы оценки, такие как оценка времени, необходимого для реализации проекта, или создание дополнительных страниц на веб-сайте. Предполагаемое время составляет от 2 до 30 дней.
Планирующий покер "Покер планирования" вводится как метод планирования задач. Команда обсуждает, сколько времени потребуется для выполнения определенных задач, и назначает оценки в рабочих днях, варьирующиеся от 2 до 14 дней, исходя из их предположений.
Вызов сложности Задача состоит в том, чтобы отделить сложные истории от простых, чтобы разложить их по полочкам. Планирование играет решающую роль в определении сложности и оценке времени, необходимого для выполнения задач. Однако поначалу может быть трудно точно оценить уровень сложности.
Непредсказуемые затраты и проблемы с планированием События "черного лебедя", такие как неожиданные высокие затраты или непредвиденные осложнения во время внедрения, часто возникают из-за плохого планирования. Эти непредсказуемые факторы могут существенно повлиять как на временные, так и на стоимостные оценки.
Стратегии планирования Для решения проблем планирования один из подходов заключается в разбиении задач на более мелкие компоненты с более короткими периодами оценки для повышения точности. Другая стратегия предполагает поиск прошлого опыта или аналогичных проектов в качестве ориентиров.
Оформление заказа и доставка Пользователь может выбрать способ доставки при оформлении заказа. Основной сценарий заключается в том, что пользователь добавляет товары в свою корзину, вводит свой адрес и оплачивает заказ. Существуют альтернативные сценарии, когда пользователь, возможно, уже размещал заказ ранее или не хочет, чтобы его адрес сохранялся. Другой альтернативный сценарий - это когда на карте недостаточно средств.
Проверка адреса Если при оформлении заказа введен несуществующий или недействительный адрес, появляется сообщение об ошибке "Неверный адрес". Система использует кодификаторы для проверки адресов в Москве, но не может проверить неправильные адреса на шаге 3 процесса оформления заказа.
Интеграция с платежными сервисами и службами доставки Существует интеграция с платежными системами и курьерскими службами для расчета стоимости в зависимости от объема /веса товаров, заказанных с сайта книжного магазина. Интеграция этих сервисов в нашу платформу занимает несколько дней, поэтому мы разбиваем эту задачу на две подзадачи: сначала интеграция со службой доставки, а затем интеграция платежного сервиса.
Важность ролей пользователей в бизнесе В этой главе бизнес-команда обсуждает необходимость в ролях пользователей на веб-сайте. Они признают, что это не то, что может сделать любой пользователь, и для этого требуется кто-то из отдела продаж или другой назначенной роли. Основными задачами, которые были определены, являются проверка существующих адресов и расчет стоимости доставки.
Сотрудничество с внешними платежными сервисами "Biklok" используется в качестве примера, чтобы проиллюстрировать, как работает обработка платежей на их веб-сайте. Как только клиент достигает стадии оплаты, они перенаправляют его на внешний платежный сервис, где все транзакции проходят беспрепятственно, не требуя дальнейшего участия пользователей. Этот сценарий предполагает сотрудничество с бухгалтерами, которые обеспечивают бесперебойность финансовых операций.
Рабочий процесс обработки заказов В этой главе объясняется, как обрабатываются заказы после успешной оплаты через их систему: клиенты предоставляют информацию о заказе, такую как номер, дата и сумма; затем происходит перенаправление обратно на их сайт с указанием того, была ли транзакция успешно завершена.