Читаем Время - деньги. Создание команды разработчиков программного обеспечения полностью

У параллельной разработки масса преимуществ. Во-первых, она концентрирует усилия всей команды, что позволяет как можно скорее завершить разработку набора функций. Это создаёт у участников команды ощущение срочной целенаправленной работы и (я на это надеюсь) успеха проекта уже на ранних стадиях его реализации. Кроме того, она позволяет сохранять синхронность работы команды в течение всего процесса разработки, так как все её члены обсуждают и решают одни и те же проблемы. Во-вторых, поскольку вся команда сосредоточена на разработке одних и тех же функций, можно будет намного раньше понять, действительно ли завершена функция или пока написан только её исходный текст, страдающий от недостатка качества интеграции и мало пригодный к использованию. Задача в том, чтобы заставить команду как можно скорее создавать надёжно работающие функции, чтобы не возвращаться к проблемам, давно считавшимся решёнными. Не правда ли, было бы очень неприятно получить сюрприз в виде плохого качества или недостатков в реализации функций, считавшихся законченными уже несколько недель, или месяцев тому назад.

Баланс ширины и глубины охвата в работе над проектом

Следует так упорядочивать задачи при создании плана, чтобы группы работали по всему фронту проекта, а не над отдельными его частями. Короче, не ограничивайтесь реализацией какой-либо одной части системы, игнорируя остальные. Например, работая над приложением для размещения заказов через Web, не составляйте план так, чтобы сначала был разработан пользовательский интерфейс, затем реализована прикладная логика, и лишь потом — весь код для работы с базой данных. Даже при наличии детальных спецификаций структуры, поочерёдное решение всех задач обернётся кошмаром при их интеграции, поэтому надо работать над всеми частями системы одновременно. Сосредоточьтесь на решении задачи, которая позволит ввести простой заказ, сохранить его и вывести подтверждение. Такой подход позволит сразу создать комплексное решение, пригодное для тестирования и объединяющее все необходимые программные подсистемы проекта.

Контекст функций

Часто в ответ на вопрос о планах от разработчика можно услышать такое: «Сначала нужно обновить менеджер ресурсов поддержкой 32-разрядных идентификаторов, потом изменить алгоритм анализа индекса PRODUCT ID, чтобы разрешить дублирование записей, а затем переписать обработчик ошибок, чтобы поддерживалась многопоточностъ». Каждый из этих пунктов вполне допустим, как элемент работы программиста, однако следует удостовериться, что все они находятся в контексте функций программы или не выходят за рамки её требований. В контексте некоторой функции задачу разработчика можно сформулировать, например, так: «организовать поддержку печати из диалогового окна ввода заказа» или «обеспечить возможность ввода нескольких заказов одновременно». Более узкая сосредоточенность также полезна для других разработчиков команды, поскольку им важно знать, когда некоторые функции станут доступны, а не срок завершения задач, необходимых для реализации этих функций. Когда план чётко определяет срок завершения всех функций или требований, остальные участники команды могут быть уверены, что их работа завершится в параллели с другими задачами.

Трудности в работе с людьми

Ниже описан ряд трудностей при составлении плана, имеющих отношение к работе с людьми.

Распределение работы

Не все разработчики от рождения наделены равными способностями. Некоторые лучше всего программируют интерфейсы, другие — системную логику. У одних опыта больше, у других — меньше. У некоторых производительность труда очень высока, у других средняя или даже низкая. Нельзя назначать задания случайным образом, полагая, что все люди обладают «типовыми» способностями. Распределяя задания между разработчиками, тестировщиками, технологами и другими членами команды, следует быть очень осторожным. В каждом случае надо учитывать уровень мастерства, индивидуальную производительность, опыт практической работы над проектами и привычки.

Балансировка нагрузки

Задача состоит в равномерном распределении рабочей нагрузки по реализации проекта на основе индивидуальных способностей участников команды. Однако будьте осторожны и не перегрузите лучших участников команды. Хотя они могут сделать больше других, у них тоже есть свой предел. Эти люди ещё пригодятся, чтобы помочь другим, когда возникнут неприятности.

Возможные накладки

Наивно полагать, что все своё рабочее время люди будут трудиться над своими основными задачами. В каждой организации возникают накладки, к которым относится время, потраченное на собрания, наладку технологии, отпуска, стажировки, командировки, больничные и выходные. Даже при 80 рабочих часах в неделю, нетрудно заметить, что 10 из них тратятся на отвлечённые действия. Это тоже следует учесть в плане. Кроме предсказуемых событий (отпусков, командировок и т.п.), план должен учитывать и неожиданные: болезни сотрудников, зимнюю непогоду и пр.

Задачи: критичные и некритичные

Перейти на страницу:

Похожие книги

Легкий текст. Как писать тексты, которые интересно читать и приятно слушать
Легкий текст. Как писать тексты, которые интересно читать и приятно слушать

Немало успешных спикеров с трудом пишут тексты, и ничуть не меньше успешных авторов весьма бледно смотрятся на сцене. Все дело в том, что речь устная и речь письменная – это два разных вида речи. И чтобы быть правильно понятыми, нам необходимо умение точно и увлекательно излагать мысли устно и письменно, о чем бы ни шла речь. Письма, сообщения, посты в соцсетях, тексты для публичных выступлений, рассказы о путешествиях или событиях – важно, чтобы тексты было приятно и читать, и слушать.В этой книге Светлана Иконникова, тренер по написанию текстов, рассказывает, как точно и убедительно излагать мысли в деловой переписке, соцсетях и мессенджерах, а Нина Зверева, известная телеведущая, бизнес-тренер, автор бестселлеров, объяснит, как создать идеальный текст для выступления. Как передать интонацию на письме, что такое геометрия и вектор текста, с чего он должен начинаться, для кого пишется, как зацепить внимание слушателя и читателя с первой фразы, интересные истории из практики, упражнения и советы – эта книга для тех, кто хочет, чтобы его читали, смотрели и слушали.

Нина Витальевна Зверева , Светлана Геннадьевна Иконникова

Деловая литература / Отраслевые издания / Финансы и бизнес
Как гибнут великие и почему некоторые компании никогда не сдаются
Как гибнут великие и почему некоторые компании никогда не сдаются

Джим Коллинз, взирая взглядом ученого на безжизненные руины когда-то казавшихся несокрушимыми, а ныне канувших в Лету компаний, задается вопросом: как гибнут великие? Действительно ли крах происходит неожиданно или компания, не ведая того, готовит его своими руками? Можно ли обнаружить признаки упадка на ранней стадии и избежать его? Почему одни компании в трудных условиях остаются на плаву, а другие, сопоставимые с ними по всем показателям, идут ко дну? Насколько сильными должны быть кризисные явления, чтобы движение к гибели стало неотвратимым? Как совершить разворот и вернуться к росту? В своей книге Джим Коллинз отвечает на эти вопросы, давая руководителям обоснованную надежду на то, что можно не просто обнаружить и остановить упадок, но и возобновить рост.

Джим Коллинз

Деловая литература