Как грамотно организовать проектную работу?
— Как появляются идеи развития программ?
— Первый источник — это наши пользователи: клиенты и партнеры. Запросы от них относятся, в основном, к развитию функционала. Второй — это наше видение, которое касается технических и инфраструктурных изменений, влияющих на работоспособность программы и качество продукта. Например, если мы реализуем передачу данных между «ST Мобильная Торговля» и «ST Чикаго», то заказчика не беспокоит, каким образом она устроена. Ему важно, чтобы обмен происходил быстро.
— Как отстраивается работа при ведении сразу нескольких проектов?
— Благодаря тому, что каждым проектом занимается выделенная команда, ребятам обеспечивается оптимальный фокус на целях и задачах. Есть у нас и группы сотрудников, которые работают между проектами. Например, аналитики. Если представить такую матрицу, в которой каждый проект — это отдельный столбец со своим графиком работ, то запросы аналитика — это строки, которые могут пронизывать больше двух столбцов. Причем запросы, затрагивающие несколько проектов, встраиваются в работу таким образом, чтобы требующийся функционал был готов в «ST Чикаго» и в «ST Мобильная Торговля» одновременно.
— Какие роли есть в команде?
— Прежде всего, продуктоунер — связующее звено между бизнесом и командой. Ему приходится постоянно лавировать между требованиями заказчика и возможностями разработки. Именно он знает, каким должен быть продукт. И, исходя из этого, расставляет приоритеты и принимает решения. Тимлид — отвечает за техническую сторону работы, за архитектуру программного решения вместе с разработчиками, закрепленными за проектом. Тестировщики — деятельность которых сфокусирована на определенном проекте, но могут помочь и другим.
— И каждый в этой большой команде выполняет свой кусочек работы. Что происходит, если кто-то что-то не сделал вовремя?
— Вероятность возникновения такой ситуации очень высока. Конечно, обязательно соблюдаются меры по предотвращению: глубокая проработка требований, создание прототипов. Но обязательно надо продумать и то, как избежать последствий. Один из способов — гибкий подход к набору требований, взятых в итерацию. Если мы не успеваем сделать все задуманное, то выделяем высококритичные вещи, обеспечивающие решение проблемы. А дополнительные функциональные возможности выпускаем в следующую итерацию.
— Как организована работа над запросом?
— Если запрос касается одного продукта, то все решается на уровне планирования итераций. Делаем оценку задач совместно с разработчиком. Для межпроектной работы приходится формировать мини-команду из аналитика, тестировщика и разработчиков. Специалисты, по сути, резервируются на все время работы над запросом. Если он большой, состоит из нескольких итераций, то разработчику в случае необходимости даются небольшие задачи по другим запросам, которые можно выполнить за один-два дня.
— Когда выпущена новая версия, у команды нет возможности расслабиться — на очереди новые задачи и решения. Как в этой ситуации избежать «выдыхания»?
— Хорошее средство — переключение. После разработки большого модуля решить несколько маленьких задач в рамках одного продукта, прежде чем снова взяться за что-то глобальное. Иногда возникают ситуации, когда программисты переходят из команды в команду. Мы приветствуем ротацию внутри компании, если человек понимает, что потерял интерес к текущим задачам. Есть сотрудники Службы поддержки, которые стали тестировщиками или аналитиками, есть тестировщики, которые стали программистами. Еще можно в отпуск сходить, тоже помогает.







