В функциональной спецификации нет ни грамма функциональности
В функциональной спецификации нет ни грамма функциональности
Не составляйте функциональных спецификаций
Эти черновые документы обычно не имеют почти ничего общего с конечным продуктом. И вот почему:
Функциональные спецификации — это фантазии
Они не отражают реальности. Приложение не является реальностью до тех пор, пока строители не начнут его строить, дизайнеры — оформлять, люди — использовать. Спецификации — это только слова на бумаге.
Функциональные спецификации как средство умиротворения
Они для того, чтобы каждый почувствовал себя вовлеченным и счастливым. Приятное чувство, но не такое уж полезное. Спецификации никогда не говорят о принятии неприятных решений и не открывают истинных затрат — а это как раз то, что нужно для построения хорошего приложения.
Функциональные спецификации создают лишь иллюзию соглашения
Какое-то количество людей, согласных с текстом — это не есть соглашение. Каждый может читать тот же самый текст и думать о разном. Это безусловно всплывет позже, когда станут говорить: «Обождите, это не то, что я подумал», «Что? Да это же не так, как мы описали», «Да, это именно так, и мы все согласились с этим, тут даже есть ваша подпись». Вы знаете, как это обычно бывает.
Функциональные спецификации заставляют вас принимать наиболее важные решения именно тогда, когда у вас меньше всего информации
Вы меньше всего знаете о приложении, когда вы начинаете его строить. Чем больше вы его строите, чем больше используете — тем больше вы его знаете. Вот когда вам стоит принимать решения — когда у вас больше информации, а не когда меньше.
Функциональные спецификации ведут к перегруженности функциями
В стадии спецификаций вас ничто не ограничивает. Ничего не стоит просто писать и добавлять все новые и новые пункты. Вы можете уступить кому-то надоедливому тем, что добавите его любимую функцию. Потом вы будете разрабатывать с тем, чтобы удовлетворить эти пункты, а не людей. Именно так получаются перегруженные сайты с 30 кнопками по верху экрана.
Функциональные спецификации не дают вам развиваться, меняться и пересматривать
Вот функция программы подписана и согласована. Даже если вы поймете в процессе разработки, что эта идея была плохой, вы на ней застряли. Спецификации нет дела до действительности, когда как только вы начинаете что-то строить, все меняется.
Так что же вы должны делать вместо написания спецификации? Найдите более короткую альтернативу — такую, которая продвигает вас по пути создания. Напишите рассказ в одну страницу о том, что именно приложение должно делать. Используйте простой язык и сделайте это быстро. Если вам потребуется более одной страницы, значит, вы очень усложняете. Этот процесс не должен занять более одного дня.
Потом начните строить интерфейс — он и будет альтернативой функциональной спецификации. Нарисуйте несколько эскизов на бумаге. Потом начните кодировать это в html. В отличие от текста, который могут понять по-разному, дизайн интерфейса будет представлять то общее, с чем все могут согласиться.
Двусмысленность уходит, когда все начинают видеть на экране одно и то же. Постройте интерфейс, на который каждый может смотреть, пользоваться им, кликать мышкой, почувствовать его — до того, как начнете беспокоиться о внутреннем коде. Встаньте на передний край пользовательского опыта, насколько это возможно.
Забудьте о подписанных раз и навсегда спецификациях. Они заставляют вас принимать крупные, ключевые решения слишком рано в процессе разработки. Обойдите стороной стадию спецификации, и вам удастся быть гибкими и сделать изменения дешевле.
Бесполезные спецификации
Спецификация по большей части бесполезна. Я никогда не видел спецификации настолько большой, чтобы быть и одновременно и полезной, и точной.
В то же время я встречал много раз полную туфту, которая была основана на спецификациях. Это наиболее плохой способ писать программы, так как он по определению значит, что программа писалась, чтобы соответствовать теории, а не действительности.
— Линус Торвальдс (Linus Torvalds), создатель Linux[33] (из: Linux: Linus On Specifications[34])
Боритесь с создателями препятствий
Я обнаружил, что люди, настаивающие на подробных описаниях требований к программе до того, как начать разработку, в действительности являются создателями препятствий, пытающимися замедлить процесс (и которым обычно нечего сказать по поводу дизайна или инновационного мышления).
Все наши лучшие работы начинались с небольшого количества идей о том, как улучшить сайт, быстрого создания прототипа (статического), небольшого изменения дизайна и затем построения реального прототипа с реальными данными. После этого настоящий проект быстро набирал обороты и выполнялся с хорошим результатом.
— Марк Галлахер (Mark Gallagher), разработчик корпоративных интранет-сайтов (из Signal vs. Noise)
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Спецификации W3C
Спецификации W3C W3C выпускает спецификации как для XML, так и для XSL, и именно с ними мы будем работать на протяжении всей книги. Спецификации W3C не называются стандартами, поскольку, по международным соглашениям, стандарты могут создаваться только уполномоченными
Не навреди функциональности
Не навреди функциональности Естественно, мы хотим, чтобы наши программы работали. Многие из нас стали программистами после того, как им удалось заставить работать свою первую программу, и это чувство хочется испытать снова. Но в работоспособности наших программ
Глава 4. Реализация функциональности приложения
Глава 4. Реализация функциональности приложения В двух предыдущих главах мы показали способы создания пользовательского интерфейса приложения Электронная таблица. В данной главе мы завершим программирование функций, обеспечивающих работу этого интерфейса. Кроме
17.4. Спецификации — ДНК, код — РНК
17.4. Спецификации — ДНК, код — РНК Даже в давние времена PDP-7 Unix-программисты всегда (больше чем их коллеги, работающие с другими системами) были склонны рассматривать старый код как непригодный к повторному использованию. Это, несомненно, было продуктом Unix-традиции,
17.4. Спецификации — ДНК, код — РНК
17.4. Спецификации — ДНК, код — РНК Даже в давние времена PDP-7 Unix-программисты всегда (больше чем их коллеги, работающие с другими системами) были склонны рассматривать старый код как непригодный к повторному использованию. Это, несомненно, было продуктом Unix-традиции,
1. Ограничение функциональной зависимости
1. Ограничение функциональной зависимости Ограничения уникальности, накладываемые объявлениями первичного и кандидатных ключей отношения, является частным случаем ограничений, связанных с понятием функциональных зависимостей.Для объяснения понятия функциональной
1.4.4. Использование нетрадиционного синтаксиса на диаграммах функциональной модели
1.4.4. Использование нетрадиционного синтаксиса на диаграммах функциональной модели BPwin 4.0 позволяет нарушить традиционный синтаксис нотаций IDEFO, IDEF3 и DFD и использовать для работы не прямоугольники, а практически любые геометрические фигуры. Кроме того, можно разместить
Глава 4. Практикум. Создание функциональной модели с помощью BPwin 4.0
Глава 4. Практикум. Создание функциональной модели с помощью BPwin 4.0 4.1. Упражнение 1. Создание контекстной диаграммы Гл. 4 содержит 16 упражнений, предназначенных для самостоятельной работы. Цель упражнений - дать читателю навык создания и редактирования функциональных
Пища функциональности
Пища функциональности Они этого жаждут — дайте же им скорееДобавление новых или интересных функций — хороший способ усилить разговоры о вашем приложении. Группы по интересам очень любят пережевывать «пищу функциональности» и выплевывать ее обратно в сообщество.
Роль стандартов, профилей и тестирования функциональной совместимости
Роль стандартов, профилей и тестирования функциональной совместимости Несмотря на то, что стандарты являются средством обеспечения функциональной совместимости PKI-продуктов разных поставщиков, следование стандартам является необходимым, но не достаточным условием
Инициативы по обеспечению функциональной совместимости PKI-продуктов
Инициативы по обеспечению функциональной совместимости PKI-продуктов Национальные инициативы К числу наиболее известных национальных инициатив по обеспечению функциональной совместимости можно отнести инициативы США: Automotive Network eXchange, Bridge CA Demonstration, проект федеральной
Спецификация минимальной функциональной совместимости
Спецификация минимальной функциональной совместимости В 1996 г. институт NIST совместно с рядом поставщиков продуктов, лидирующих на рынке PKI - AT&T, IREBBN, Motorola Certicom, Nortel (Entrust), Cylink, Spyrus, DynCorp и VeriSign, - выступил с инициативой разработки спецификации минимальной функциональной
Проблемы функциональной совместимости продуктов разных поставщиков
Проблемы функциональной совместимости продуктов разных поставщиков Помимо проблемы стандартов, существует также проблема функциональной совместимости продуктов разных поставщиков [99]. Не все программные средства поддержки каталога имеют одинаковую
Анализ реальных возможностей функциональной совместимости
Анализ реальных возможностей функциональной совместимости Поставщики программных средств могут законно заявлять о соответствии своих продуктов стандартам, но по ряду причин не всегда реально может достигаться функциональная совместимость продуктов нескольких