Многие вещи могут испортить программный проект. Ваш подход к людям и процессам должен их исключить, пишет на портале InformationWeek Райан Джексон, главный консультант по технологическим решениям компании InfoWorks.
Почти два десятилетия мы шли путем проб и ошибок, в том числе изучая, что работает и не работает в команде разработчиков ПО. И полученный опыт говорит, что успешность проектов часто обеспечивается именно командой. Есть три ключевые темы, которые следует учитывать компаниям, начинающим новый проект или пересматривающим существующее приложение.
1. Начните с небольшой команды
Легко увлечься новым захватывающим проектом, бросив на него столько ресурсов, сколько сможете. Однако начинать с малого необходимо, чтобы и воплотить задуманное в жизнь, и избежать финансовых потерь и растрат. Кроме того, небольшая команда может адаптироваться и меняться по мере определения потребностей проекта.
Например, я видел, как отличную идею приложения немедленно профинансировали и сразу же наняли команду из 10 человек. Проблема оказалась в том, что никто не контролировал процессы и отставание в разработке, поэтому проект превратился в бардак, который стоил больших денег и разочаровал как заинтересованных лиц, так и членов команды.
Если у вас есть деньги, чтобы потратить их сразу, это не значит, что вы должны это сделать. Начать с двух-четырех человек, пока вы во всем не разберетесь, будет гораздо лучшим решением. У вас будет более эффективный процесс, как с точки зрения календаря, так и с точки зрения затрат, если вы определите видение, архитектуру и идеи с помощью небольшой команды и будете развиваться дальше. Одно из основных допущений современной разработки заключается в том, что первоначальные планы приходится адаптировать.
2. Общайтесь четко — и часто
Для любой команды, особенно для растущей, важно, чтобы коммуникация была свободной и точной в обоих направлениях. Видение и ценности должны исходить от руководства с самого начала и часто, чтобы каждый член команды мог обсуждать их на высоком уровне. Если ценности проекта хорошо понятны, отдельные члены команды могут быть уверены, что они принимают наилучшие решения относительно реализации, расстановки приоритетов и прочего. Ваша команда также будет чувствовать свою значимость, если с ее членами поделятся рекомендациями и идеями, способствующими достижению поставленных целей.
Кроме того, руководством проекта должна поощряться и приниматься обратная связь. Большинство современных команд разработчиков проводят ретроспективы, чтобы регулярно делиться обратной связью. Чтобы команда была здоровой, эта обратная связь должна доходить до заинтересованных сторон. Будь то отличная новая идея или изменения в процессах или подходах, у команды могут быть ценные инсайты. Кроме того, любой отклик конечных пользователей должен дойти до команды разработчиков и заинтересованных сторон. Я видел в проектах, как заинтересованные стороны не адаптировались к отзывам пользователей, что вначале снижало их интерес и вовлеченность, а в итоге приводило к отказу от решения или его замене.
3. Будьте уверенными, но гибкими
В эпоху роста удаленной работы огромное значение имеет защита всей организации вместе с ценными приложениями и данными.
Здоровые команды должны выполнять основные ритуалы, которые, как они знают, должны делать, включая планирование и определение требований, оценку, тестирование, CI/CD, UAT, ретроспективы и т. д. Но не стоит быть догматичным в том, что существует только один правильный способ делать вещи. Каждая команда и проект отличаются друг от друга из-за динамики и вовлеченных людей. Делайте то, что имеет наибольший смысл для проекта. Другими словами, будьте непредвзяты к тому, как все выполняется.
Например, то, как именно команда оценивает работу, зависит от конкретного проекта и может меняться со временем. Важнее, чтобы сотрудники составляли сметы так, как это удобно для команды, а не так, как было предписано во время вашего недавнего тренинга.
Наконец, создавая здоровую и сильную команду разработчиков ПО, обратите внимание на такие мягкие навыки, необходимые для того, чтобы мир вращался, как доброта и последовательность, ответственность и инициатива, а также заинтересованность в успехе своих коллег. Именно эти качества помогают команде справляться с повседневными проблемами, которые возникают при разработке ПО.