Чтение онлайн

ЖАНРЫ

Как пасти котов. Наставление для программистов, руководящих другими программистами
Шрифт:

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

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

его к собственным потребностям), обратитесь к приложению А. В нем приводится более подробная информация, а также сведения о том, как получить исходный код.

Задача как объект – основной организующий принцип электронного администратора

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

1. Проекты. Все задачи аккумулируются в рамках проекта – довольно удобной классификационной конструкции, связывающей те виды деятельности, которые направлены на производство качественного кода и зарабатывание денег для компании. Отдельные проекты, впрочем, не связаны с созданием продукта, предназначенного для продажи; однако если основным приоритетом для вас является успех компании на занятых ею рынках, вы, вероятно, согласитесь со мной в том, что любые продукты воплощаются в жизнь лишь благодаря способности группы разработчиков к созданию успешного программного обеспечения.

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

3. Назначенные задания. За распределение заданий между сотрудниками рабочей группы ответственны вы. О тех людях, с которыми вам приходится работать, я говорил на протяжении трех предшествующих глав. Теперь же мы обратимся к более приятной теме неодушевленных объектов. Обычно они молчат, хотя наличие на моем компьютере синтезатора речи лишает их этой замечательной особенности. Я немного отвлекся, хотя здесь тоже прослеживается важный принцип, касающийся перевода из рядов программистов в менеджеры. Мы лучше обращаемся с «вещами», чем с людьми.

Ну ладно, хватит разглагольствовать! Лучше взгляните на рис. 4.1 – он представляет собой графическую иллюстрацию представленной выше концепции.

Рис. 4.1. Задание

Как и обещано, на этой схеме изображены все три отношения между задачей, с одной стороны, и информационным потоком и процессом администрирования, с другой.

За утверждением задачи – в том виде, в котором она представлена на нашей схеме – следует этап ее реализации в программном продукте. На рис. 4.2 в традициях классического двухзвенного [45] MDI-приложения с нагруженной клиентской частью (в эпоху веб-приложений [46] такая схема кажется очевидно устаревшей) изображен графический пользовательский интерфейс, реализующий представленный выше принцип.

45

Имеются в виду не логические, а физические звенья.

46

Я пробовал структурировать электронного администратора в качестве веб-приложения, но такая схема не подходит моим программистам. Я их не виню; в конце концов, я должен давать задания, а они – выполнять их. Кроме того, мне не нравится ограниченность веб-интерфейса.

Рис. 4.2. Реализация задачи

Согласно моей задумке, в окне, показанном на рис. 4.2, должны умещаться все данные, с помощью которых можно идентифицировать задания и отследить их выполнение. Три основных отношения – источник, назначенные задания и проект – дополняются стандартными и вполне ожидаемыми параметрами: состоянием, сроками начала и завершения, а также приоритетом. Кроме того, в моей версии программы присутствует запись-ссылка на область действия [47] . В некоторых компаниях она может сослужить хорошую службу. Среди прочих нелишних характеристик стоит упомянуть возможность создания документа с данными по конкретной задаче и, естественно, возможность сохранения собранной информации в базе данных. Раздел Details я выполнил в виде форматируемого поля, в которое можно встраивать внешнюю графику, – как известно, один рисунок способен сообщить программисту больше, чем тысяча слов.

47

Присутствие этой записи подразумевает наличие документации относительно области действия, в которой характеристики конструируемого продукта представлены в виде нумерованного списка.

Отображение
и систематизация заданий

После того как сведения о задании зафиксированы, их, конечно, нужно отобразить – да так, чтобы из них можно было делать какие-то выводы. Как менеджер вы, естественно, вынуждены ежедневно составлять список заданий, требующих безотлагательного выполнения; кроме того, вы стремитесь к тому, чтобы каким-то образом отслеживать выполнение срочных заданий теми сотрудниками, которым вы их поручили.

Решение, к которому я обратился, предполагает наличие дочернего MDI-интерфейса, способного собирать в одном месте всю информацию о критически важных заданиях на сегодняшний день. Повторюсь: для того чтобы обеспечить соответствие конструируемого программного продукта задачам, которые он должен решать, необходимо постоянно подгонять самого себя и отслеживать работу подчиненных. В противном случае вы рискуете не справиться со своими функциями. Вспомните меткий призыв из главы 2 относительно ожидания результатов без проведения проверок, который я позаимствовал у какого-то университетского профессора. Отталкиваясь от его смыслового наполнения, я сконструировал показанный на рис. 4.3 экран.

Рис. 4.3. Экран рабочего дня

Среди прочих элементов экрана рабочего дня есть календарь. Он помогает мне вспомнить, какой сегодня день, что после долгих бессонных ночей, проведенных в праведном труде, бывает довольно сложно. Кроме того, есть на этом экране и область встреч, тесно связанная со схемой задания. Строго говоря, встреча – это тоже задание, предусматривающее очное или заочное общение с людьми. Поскольку моя система включена постоянно, с помощью таймера каждую полночь представление экрана рабочего дня в ней обновляется.

В программе присутствует средство генерации отчетов о задачах и встречах руководителя, а также списках назначенных заданий. Их можно как распечатывать, так и экспортировать. Любой список заданий предусматривает возможность фильтрации по сроку завершения в виде функции текущей даты; переключатели позволяют оперативно устанавливать разные режимы: режим сегодняшних заданий и всех долгов с предыдущих дней, режим заданий до 5 дней, начиная от текущей даты, а также представление всех заданий. Каждую полночь таймер в этой форме переустанавливает заголовки фильтров, чтобы они все всегда соответствовали заданному диапазону в 5 дней от текущей даты. Для того чтобы ввести новое задание с помощью предварительно выделенного комбинированного окна Assigned, щелкните на кнопке Add Mng Task. Для назначения нового задания щелкните на кнопке Add Asg Task.

В приложении А приводятся более детальные сведения об электронном администраторе (эта программа стала моим любимым проектом), а также о примененных в ходе его конструирования методиках и компонентах.

Как выработать собственные навыки администрирования

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

Не следует питать иллюзий – комплексный проект с многочисленными взаимозависимостями нельзя вести исключительно средствами простых программных продуктов вроде того, что я описал в предыдущем разделе. Решение о том, подходит ли тот или иной продукт для конкретного проекта, всецело зависит от вас. Более того, вы должны сами себя оценивать по части ведения всех организационных вопросов в своем отделе. Слово «администрирование» (administration) происходит от словосочетания «добавочное министерство» (added ministry); в некотором смысле, администрирование по отношению к основным задачам не является приоритетной областью вашей деятельности. Вопрос в том, сколько сил и энергии вы затрачиваете на улаживание организационных вопросов. Необходимо всегда иметь в виду, что в процесс вашей повседневной деятельности постоянно будут вмешиваться разного рода проблемы, которые придется решать дополнительно к выполнению ваших непосредственных функций. Повышая уровень своей личностной организации, вы фактически сокращаете сроки исполнения своих первоочередных заданий.

Поделиться с друзьями: