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

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

а где самый популярный ответ «никто» в первом пункте опроса?
Готово. Можете воспользоваться.
НЛО прилетело и опубликовало эту надпись здесь
То есть, вы утверждаете, что баг, пропущенный при разработке по водопаду, после релиза, гораздо дешевле бага, который нашли во время тестирования?


Не утверждаю, а можете на материале статьи пояснить как у вас сформировался этот вывод?! Свою логику.

«Водопад» предполагает и включает в себя этап «тестирования». Поэтому когда вы сравниваете ошибку сделанную в разработке ПО по «водопадной» модели, с «нашли во время тестирования» не понимаю о чем вы.

Возможно, вы хотели спросить стоит ли ошибка допущенная по «водопадной» модели разработки дешевле чем ошибка допущенная по какому-либо фреймворку «гибкой» разработки?

Если об этом речь, то сравнивать стоимость устранения ошибок в обоих случаях не возьмусь, скажу что сейчас во фреймворках «гибкой» разработки допускается больше структурных ошибок, так как упор делается на ту выгоду которую можно получить в ближайшей перспективе против долгосрочных целей. Так формируется «технический долг», который потом вылезает в виде новых ошибок.

Вот статья которая это иллюстрирует — Пьеса «Технический долг».
Как это лечить описано в статье «будущее гибкой разработки».

Я выступаю за использование фреймворков гибкой разработки, которые требует от работающих в них более высокой «инженерной культуры», повышением которой мы, пишущие и читающие на Хабре, и занимаемся.
НЛО прилетело и опубликовало эту надпись здесь
Да заказчикам нужно быстро и дешево, о каком качестве может идти речь)
Оно подразумевается) Мы же профессионалы.

Да заказчикам нужно быстро и дешево, о каком качестве может идти речь)

Видите ли, конечно быстро и дешево. Ведь это такие понятные слова. А если сайт будет подтормаживать, иметь дыры в безопасности, будет сложно добавить новые фичи, а старые будут работать некорректно — это уже вопрос не к менеджерам, а к низкой квалификации разработчиков.
Это и имел ввиду под «Мы же профессионалы».

Заказчику нужно быстро и дешево, а если будут проблемы то в этом виноваты конечно же мы, команда разработки, что плохо сделали свою работу. А если мы делаем свою работу плохо, то логично же что нам недостает квалификации. Настоящие же профессионалы работают хорошо, быстро и дешево. — скажет Менеджер / Заказчик.

Только и остается, что наращивать экспертизу, учиться продавать себя и становится Менеджерами-Профессионалами, чтобы быстро и дешево обеспечивать засчёт применения современных технологий и связи с реальностью.

«Чтобы мы были теми переменами которых ищем».
А кто набрал на проект таких разработчиков, которые не в состоянии справиться с поставленными задачами, не менеджеры-ли?

Кстати, в статье этот момент хорошо описан. В самом деле «накосячить» можно в любой момент. Причем если говорить о квалификации, то она влияет лишь на вероятность появления дефектов, но не на их принципиальную невозможность. Собственно из это и появляется вся эта история с задачами контроля качества и вовлечением в процесс персонала разного уровня. Отсюда и возникает мысль, что качество это командная responsibility, начиная от первых контактов с заказчиком и до закрытия проекта.
Ну вы что? Менеджеры (особенно топ) всегда все делают правильно.
А вообще да, разработчики, которые соглашаются на «дешево, быстро и некачественно» — сами виноваты в таком к ним отношении.

Хотя в общем направление мысли адекватное, но в статье всё настолько идеализировано и упрощено, что описанное скорее напоминает модель для настольной игры в разработку качественного ПО для детей среднего школьного возраста, нежели реалии нашей работы.

но в статье всё настолько идеализировано и упрощено

Это даётся не просто, через постоянные тренировки.

Тем кто раньше не задумывался о качестве надо с чего-то начинать / раскапывать эту тему, с этими знаниями не рождаются, а вот с темой всё чаще сталкиваются по мере роста компании и разбираться нужно.

И начинать стоит с простого и прагматичного. Затем посмотреть на историях гуру менеджмента качества как эволюционировали идеи про качество и уже отсюда двигаться в ITIL, COBIT, CMMI, SWEBOK и серию ISO.

Внедрять информационные системы типа Atlassian JIRA, чтобы построить учет ошибок и дефектов в разрезе версий выпущенного ПО, планировать их устранения по будущим версиям, автоматически собирать данные о затратах на их устранение, типизировать, по правилу «20 на 80» устранять самые тяжелые.

Осваивать технологии Test Driven Development, Behavior Driven Development, Continuos Integration, Интерактивного прототипирования без разработки.

Наши реалии таковы, что прихожу я в большой банк познакомится с ИТ-директором и он просит меня помочь им продать CI бизнесу (бизнес-подразделениям) при этом говорит что всё что мы можем сказать — сколько это будет стоить (сколько и какого железа и софта нужно будет купить, сколько человек ещё нанять), а вот какой эффект банк и его бизнес от этого получит нет. Также есть серьезная проблема с наличием актуальной документации на текущие эксплуатируемые системы.

В итоге все выглядят как папуасы на острове, увешанные бусами и всякими другими модными штуками, где микроскопом колют кокосы.
Вообще, в ISO 9000 описаны небесполезные вещи для понимания управления качеством. Удивлён, что в опросе нет даже варианта управления качеством по ISO 9000 (через службу качества).
Ну почему не написано? Идеологий ISO 9000 построена на контроле качества через контроль производственного процесса. Так что пункт 2 в первом опросе как раз о том, о чем вы говорите.

Для программного обеспечения всё-таки его написание является проектированием и разработкой, а не производством. Но я-то имел в виду первый вопрос в его изначальной формулировке.

Ну программное обеспечение такой же продукт, как любой другой. Так что данный стандарт распространяется и на процесс создания программного обеспечения в полной мере.
Разумеется. Я просто уточнил, что программирование — это не производственный процесс, а процесс разработки.
Есть мнение что в it-индустрии отсутствие контроля качества (хм, или отсутствие самого качества) является одним из способов (или причин) создания дополнительных рабочих мест. Это «грустно» и «весело» одновременно.

Для меня статья немного сумбурная и с немного непонятными выводами.
Вам просто надо по горизонтали отложить этапы разработки ПО начиная от требований, спецификации, кодинга, и заканчивая релизом и передаче пользователю. И для каждого этапа поставить столбик, показывающий сколько стоит устранить ошибку, найденную на данном этапе. Получится интересная кривая, обычно стремительно возрастающая к конечным этапам. Т.е чем раньше в процессе разработки будет обнаружена и устранена ошибка, тем меньше последствия.
Именно поэтому в настоящее время становятся популярны Model-driven-development или Model-Based Design — это когда на этапе требований строится модель ПО, которая уже на этом этапе дает возможность проверить множество требований и устранить множество ошибок путем упрощенного моделирования происходящих процессов, например вычислений, обмена данными между модулями, пользовательских интерфейсов и т.д.

Жаль что многие пользователи и заказчики хотят получить качество не платя за это ни чего. Больше всего проблем возникает со всякого рода кастомизацией, допиливанием. Проектные проработки и документирование обходятся дороже, чем написание кода «на живую, по месту».
В общем расчёте не раскрыта цена времени у разных участников процесса.
Это как раз не проблема коэффициентики прикрутить. Правда, результаты могут не такие гладкие получиться, если время тестировщика стоит условно 2 ед, а время планктона заказчика с точки зрения исполнителя стоит внезапно 0 =)
Хуже, что не учтено другое: затраты этого времени есть штука вероятностная; какой-то баг фиксится за 15 минут, а какой-то может и на пару недель потянуть, если скрывает существенный рефакторинг (например, если баг не устраним без смены нижележащей либы).
Вот и дефекты. Максим, когда ждать исправленную версию статьи?)
Хуже, что не учтено другое: затраты этого времени есть штука вероятностная; какой-то баг фиксится за 15 минут, а какой-то может и на пару недель потянуть, если скрывает существенный рефакторинг (например, если баг не устраним без смены нижележащей либы).

ИМХО затраты времени на каждом этапе разработки тем более предсказуемы, чем ближе продукт к финальной стадии. На самом деле, если какой-то баг найден в момент, когда продукт уже зарелизен, то основное время потратится не на его фикс программистом, а на бюрократию — принять баг от пользователя службой поддержки, воспроизведение, документирование и передача разработчикам, фикс(15минут- неделя), пререлиз, тестирование всего продукта по новой, релиз.
Также следует учесть, что такие серьезные баги, как смена либы, должны отсеиваться и фикситься на ранних стадиях разработки, а не в конце. Что опять же ведет к тому, что затраты времени на фикс одного бага ближе к концу проекта составляют примерно константу.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории