Психология программирования: человеко-машинный аспект информационных технологий Белая Ольга Александровна, СПбГУ Новиков Борис Асенович, СПбГУ Одинцов Игорь Олегович, СПбГУ
Человеко-машинные аспекты программирования в учебных планах Подготовка специалистов в области информатики носит технологическую ориентацию. При этом почти полностью игнорируются все человеко-машинные аспекты программирования и использования результатов программирования.
Неоптимальные управленческие решения Неумение менеджера правильно сформировать проектную команду. Существует как минимум две составляющих решения проблемы. Первая — становление открытых и честных взаимоотношений в команде. Вторая — подбор психологически совместимых исполнителей. Непонимание начинающими менеджерами простейших вещей. Например, поскольку "все программисты — оптимисты", нельзя доверять срокам, называемым программистами. Отсутствие нормальных условий работы. Продуктивность работы тех, кто находится в хорошем офисе и может, закрыв дверь, не отвлекаться на телефонные звонки и посторонние дела, почти в 2,6 раза выше, чем у находящихся в коллективных комнатах.
Успех любого проекта определяется людьми Воздействие на людей в организации оказывают два основных фактора: Иерархическая структура организации с основным средством воздействия — вертикальной иерархией власти. Корпоративная культура с вырабатываемыми организацией совместными ценностями, социальными нормами, установками поведения, регламентирующими социальные нормы.
Кризис программирования: возможные очевидные причины Программисты обладают личными свойствами характера, они изменчивы и непостоянны (некоторые авторы называют это нелинейностью). Действия великих программистов за работой невозможно проанализировать и обобщить. Методологии, технологии, языки программирования практически не учитывают особенности человеческой натуры. …
Спецсеминар "Психология программирования" Спецсеминар "Психология программирования" Спецкурс "Психология управления программным проектом"
Источники Точкой отсчета начала повышенного интереса к вопросу психологии программирования является выход первого издания книги Вайнберга "The Psychology of Computer Programming" более 30 лет назад. Около 20 лет действует и проводит ежегодные конференции «Psychology of Programming Interest Group» (http://www.ppig.org). В "Рекомендациях по преподаванию информатики в университетах (Computing Curricula 2001: Computer Science)" имеется тема "Социальные и профессиональные вопросы" (Social and professional issues). На профессиональных сайтах в сети Интернет исследуются вопросы эргономики и разработки практичных интерфейсов.
Круглый стол на первом занятии Цели семинара. Что такое психология программирования? Более 30 лет с момента издания книги Вайнберга. Что изменилось? Примерная структура курса (программирование как индивидуальная и коллективная деятельность, психология управления, эргономика интерфейсов, ...) Рынок труда. Какие программисты востребованы сейчас, какие будут востребованы через 5 и через 10 лет? Связь с образованием. "Информационные технологии - это 80% психологии и 20% технологии" (с) Джефф де Люка. "…соотношения между лучшими и худшими результатами составило примерно 10 : 1 по производительности труда и 5 : 1 по скорости работы программ и требуемой для них памяти" (с) Брукс. (Более жестко: "почему в программной инженерии некоторые люди на порядок, а то и два, более полезны, чем остальные?")
Что такое психология программирования? Предметом исследования психологии программирования является деятельность программиста, психологические закономерности приема и переработки информации, функционирование психических приемов памяти и мышления у программиста, его работоспособности, вопросы профессионального отбора.
Что такое психология управления? Психология управления рассматривает вопросы создания и развития работающего коллектива, формирования в нем малых групп и выдвижения лидеров, психологические аспекты деятельности руководителя, психологии власти, исполнения и подчинения, осуществления контроля, а также кадровые вопросы.
Изменилось ли что-нибудь с момента выхода книги Вайнберга? Пожалуй, все, кроме человека и его психологии. Радикальным решением проблем кризиса программирования поочередно объявлялись поиск лучшего: языка программирования (1960-е годы); технологии программирования (1970-е годы); инструментария программирования (1980-е годы); систем качества (1990-е). И только центральному и ключевому фактору — фигуре самого программиста — внимание почти не уделялось.
Структура семинара Психология программиста как индивидуального работника (15%). Программист во взаимодействии с группой программистов (50%). Программист в рабочем пространстве (окружении) (10%). Эргономика интерфейсов (25%).
Программист как индивидуальный работник Личность. Интеллект. Опыт.
Программист во взаимодействии с группой программистов Современное программирование является коллективным, и полезность отдельного программиста тесно связана с его полезностью для всей команды. Организация коллектива разработчиков.
Программист в рабочем пространстве (окружении) Умение создать себе рабочее место, способствующее повышению производительности его труда. Чем меньше число отвлекающих факторов, тем выше производительность.
Эргономика интерфейсов Способ, которым вы выполняете какую-либо задачу с помощью какого-либо продукта, а именно совершаемые вами действия и то, что вы получаете в ответ, и является интерфейсом. Эргономика - отрасль науки, изучающая человека (или группу людей) и его (их) деятельность в условиях производства с целью совершенствования орудий, условий и процесса труда.
Преимущества хорошего интерфейса (1) Повышение конкурентоспособности. Снижение себестоимости продукта. Увеличение аудитории пользователей продукта. Уменьшение затрат на обучение и поддержку пользователей.
Преимущества хорошего интерфейса (2) Уменьшение потерь продуктивности работников при внедрении системы и более быстрое восстановление утраченной продуктивности. Доступность функциональности системы для максимального количества пользователей. Снижение риска катастроф.
Внимание и память при разработке интерфейсов Концентрация внимания. Кратковременная память. Длительная память. Формирование привычек. Одновременное выполнение задач.
Кратковременная память Что попадает в кратковременную память? Изменение содержимого. Объем кратковременной памяти. Как относиться к правилу 7±2 элементов? Нагрузка на кратковременную память.
Долговременная память Помещение информации в долговременную память. Повторение Семантическая обработка Эмоциональный шок Цена вспоминания. Различные объекты Объем выборки Частота вспоминания
Эргономика интерфейсов: практическая часть Задание: спроектировать интерфейс для выполнения небольшого, не очень сложного действия. Создание прототипа интерфейса. Пользовательское тестирование на других участниках семинара. Обсуждение. Выработка улучшенного варианта интерфейса.
Почему одни программисты оказываются на порядок полезнее других? Предлагается отвечать на этот вопрос исходя из расслоения программистов по специализации и квалификации. Каждая из работ в рамках выполняемых процессов рассматривается как лежащая в диапазоне между физическим трудом (выполняя который программист решает вопрос: "как задание должно быть выполнено?") и умственным трудом (решая вопрос: "в чем заключается задание?").
Метафоры в программировании Метафора – красочное описание, формирующее понятие о новом объекте через установление сходства с известным. Метафоры в интерфейсе широко известны: окно, рабочий стол, … Метафоры при описании коллективного программирования: метафора оркестра, метафора квартета, …
Психология управления программным проектом (I) Эволюция менеджмента: Исторический аспект. Особенности европейского, американского, японского и российского менеджмента. Философия и стратегии программистских коллективов и организаций: Организационные стратегии. Проект: Характеристики программного проекта. Методы управления проектами. Планирование. Системы управления проектами. Основные модели управления в организации: Принятие решений.
Психология управления программным проектом (II) Профессиональная подготовка менеджера: Требования к личности. Психологический отбор. Тренинг в менеджменте. Здоровье менеджера. Мотивация: Потребности и мотивированное поведение. Теории мотивации. Особенности управления персоналом: Техники управления конфликтами. Личностные и групповые особенности протекания конфликтов. Кадровый менеджмент: Кадровая политика фирмы. Найм и увольнение работников. Резюме. Собеседование. Заработная плата. Карьера.
Психология управления программным проектом (III) Маркетинг программного обеспечения: Виды и функции рекламы. Целевая направленность рекламы различных видов. Связь с общественностью: Установление связей в обществе. Внешние и внутренние коммуникации. Психология оффшорного программирования: Портрет оффшорного программиста. Аутстаффинг, аутсорсинг, полная разработка. Управление рисками: Основы теории принятия рисковых решений. Измерения риска. Контроль, его необходимость и место. Виды контроля. Элементы практической психологии: Пути развития интуиции. Восприятие. Внимание. Память. Мышление. Эмоции. Сознание. Стресс. Кодекс этики профессионального программиста. Корпоративная культура.
Итоги Тематики хватит на несколько семестровых курсов и семинаров. Ажиотажный спрос на семинар со стороны студентов. Необходимы консультации профессионального психолога. Трудно получать достоверные (а не эмоционально эффектные) результаты. Предложения по тематике от студентов.
Спасибо! Вопросы? Подробные программы спецсеминара и спецкурса, а также презентации докладов помещены на страницах кафедры информатики математико-механического факультета СПбГУ http://www.sparc.spb.su/oio/cs/