Джо Линстрот
Разработка программного обеспечения — это не только программирование и функции. Этот процесс также требует подхода, ориентированного на человека, который опирается на сотрудничество и общение. Когда Жосленн Пенья, доцент кафедры математики, статистики и информатики, преподает «Проектирование и разработка программного обеспечения», она гарантирует, что студенты понимают, что сочувствие и вовлеченность столь же важны для разработки следующего великого программного обеспечения, как и знание Python и JavaScript.
Вы описываете создание программного обеспечения как искусство и ремесло. Что ты имеешь в виду?
В целом люди не склонны рассматривать создание программного обеспечения как искусство и ремесло не только с точки зрения готового продукта, но и с точки зрения процесса. В курсе мы стараемся подчеркнуть, что процесс проектирования (выдумывание идей, мозговой штурм) действительно важен. И на каждом этапе у вас есть большая свобода действий и автономия, как независимо, так и в сотрудничестве с другими, например, с заинтересованными сторонами, для которых вы фактически создаете программное обеспечение.
В этом курсе вы делите студентов на команды, каждая из которых придумывает идею программного проекта и реализует ее. Чем эти долгосрочные проекты отличаются от простых домашних заданий?
Что действительно отличает этот курс, так это то, что это проект продолжительностью в семестр, где преподаватель на самом деле является просто координатором. Другое отличие состоит в том, что мы не говорим студентам, что делать или какой проект выбрать, поэтому я думаю, что в конце, когда они закончат, это действительно приносит пользу. Мы не читаем лекции, и у нас нет домашних заданий, кроме чтения методов и инструментов программного обеспечения и обсуждения того, что делает программное обеспечение совместным и эффективным. Студенты не привыкли к занятиям, где все свободны, но это отличный опыт обучения, потому что в промышленности меня там не будет, и кто-то даст вам задание, а вы не скажете, что делать. Вам нужно понять и задать вопросы.
Что, по вашему мнению, делает новый программный продукт успешным?
Это зависит от проблемы, которую вы пытаетесь решить, и вашей целевой аудитории. Я также думаю, что это зависит от процесса, например, того, что произошло между А и Б, от концептуализации идеи до ее реализации и публикации. Уделялось ли вам тщательное внимание на протяжении всего жизненного цикла разработки программного обеспечения? Активно ли вы общались с партнерами сообщества и заинтересованными сторонами, но не предполагали потребности пользователей? Это важный момент.
Вторая часть, которую я собираюсь рассмотреть, — это уменьшение и предотвращение ущерба. Многие программы, выпущенные на рынок, вредны для людей, будь то приложения для наблюдения или приложения, включающие в себя ту или иную форму искусственного интеллекта, которая не была принята во внимание с точки зрения этики. Если есть некоторая степень внимания к социальной справедливости и этическим вопросам, это важно. Будем надеяться, что продукты, которые будут продаваться, будут действительно эффективными, но также и продемонстрируют человечность.
Какие аспекты разработки нового программного обеспечения создают наибольшие трудности для студентов?
Большая часть курса посвящена командной динамике, разрешению конфликтов и общению. Основная информация, полученная в этом курсе, связана не с технологиями или программным обеспечением, и даже не с их созданием и программированием, а с человеческим аспектом. Вы не можете создать хорошее программное обеспечение, не общаясь с другими людьми. Мы объединяем их в команды, потому что это то, с чем они столкнутся в реальном мире, а управление командными конфликтами и достижение консенсуса — одни из самых сложных задач. Что значит провести продуктивную встречу и продолжить выполнение задач? Я думаю, что студентам часто бывает трудно общаться и достигать консенсуса по поводу идеи проекта и наилучшего подхода.
Ваша задача как исследователя информатики — понять, как решать проектные и вычислительные задачи с точки зрения пользователя. Приходит ли на ум пример из вашей карьеры, который иллюстрирует эту важность для вас?
Одним из примеров, которым я хотел бы поделиться, является моя фамилия Пенья, в которой на букве «н» есть тильда. Это особый символ, и многие компьютерные системы и приложения не распознают мою фамилию с этой тильдой. Они фактически укажут, что есть ошибка или что она не распознана. В одном из моих дипломов его не было, и мне пришлось обратиться к регистратору и сообщить, что это часть моей фамилии. Я делаю эту ссылку, чтобы рассказать студентам, что такое иногда случается, когда вы что-то создаете и не хватает предусмотрительности думать, что у других людей фамилии состоят из тильд или других специальных символов. Такая мелочь может показаться не такой уж большой проблемой, но для некоторых людей это важно, когда они чувствуют, что вы стираете их личность. Вот что происходит, когда вы создаете программное обеспечение, не разговаривая с людьми, не сотрудничая и не гарантируя, что инклюзивность является намерением.
Джо Линстрот — директор по связям со СМИ в Macalester.