пятница, 8 апреля 2011 г.

Мечтают ли андроиды об электрических овцах?...

Собственно говоря, возник вопрос: а для кого мы создаем программное обеспечение?
Естественно, речь идет не о casual ПО, класса текстовых процессоров и компьютерных игр. Я хотел бы рассмотреть целевую аудиторию специализированных программ. Например, из близкой мне области, можно взять широко известные Nmap и Nessus.

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

Вопрос банален, что важнее функционал или интерфейс?
Тратить годы на упрощение системы или то же самое время на совершенствование фильтрующих и генерирующих блоков — примерно такова дилемма.
На мой взгляд, проблема в "пороге вхождения". Для выборки данных из БД можно использовать красивую систему построения отчетов, интерфейсы a la "wizard", с выбором всех необходимых компонентов и построением связи. А можно предоставить текcтовое поле для ввода SQL выражения. Второй вариант, кстати, предоставляет больше гибкости и возможностей получить необходимый резльтат. Как его оформить? Ну, например, с помощь XSLT. Таким образом, в первом случае оператор должен уметь нажимать кнопки, а во втором знать SQL, XML и хорошо понимать что ему требуется получить.

Очевидно, что второй специалист стоит дороже. Однако, и результат, который вон выдает тоже более ценен. Где находится зона баланса цены и качества? И, кстати, возвращаясь к предыдущей заметки  где баланс скорости разработки и удобства использования?

Общая тенденция ведет к раскручиванию интерфейсов. Nmap обзавелся графикой (Zenmap). Теперь можно запускать сканирование прикасаясь к клавиатуре разве что для ввода цели, и совершенно не вникая в описание программы и её ключей. Надо признать, что просмотр результатов стал более нагляден за счет карты сети и прочих красивостей. Но, ценность информации не выросла. От того, что отчет оформлен в красивую таблицу данных в нем больше не стало. Карта сети  плюс, но стоил ли он той разработки?

Еще один пример: VisualSploit из пакета Canvas. Эксплуатация уязвимостей в стиле drag&drop. Здравствуйте script-kiddies! Зачем учиться, читать, разбираться? Достаточно накидать мышкой компонентов  и вот тебе взлом системы.

Может имеет смысл задуматься?
система не должна упрощаться. Дружественность системы, то, что проповедовал и внедрял в жизнь Гейтс для своих настольных приложений, было как раз тем, чего они старались и стараются избежать.
Повышение порога входа приводит к тому, что приходит только действительно целевая аудитория. Чтобы понять что это и как это использовать нужно как минимум понимать зачем оно нужно. Дожен быть сформированный взгляд на проблему. Иначе  пшик. Толпы посторонних "пользователей" – это всего лишь нагрузка на поддержку продукта.
Щелкать в Word по клавишам можно научить любую обезьяну. Чтобы на серьезном уровне освоить последнюю <…>, требуется порядка двух-трех лет. И это при сформировавшемся взгляде на философию системы. 
А мы ищем таланты. И даже готовы помогать им учиться. Но пусть они мечтают именно о нашей овце.

Все приведнные цитаты взяты из произведения Станислава Шульги "Диспетчер Атаки." 2005 год. 

Комментариев нет:

Отправить комментарий