Как стать автором
Обновить

Комментарии 55

Лучше всего не спрашивать таких вопросов, а сразу же выкладывать статью(-и).
А что касается самой публикации, тема статьи мне кажется очень интересной.
Так и хотели сделать изначально. Но процесс написания оказался более трудоемким, чем мы предполагали. Поэтому предварительно решили выяснить, есть ли у пользователей интерес к такого рода материалу.
Хм. Это конечно интересно, но почему Вы не используете уже отработанные варианты типа RUP ?
Лично я считаю, что RUP, как и любая другая "тяжелая" методология - не самый удачный выбор для небольших комманд, разрабатывающих среднего уровня сложности веб-приложения. Мы приверженцы гибкой (agile) разработки, которая позволяет нам больше делать и меньше говорить. Хотя, если речь идет об интерпрайзе, то там бюрократия - неотъемлимая часть разработки ПО и правила игры совсем другие.
В тезисах пока ничего про Agile не видно, кстати.
Повторюсь: мы задумали написать небольшую заметку, а не книгу. Поэтому и не затрагивали "китов" гибкой разработки XP + TDD, CI, если вы это имели в виду.
а как вы собираетесь рассказывать о вашем процессе разработки ПО, не затрагивая принципы, на которых ваш подход базируется - скажем, итерационность хотя бы?
Ну RUP тут точно непричём. Может быть - OpenUP/Basic, который есть облегчённый в Agile RUP, но и то у команды не тот уровень зрелости пока, похоже, хотя он именно для такого размера и задумывался.
«интерфейс определяет модель» — занятно, это как? Традиционной является как раз противположно направленная связь.

Конечно было бы интересно почитать про применяемый процесс разработки. Возможно, вам это будет даже полезнее, чем сообществу. Подайте лучше по частям, но одновременно.
Подход от интерфейса к функционалу имеет свои преимущества.
"Интерфейс определяет модель" нужно воспринимать скорее как "каким образом интерфейс может определять модель" т.е. без фанатизма :)

Работа ведется сначала над интерфейсом, с активным участием заказчика в этом процессе. Изменения вносятся легко и непринужденно, так как править представление - это совсем не то же самое, что править модель. В итоге получаем модель, которая может отличаться от исходной (если бы она существовала) очень сильно, начиная от новых атрибутов у объектов и заканчивая появлением новых объектов и отношений. Конечно, мы не избавляемся от риска появления новых требований и необходимости изменения модели. Более того, мы знаем, что они будут и не боимся этого :) Но описанный выше подход позволяет существенно снизить их количество, особенно на ранней стадии разработки.
У них "интерфейс" используется как замена письменным требованиям, как я понял. Вполне разумно, в определённых пределах.
Не совсем. Разработка от интерфейса - это возможность уточнить требования, а не заменить их.
не понял, вы не включаете работу с требованиями в процесс разработки, так что-ли? и они у вас фиксируются перед разработкой раз и навсегда? или они меняются, и если да, то где эти изменения требований отражаются?
Очень клевая картинка!
Распечатаю и повешу на стенку) Супер)
Где то в интернете ходит английский вариант...
Вернее оригинал.
Да, очень интересно. Выкладывайте. :)

Мне кажется, что лучше сделать цикл статей (по одной статье на тезис). Хотя, если объем не очень большой, то лучше, наверное, все целиком.
Лучше все вместе, так лучше воспринимается.
Vox, респект за картинку ))

афтару: жду статью целиком ))

от себя: считаю что сначала надо делать дизайн/интрефейс целиком, абс всего, и верстать. т.е. должен получиться "макет" готового сайта.
а потом уже "оживлять" програмированием )
Мы за отделение понятий "интерфейс" и "дизайн" и за порядок, который описан в тезисах. Т.е. интерфейс -> программирование -> дизайн.
да, интересно услышать, почему не делаете дизайн параллельно с программированием и куда дели вёрстку
Раскроем в статье :)

Если кратко, то разработка дизайна параллельно с программированием приводит к выполнению лишней работы в обоих направлениях. Поэтому дизайн разрабатывается уже на полностью готовом приложении, где реализован весь функционал, а также видны связи, зависимости.
Используем для разработки интерфейсов Axure (http://www.axure.com/)
Рекомендую для ознакомления.

=============
P.S. RUP тоже имеет место быть.
Он, насколько я понял, в итоге генерит обычный html. Вы используете этот html код в проекте или верстаете с нуля?
С нуля, конечно. Только он не просто HTML генерирует, а документацию к интерфейсу и рабочую презентацию (демоверсию)
А почему бы сразу же не начать делать шаблоны для проекта и не заставить их работать средствами фреймворка? Времени уйдет немного больше, зато вы получите рабочую заготовку интерфейса. Хотя, все зависит от подхода, который вы используете для разработки ПО. Поэтому то что я считаю оверхедом, глядя со своей колокольни, в вашем случае может быть оправданно.

P.S. С программой все-равно ознакомлюсь :)
Если это действительно методика разработки приложения, то:
Где у Вас анализ предметной области и бизнес-процессов клиента? Где изучение или составление требований к продукту проекта? Где у вас составление проектной документации? и т.д. или вы переходите сразу к построению наброска интерфейса?
Тема проектирования не была затронута сознательно, иначе получилась бы не статья, а книга :) Естественно, мы не начинаем работу над проектом с набросков интерфейса. Но и на этапе проектирования стремимся быть гибкими и свести процесс бумагомарания к минимуму.
а вы делаете только слабонагруженные проекты? вопросы архитектуры в принципе не обсуждаете, т.к. нет необходимости?
У нас были проекты средней нагрузки: 40к хостов, 200к хитов. Проектов с большой нагрузкой не разрабатывали. Что в вашем понимании есть "выбор архитектуры"?
Возникает новый проект, и требования, которые касаются архитектуры, а именно - производительность, интеграция, технические ограничения необходимо согласовать с вашей платформой (если она у вас есть) - потянет ли вообще, если нет, что делать; что делать, если клиент просит postgres, а у вас всё заточено под mysql и т.д. Эту работу тоже надо делать, и она не относится ни к требованиям, ни к программированию.
С терминами мы определились, вернемся к вопросу: "вопросы архитектуры в принципе не обсуждаете, т.к. нет необходимости?" Если кратко: обсуждаем. Но мы ограничены используемыми языками программирования, фреймворком, операционными системами (разрабатываем только по unix-подобные ОС) и так далее со всеми вытекающими последствиями. Если бы мы одинаково хорошо владели .Net, Java, PHP, Ruby, дела бы обстояли иначе. Что касается железа и сопутствующих вопросов: мы консультируемся с людьми, которые разбираются в этом лучше нас и стараемся прислушиваться к их мнению.
Не совсем понятно, правда, какое отношение это имеет к интерфейсам и озвученным тезисам :)
вы пишете - "... статью по разработке веб-приложений ..."

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

P.S. "Готовый продукт", наверное не самое удачное название для последнего пункта, может именно оно вас смутило? Имелось в виду объединение дизайна и запрограммированного интерфейса.
Почему бы сразу в этих статьях не затронуть тему подготовки test cases (здесь и настоящий контент пригодится к описанию), SEO оптимизации готового контента, проверка на пользователях и подобное. Вы используете эти моменты в своей работе?
Прочтите вот этот мой комментарий :)
наверно набирал вопрос до того или во время того, как вы писали ответ другим :)
Вообще тестирование основывается на требованиях. Если они даже не говорят про последние, то какие могут быть тесты? ) Тестировать на соответствие чему?
Вы невнимательно читаете мои комментарии :)
Кстати, а что вы скажите касательно приемочного тестирования (тестирования "черного ящика")?
очень полезная штука, наряду с остальными типами тестов, перечисленными мной вот здесь: http://beskov.livejournal.com/14493.html
Я к тому, что для приемочного тестирования не обязательно иметь доступ к требованиям.

P.S. На ваш блог уже довольно давно подписан ;)
User Story - это не требования, вы со мной согласны?
я рад, что мы поняли друг друга)
Различные современные подходы к описанию функциональных требований обсуждаются вот здесь.
С другой стороны я немного погорячился, признаю :) Без аналога требований заниматься приемочным тестированием весьма проблематично.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации