Не спеша, эффективно и правильно – путь разработки. Часть 1. Парадигма

05.06.22

Разработка - Рефакторинг и качество кода

Черновой вариант книги Никиты Зайцева, a.k.a.WildHare. Разработкой на платформе 1С автор занимается с 1996-го года, специализация — большие и по-хорошему страшные системы. Квалификация “Эксперт”, несколько успешных проектов класса “сверхтяжелая”. Успешные проекты ЦКТП. Четыре года работал в самой “1С”, из них два с половиной архитектором и ведущим разработчиком облачной Технологии 1cFresh. Ну — и так далее. Не хвастовства ради, а понимания для. Текст написан не фантазером-теоретиком, а экспертом, у которого за плечами почти двадцать три года инженерной практики на больших проектах.

Disclaimer

Коллеги, вашему вниманию предлагается почти финальный вариант моей книжки. Была и остается идея издать это в бумажном варианте, но идея довольно зыбкая. К сожалению, имеются некоторые проблемы со здоровьем. Но очень хочется, чтобы труд не пропал, поэтому книжка отдается в открытый доступ. Можно публиковать где угодно, цитировать и так далее. Единственное условие — ничего в тексте не менять и указывать авторство. Автор текста — Никита Викторович Зайцев (также известный как WildHare).

Книжка повествует об эффективной разработке программного обеспечения. Можно сказать, что это дистиллят моей личной практики, наработанного опыта, знаний и умений. 

Предыстория появления книжки в формате интервью порталу Инфостарт:

//infostart.ru/journal/news/mir-1s/nikita-zaytsev-ya-universalnyy-soldat-v-mire-1s_1250753/

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

Приятного чтения ;-)

 

Краткий курс политэкономии

Два пути через торфяное болото разработки

Как и почти в любом деле, в разработке программного обеспечения (и не только на платформе “1С:Предприятие”, это универсальный принцип) можно выделить два принципиально разных подхода.

 

Быстро и криво

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

У такого подхода есть одно серьезное преимущество. Если расположение звезд окажется удачным, а разработчик более-менее опытным — действительно, что-то заработает прямо сразу. И какое-то время это “что-то” будет функционировать.

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

Во-вторых, результат разработки с вероятностью практически 100% попадает хотя бы в одну из типичных ловушек:

  • Неустойчивость к входным данным (“Очень странно, у меня же все загружалось”). При написании кода использовались самые примитивные примеры, а в реальных данных заказчика оказалась закопана добрая дюжина грабель с прочными дубовыми черенками.
  • Несоответствие техническому заданию и ожиданиям заказчика в целом. (“Но мы думали, что здесь нужно просто создать и записать документы, а чтобы при повторной загрузке изменять ранее созданные речи вроде бы не было”). Прямое следствие методики “код пишется параллельно чтению технического задания”. Задание читается по диагонали, писать код значительно интереснее.
  • Неполнота реализации требуемых функций. (“Протоколирование мы пока еще не сделали, и в отчете пока только две колонки без детализации. Это мы потом доделаем, но данные загружать можно уже сейчас”). Заказчику предлагается что-то вроде легкового автомобиля без стекол и кресел, но можно же пока табуретку поставить? Используя инженерную смекалку, всегда можно найти временное решение. Беда (для заказчика) в том, что временные решения с течением времени получают статус постоянных, раз уж выдержали проверку временем.
  • Наличие элементарных ошибок. Под “элементарными” здесь понимаются такие ошибки, которые возникают в основном потоке событий приложения, причем с валидными входными данными. (“Здесь нужно пока не обращать внимания, просто нажмите Отмена, а дальше сначала нажмите Обновить, потом снимите и сразу поставьте обратно эту галочку, а потом уже Сформировать” — представитель заказчика лихорадочно записывает на бумажку). Методика “Мы просто пишем код”, к сожалению, не предполагает затрат труда и времени на альфа-тестирование хотя бы основного потока событий, не говоря об альтернативных потоках.
  • Низкое качество кода в плане сопровождения и развития функциональности. (“Нет, эту функцию добавить не получится, тут нужно будет почти все полностью переписать. Почему? Какие сроки были поставлены, вы помните? Поэтому и переписать” — через месяц после запуска. “Кто же это вам такую красоту написал? Руки бы оторвать, тут нужно все переделать с нуля” — через шесть месяцев, от представителя другой команды специалистов).

Почему так?

— Ибо дело, свершенное в спешке, никогда не бывает свершено наилучшим образом.

Памятка руководителю. Опознать методику “Быстро и криво” можно по внешним родовым признакам, даже не заглядывая в код. Вот некоторые из них:

  • Соотношение трудозатрат на разработку и отладку не менее, чем 50/50.
  • Отсутствие внятных пользовательских инструкций.
  • Большое (больше двух) количество итераций “сдали результат — попробовали эксплуатировать — что-то не работает — вернули на доработку”.
  • Наличие ошибок, которые обнаруживаются вторым-третьим кликом.
  • “Эта ошибка уже была в одной из предыдущих версий, но ее же исправили?”

Нельзя сказать, что подход “Быстро и криво” является абсолютным злом. Существует несколько классов задач, где такой подход действительно позволяет существенно сэкономить трудовые и временные ресурсы.

  • Быстрое прототипирование. Проверить гипотезу, понять принцип действия какого-то механизма платформы, попробовать сопряжение с каким-то сторонним API, и так далее. Но здесь нужно четко понимать, что “быстрый прототип” делается на выброс, это даже не временное решение, а просто пробник.
  • Ликвидация аварий. При тушении пожара хороши любые средства, и когда система собирается падать (или уже падает), вопросов “насколько грамотно, изящно и эффективно написан подпирающий код” не возникает в принципе. Только нужно не забыть потом заменить вбитые костыли добротной инженерной конструкцией (см. “временные решения”).
  • Одноразовые инструменты “для себя”. Когда требуется написать, например, какой-то крохотный корректировщик данных вида “использовал и выбросил”, забивать себе голову альтернативными потоками событий, снижением издержек на сопровождение и другими высокими соображениями абсолютно незачем.

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

 

Не спеша, эффективно и правильно

Подход посложнее — не спешить с написанием кода, не пытаться выкроить лишний грошик на ресурсах. Разработка даже самого простого механизма, самой элементарной, казалось бы, функции, выстраивается в несколько стадий:

  • Анализ. Изучение задачи, изучение текущего положения, выявление противоречий, уточнение неочевидных мест, допущений и ограничений.
  • Проектирование. Разработка “на бумаге”. Принятие основных проектных решений (при необходимости с проверкой на быстром прототипе).
  • Кодирование. Собственно написание и отладка кода. Честно говоря, это не самое захватывающее занятие — если все продумано и правильно спроектировано, код является очевидным, и очень жаль, что сам себя он писать пока еще не способен.
  • Проверка. Прежде, чем передавать какую-то разработку хотя бы на тестирование, разработчик обязан самостоятельно проверить, по крайней мере, основной поток событий и поток наиболее очевидных ошибок.
  • Документирование. Написание инструкций по развертыванию, эксплуатации, разрешению известных проблем. Фиксация “на бумаге” наиболее важных и/или сложных проектных решений.

Кажется слегка громоздким, верно? Но все дело в масштабировании. Если мы пишем простенькую обработку, стадии анализа и проектирования можно пройти за десять минут, не написав ни слова, а инструкция будет представлять собой короткую надпись на форме. Важно, чтобы в любом случае все пять стадий имели место, и ровно в указанном порядке.

У этого метода, разумеется, тоже имеются недостатки.

  • От разработчика требуется не только квалификация в собственно написании кода, но еще и способность к абстрактному мышлению.
  • Что еще хуже, от разработчика требуются также зачатки бизнес-анализа, то есть умение мысленно поставить себя на позицию пользователя. Никакой “работы по четкому ТЗ” здесь не будет, любое ТЗ придется потрошить в поисках противоречий и недоговорок.
  • Прямо завтра ничего не заработает. Прежде, чем поехать, какое-то время будем запрягать.
  • Эффективная и вдумчивая разработка кажется значительно дороже быстрой и бездумной. Причем кажется не какому-то воображаемому критику, а собственному руководству и представителям заказчика.

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

 

Смертельная схватка цены и качества

Казалось бы, вопрос только в цене, которую мы (и наш заказчик) готовы заплатить за качество. Либо “быстро, криво, дешево”, либо “медленно, качественно, дорого” — как нарисовано на всем известной картинке-мотиваторе “Памятка заказчику”.

Так? Не совсем, есть нюансы.

 

Закон сохранения стоимости

Дело в том, что любая задача разработки по своей сути является чьей-то проблемой. В создание этой проблемы был вложен определенный объем труда. Соответственно, для полноценного решения задачи также потребуется вполне определенный объем труда, и ни одним нормо-часом меньше.

Здесь работает брат-близнец фундаментального закона, названного именами Ломоносова и Лавуазье (хотя кто только этот закон не сформулировал, в европейской истории начиная с Эмпедокла, а в мировой — наверняка еще на стенах пещер царапали). Наиболее же остроумную трактовку фундаментального закона, регулирующего соотношение труда и стоимости, предложил Скотт Адамс в своей замечательной книге “Принцип Дилберта”.

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

Частичность результата может иметь самые разные формы, например:

  • Автоматизированы не все действия, которые могли быть автоматизированы. Как следствие — пользователи затрачивают свое рабочее время на лишние ручные операции.
  • Не проверяются входные данные, нет защиты от неправильных действий пользователей. Следствие — множественные ошибки ввода.
  • Отсутствуют средства протоколирования. Следствие — невозможно разобраться в причинах некорректного поведения системы (это пользователь ввел что-то не так? или система посчитала неправильно? звезды не так стояли?), для групповых операций невозможно “откатить обратно” или “запустить заново с места сбоя”.
  • Код написан и организован таким образом, что добавление любой новой функции и/или модернизация любой существующей требуют затрат, сопоставимых с исходной разработкой.
  • Большое количество ошибок в коде приводит к периодическим сбоям и простоям (а это тоже затраты заказчика, пускай и косвенные).
  • Ну — и так далее.

Общее во всех этих пунктах — методика “быстро и криво” на стадии разработки закономерно приводит к паттерну “криво, медленно и печально” на стадии эксплуатации.

Можно сравнить с экономией на туалетной бумаге в домохозяйстве, если, конечно, такое сравнение будет уместным. “Экономной” хозяйке кажется, что покупать качественную, четырехслойную бумагу — дорого. Но никто не принимает во внимание, что, если покупать самую дешевую, которая расползается прямо в руках, придется использовать ее на американский манер, сворачивая в шесть рядов. И если посчитать хотя бы квартальный домашний бюджет, по деньгам выйдет примерно столько же, а вот по удобству — да сами попробуйте.

 

Парадокс убыточного удешевления

Но самое интересное заключается в том, что закон сохранения стоимости имеет только нижнюю планку и в окончательной редакции “для реальной жизни” выглядит следующим образом:

Разработка по методикам семейства “быстро и криво” не может обойтись дешевле, чем разработка по методикам семейства “не спеша, эффективно и правильно”. Но при должном радиусе кривизны может обойтись и значительно дороже.

Это важный момент, и мы разберем его подробно, на конкретном примере из реальной практики автора. Без имен и названий, разумеется (хотя действующие лица, если текст попадется им в руки, без сомнения, себя узнают). Масштаб слегка искажен, и для наглядности, но в первую очередь потому, что NDA нужно уважать.

Место действия — очень масштабный и амбициозный проект по разработке и запуску большой и по-хорошему страшной информационной системы. Один из этапов проекта — перенос (миграция) почти тысячи локальных систем со всеми данными “с земли” в единую систему. “Наземные” системы относятся к нескольким разным типам, из которых только одна реализована на платформе “1С”. Предельно сжатые сроки, чудовищные штрафные санкции за срыв графика, кривые локальные базы, активный саботаж на местах — все, как мы любим.

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

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

Но вот техническое воплощение этой концепции в личном рейтинге автора по сию пору занимает безусловное первое место в номинации “Быстро и криво”.

Во-первых, в качестве формата для промежуточных данных был выбран файл MS Excel, причем записанный строго определенной версией. Формат, который не обеспечивает даже элементарное “прочитано будет ровно то же значение, которое было записано”. И попробуйте объяснить ответственным за инфраструктуру, что на серверах нужно установить MS Office такой-то, и чтобы можно было вызывать Excel через COM-соединение. Особенно когда чуть ранее была поставлена задача перевести хотя бы часть серверного парка на Linux.

Почему же был выбран самый неудобный формат? Почему не JSON, не XML, даже не xBase? Подрядчик, разумеется, настоящую причину не озвучил. А заключалась она в том, что у “программиста”, которому была поручена реализация, имелись некие готовые механизмы по работе с файлами Excel. И чтобы не писать код заново (а еще, не дай бог, не тратить время на изучение приемов работы с JSON/XML), проще эксгумировать старый код и как-нибудь натянуть его на задачу. Экономия трудозатрат? Ударная скорость разработки? Вне всякого сомнения™.

Во-вторых, было принято техническое решение класса “epic” — не изобретать какие-то свои механизмы загрузки данных, а слегка допилить уже встроенную в типовое решение механику перехода с предыдущей редакции (здесь следует передать горячий привет “правилам конвертации”, и мы не упустим такого случая — “Привет, правила! Идущий к ручь

Вступайте в нашу телеграмм-группу Инфостарт

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Инструментарий разработчика Рефакторинг и качество кода Программист 1С 8.3 Абонемент ($m)

Обработка читает исходники других внешних обработок и отчётов прямо из базы и отвечает на два вопроса: с какой из них начинать смотреть и что именно в ней смотреть. На выходе HTML-отчёт: индекс качества от 0 до 100, светофор, оценка технического долга в минутах и находки с номером строки, фрагментом кода и подсветкой синтаксиса. Двадцать восемь правил: запрос в цикле, транзакция без отката, небезопасное выполнение строки, тяжёлые схемы компоновки. Считается всё на чистом BSL, без интернета, внешних компонент и отдельного сервиса рядом, поэтому анализируемый код не покидает машину. Прогон по двум десяткам обработок выстраивает их по индексу качества, худшие сверху, и сразу видно, с чего начинать разбор.

10 стартмани

20.08.2026    242    1    nedomolkov.ivan    2    

2

Рефакторинг и качество кода Программист 1С 8.3 Бесплатно (free)

Библиотека из 6 слоев анализа, от внешней обработки до готового отчёта. Каталог из двадцати восьми правил, у каждого свой уровень и вес. И всё это крутится на чистом BSL, без Java, без git, без какого-то внешнего сервера анализа и без отправки чужого кода наружу. Разбираю, как устроен этот анализатор внешних обработок и по каким признакам он решает, что код плохой. Почему запрос в цикле получает шестьдесят баллов, как правило вообще проходит фильтр перед релизом и почему часть правил у меня помечена как сломанные. Проверял я его на себе: взял семнадцать своих обработок, которые лежат на площадке и продаются. Получил 239 замечаний и пятнадцать рабочих дней технического долга. У самой худшей индекс качества - 20 из 100 и красный светофор. А ещё расскажу, где у инструмента границы, за которые он не заходит, и про грабли - самая дорогая из них молчала.

20.08.2026    317    nedomolkov.ivan    0    

1

Рефакторинг и качество кода Программист 1С 8.3 Бесплатно (free)

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

20.08.2026    382    n_mezentsev    10    

2

Рефакторинг и качество кода Нейросети Программист Бесплатно (free)

Передача двух модулей BSL в Cursor AI для классического сравнения без использования искусственного интеллекта (ИИ) и для проведения code review с помощью ИИ.

12.08.2026    2416    ScaNNer    0    

5

Рефакторинг и качество кода Обновление 1С Программист 1С 8.3 1С:ERP. Управление холдингом Бесплатно (free)

К нам на проект сложного обновления пришла конфигурация «1С:ERP УХ» с доработанным отчетом, построенным на базе типового «Задолженность поставщикам по срокам». После обновления целевая форма открывалась без учета переданных данных.

05.08.2026    776    1c-izh    4    

4

Инструментарий разработчика Рефакторинг и качество кода Программист 1С 8.3 1С 8.5 1С:Документооборот 1С:Бухгалтерия 3.0 1С:Управление нашей фирмой 3.0 Россия Абонемент ($m)

Внешняя обработка для статического анализа исходников 1С без изменения данных базы. Помогает перед релизом или публикацией быстро проверить код на рискованные вызовы, интеграции, файловые операции и возможные секреты. Проверяемый код не выполняется, найденные пароли и токены маскируются.

2 стартмани

08.07.2026    847    8    NikolayMaerov    0    

4

Рефакторинг и качество кода Обновление 1С Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 Бесплатно (free)

На проекте сложного обновления 1С:ERP 2.4.14.181 до версии 2.5.22.106 нам было нужно уложить обновление в технологическое окно 48 часов (выходные). Исходный замер, с учетом промежуточных релизов 2.5.8.443, 2.5.12.270, 2.5.17.234, 2.5.22.106, показал требуемое время в 659 часов…

07.07.2026    5198    1c-izh    20    

21

Рефакторинг и качество кода Обновление 1С Программист 1С 8.3 Бесплатно (free)

Обновление ролей в расширении 1С отличается от аналогичного процесса в основной конфигурации. Ситуация осложняется, когда доработки вносятся не в «обычное», а в поставляемое расширение.

26.06.2026    2249    1c-izh    3    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Yashazz 4933 15.06.20 20:05 Сейчас в теме
Очень правильно, выпукло и внятно описаны психологические, общенческие, коммуникационные аспекты, которые зачастую сводят на нет и превращают в пшик дорогостоящие, хорошо спланированные, грамотно описанные, толково сделанные проекты. Обычно на этапе завершения разработки, начала внедрения, опытно-промышленной эксплуатации начинается такой чудовищный неадекват, проявляемый на 70% клиентом и остальные 30 разработчиком, что все рациональные факторы меркнут и на первый план выходят тяжёлый кулак интересанта разработки, умение "договориться", подвешенный язык РП, интриги сотрудников клиента и прочая трудно прогнозируемая каша. Вот, насколько я по диагонали вычитал, автор с этими бедами вполне себе знаком. Да. Остальное-то, в общем, вторично - ибо самая хорошая система и проект не те, которые хорошо сделаны, а которые не вызывают нареканий у клиента.
WildHare; Drivingblind; kalyaka; JohnyDeath; sapervodichka; +5 Ответить
2. Steelvan 317 15.06.20 21:57 Сейчас в теме
На картинке из статьи есть только белая трость, но нет дисплея Брайля

---
Самый простейший дисплей Брайля стоит 85 000.
https://rosopeka.ru/catalog/displey_braylya_hims_smart_beetle_art_vc21216.html
---

1000 отправил по координатам.
Вместе профессиональным сообществом накопим коллеге ?
ilyav; WildHare; forseil; cheburashka; daniiliv; +5 Ответить
3. AlexandrSmith 69 15.06.20 22:38 Сейчас в теме
Помню как мы книгу покупок внедряли, 10 человек внедряли, хотя достаточно было одного, концепция была та же "Торопиться, мы не будем". Теперь, слава богу, всех "неторопливых" разогнали. Да и проект тот еще - "Книга покупок". Без реализаций, одни счета-фактуры. Тому, кто торопился вставляли палки в колеса, и он внедрил за неделю, с небольшими ошибками и их исправил, всем не понравилось. Зато потом, подошли к проекту как надо и три отдела долбились с сотней косяков, передавая друг другу отчеты по ошибкам, создавая регламенты обмена ошибками, выстраивая классификации ошибок. Дело одним годом не кончилось. Все стадо трудилось, выходило в выходные, получало деньги за выходные, пока наконец внешний программный аудит не спросил: " А что за дела у вас там происходят?". И до всех сразу дошло, что люди обожают труд, бескорыстно трудятся по выходным за двойную оплату. И фраза покрывалом висела над всем этим: "Торопиться мы не будем". Превращалась в - "Тише едешь, дальше будешь", а потом в - "Работа не волк, в лес не убежит". И в конце - "Да ну её - работу. Пошли домой! Сегодня столько косяков исправили!!!". И множили, и множили косяки, прикрываясь красивыми терминами, выжимая из задачи кучи денег. Героически плодили косяки и с героическим трудолюбием их решали, обложившись формулировками и умными статьями из интернета.

На деле же, если бы не "разумный подход", то одна таблица и к ней 4 справочника, 2 дня работы, с учетом 20 тысяч записей в месяц. Можно было при самом трудном подходе за 2 недели сделать, одному человеку. Если, конечно, очень постараться и растянуть время и чая много попить.
doom_2001; ХамитоваРайса; androidT1C; ipoloskov; kalyaka; +5 Ответить
8. kalyaka 1182 16.06.20 11:22 Сейчас в теме
(3) наверное работали по техническим заданиям, а о техническом проекте никто не подумал :)
Hobbit_Jedi; +1 Ответить
4. CheBurator 3234 16.06.20 01:51 Сейчас в теме
Как все узнаваемо. И пройдено. И не раз. И по дороге костылей. И по дороге автобана. Но.. мы ходим не одни.. нас посылают. по принципу Возьми хз чт, прнеси хз куда, но главное - завтра к утур уже должно работать, потому что надо вчера! И что делать? гордо заявить "Проблемы индейцев шериф ане волнуют" и уйти дауншифтить на доширак? или как-то иначе? Воспитывать надо не нас. мы как-то уже понимаем/знаем, что все что нужно - не дается даром. и самый ценный ресурс - время, не родим за 1 месяц с помощью 9 инкубаторов... Насколько много у нас бизнесов? тех что мы автоматизируем? - тех, кто может сказать где он примерно будет через полгода-год? замо где - в .. караганде! максиум на неделю вперед куча ьизнсесов живет, ну от силы на квартал. Все что описал автор - хорошо, когда собственик/руководитель готов выложить ИЗ СВОЕГО кармана на "долго, нужно, хорошо". - Коллеги, вы лично таких много знаете? не, конечно есть. Но каков их процент среди общей массы? (газпромы, татнефти, атомные ледоколы давайте пока не рассматривать как основное место приложения сил 1Сников). да руководитель давится и захлебывается, отчисляя ФОТ и налоги. Спросите любого - что надо? зарплату поменьше, налогов чтобы вообще не было. Это первое что скажут. Сколько из них скажет - а высвободившееся - вложу в страетгическое планирование и разработку...? - и..? ну-ну...
.
Вопросами, озвученными автором, мучаюсь уже не первый год. да, если я - ЛПР, возможно у меня есть варианты туда-сюда. А так обычно - как и описал автор - И ЧЕСТОНО ПРЕДУПРЕЖДПАЯ ЗАКАЗЧИКА - вам быстро и дешево или долго и хорошо? Ответ банален и он автором уже озвучен.
.
Так что - прогнозировать риски дело того,кто ИЗВЛЕКАЕТ прибыль, а не того, кто ее генерирует. Как-то так. Могу лабать по быстрому, могу делать хорошо. От первого - коробит, от второго - это никому кроме меня не нужно.
.
Сейчас все продают ПРОЦЕССЫ. Продукт не продает практически никто.
Автор имхо тяготеет к продаже продукта.
Каждый сам выбирает свой огород.
compaud; Yashazz; kalyaka; fancy; +4 Ответить
7. fancy 37 16.06.20 09:22 Сейчас в теме
(4)Неоднократно замечал - многое из того, что было изначально запланировано в разработке самим заказчиком и реализовано (долго и правильно), в последствии не используется совсем.
alex_zemlyansky; Monte Carlo; Fox-trot; mvgfirst; +4 Ответить
9. kalyaka 1182 16.06.20 11:24 Сейчас в теме
(7) надеюсь за деньги заказчика?
Здесь уместно разделение ответственности: заказчик берет ответственность за эффект от результата разработки, а разработчики - за качество исполнения и сроки.
10. mvgfirst 6 16.06.20 11:44 Сейчас в теме
(9) "Берет ответственность" - перед кем? Клянется сердцем матери что будет использовать заказанную функциональность?
Как заказчик может взять эту ответственность... поясните мне ... я не очень понимаю.
alex_zemlyansky; Fox-trot; +2 Ответить
11. kalyaka 1182 16.06.20 12:37 Сейчас в теме
(10)
перед кем? Клянется сердцем матери что будет использовать заказанную функциональность?
Перед бизнесом. Например отдел продаж заказывает разработку системы CRM, разработчики подписываются на проект с бюджетом и сроками. Заказчик в лице отдела продаж рискует деньгами и своей эффективностью - наверно не просто так.
12. mvgfirst 6 16.06.20 12:57 Сейчас в теме
(11) Единственное что должен делать отдел продаж - прдавать. Если отдел продаж занимается зказами - то это уже отдел снабжения, или отдел ИТ.
И опять же... как? Как (даже такой некорректный отдел) - должен брать на себя ответственность? Даже если предположить что руководителю такого отдела даны неконтроллируемые полномочия заказывать разработку софта на стороне?
Или речь идет о "внутреннем заказе" отдела продаж в отдел IT на разработку/доработку?
Тут опять же много вопросов - почему это вдруг руководитель IT, не находясь в одпчинении у рукводителя ОП - будет принимать у него задания?
А даже если и примет - то как и перед каким-таким "бизнесом" берет ответсвенность руководитель ОП? Он почку свою в залог отдает?
Ему по Вашему определению - уже дали право просрать потратить средства. Т.е. ответственность ... она в какой момент взята и как выглядит?
13. mvgfirst 6 16.06.20 12:59 Сейчас в теме
(11) Вообще, эта-вот "ответственность перед бизнесом" - это как "долг Родине" - никто в долг не брал - но все должны что-то отдать.
21. Yashazz 4933 17.06.20 13:14 Сейчас в теме
(10) Насколько я знаю, 90% сделанного мной никогда не использовалось, а больше половины - даже всерьёз не рассматривалось. Делался продукт (хороший продукт, это я самовыражался, качество гнал), его халявно принимали, вяло и криво пытались внедрить, затем бросали, потом-потом, в долгий ящик, и спустя пару лет оказывалось, что всё те же рукожопы изображают незаменимых, усложняя простые места, те же рвачи хапают себе бюджет фирмы на пустые прожекты, те же бессловесные трудяги ковыряются в эксельчиках. Деньги на автоматизацию потрачены. Крутая конфа куплена и перепилена. И пользуются ею - ага, для вывода на принтер пары печатных форм. Ну ещё там дублируют эксельчики, т.к. так сказал уволившийся в прошлом году нач.отдела.
Вот и нахрена я старался, неясно, и нахрена деньги тратились - тоже.
ITSun; o.nikolaev; +2 Ответить
25. mvgfirst 6 17.06.20 16:20 Сейчас в теме
(21) Тебе не платили? Ты работал за хорошие отзывы и славу? Это была твоя валюта?
Если тебе таки заплатили - то что ж... ты получил оплату. )))

Я себя так успокаиваю.
26. mvgfirst 6 17.06.20 16:23 Сейчас в теме
(21) Всегда надо вспоминать - зачем ты этим (чем-бы то нибыло) занимаешся. Если что бы денег заработать - зарабатываем.
А если что бы создать что-то "нетленное и незыблемое" - так создавай, только тогда надо его на выставки, да на конкурсы... где "истинные ценители" признают твой "непризнанный"...
27. Yashazz 4933 17.06.20 18:47 Сейчас в теме
(26) Заплатили. Но обидно - с тем же успехом я мог делать тяп-ляп, потратить впятеро меньше сил, нервов и времени.

Да тупо денег заработать - это вон можно сидеть в тёплом месте, обновления на ERP накатывать. Но в этом нет развития и нет творчества.
29. mvgfirst 6 18.06.20 14:48 Сейчас в теме
(27) Ну так, если творчество не заказывали, а ты его добавил - то почему тебе обидно?
Тебя ведь не били по рукам. На 15 суток не посадили за хулиганство (творческое).

Ты выполнил заказанное, получил оплату и получил возможность самовыразиться - что и сделал. Единственное чего не получил - публичного восхищения.
Ну так... его в условиях задачи и не было... понятно что хочется... что бы хвалили. Но это уже другая песня. Это на инфостартные ивенты, митапы и прочее надо ходить... популярность прокачивать. Тогда можно будет хвастаться... каждым чихом.

А простым работягам - работаешь и хорошо. Хорошо работаешь - никому не интересно.

Хочешь канал свой открой ))) Но там опять же - песня уже не про разработку и творчество среди нее.
30. mvgfirst 6 18.06.20 14:50 Сейчас в теме
(27)
А сделал бы на тяп-ляп, оно бы "развалилось на глюки" в первый же тык пользователя. И вот тут ты конечно получил бы все причитающиеся тебе проклятия.

Так что тут, отсутсвие реаации - уже хорошая реакция ))

Кроме того - приятно когда вещи сделанные на совесть работают - даже тогда когда ты уже забыл как и зачем ты там все делал.
У меня вот есть парочка таких ... приходишь смотришь ... а оно работает. И уже хорошо.

Сейчас не пользуются - потом, на очередном цикле ... еще раз об этом вспомнять - а оно вот уже есть... готовое... ))
31. Yashazz 4933 18.06.20 17:52 Сейчас в теме
(30) Тоже верно... Отсутствие яростных матюков - уже хороший признак) Да, и когда спустя годы узнаёшь, что твоя поделочка (да ещё и не из самых любимых) живёт и фурычит - приятно.
14. Viver 16.06.20 14:13 Сейчас в теме
(7) Для этого и используется метод быстрого прототипирование всего процесса, от начала до конца, гибкая разработка так сказать. Все что можно делать руками пользователя, делается руками пользователя, пока. Никаких излишеств в функционале и украшательств, если на это нужно тратить время. Вас конечно будут не любить пользователи и обвинять во всех грехах. Но у вас все возможности успешно завершить проект и не при этом не изобретать сферических коней в вакууме, абсолютно не жизнеспособных в реальной практике.
20. Yashazz 4933 17.06.20 13:10 Сейчас в теме
(4) Особенно близко и удручающе понимание "от первого коробит, второе никому кроме не надо". Иногда просто руки опускаются. Плюс стопицоттыщ.
5. CheBurator 3234 16.06.20 01:54 Сейчас в теме
И заметки насчет ремесла - это вот прямо в точку!
dabu-dabu; +1 Ответить
6. mvxyz 332 16.06.20 08:38 Сейчас в теме
Глубоко, ярко, метко, образно о наболевшем. Классика. Спасибо!
15. EVKash 16 16.06.20 15:46 Сейчас в теме
(0) Отличная статья! Познавательно для молодого разработчика.

Заметил в тексте очепятку
“требования вроде бы понятны, теперь с этой задачей нужно перестать, продолжим завтра”

Вторая и третья часть книги еще не готовы?
16. vikad 131 16.06.20 15:50 Сейчас в теме
(15) Инфостарт публикует книгу частями по просьбе автора. Вторая часть будет опубликована на следующей неделе.
kvazymoda; mvxyz; EVKash; +3 Ответить
17. o.nikolaev 217 16.06.20 18:59 Сейчас в теме
Минутку, требую прекратить "проблемы со здоровьем". WH легенда, а у легенд такого не может быть.
18. androidT1C 76 17.06.20 08:49 Сейчас в теме
При всём уважении, мне "c:\Работа\Базы\хрень-9" намного понятнее, чем "c:\home\v8-stuff\infobases\dev\sm\jt-3741\storage-common".
Читать приятно, как про большую и светлую мечту: технический проект, техническое задание, jira, uml и много других красивых слов :)
По факту: на 95% предприятий работает единственный "тыж одиэсник", который раньше всех должен знать, когда меняются счета-фактуры и платежки, чтобы прибегающий с вытаращенными глазами главбух не нервничал. Ну и одновременно должен внедрять систему маркировку на том же предприятии с годовым оборотом в десятки миллиардов. А денег не выделяют даже на visio.
compaud; galich; +2 Ответить
23. Yashazz 4933 17.06.20 13:23 Сейчас в теме
(18) В этом есть плюс: единственный "тыж" по крайней мере сам всем рулит в своей зоне ответственности, одна голова, две руки, меньше бардака. А коллектив, да ещё с неумелым руководителем, наворотит в разы хуже, чем один спец.
forseil; androidT1C; +2 Ответить
37. orlin553 06.11.24 09:54 Сейчас в теме
(18) Есть еще такое, "тыж" 1сник, DBA, сис админ, и что то там у них в интернетах не работает...
19. smit1c 107 17.06.20 11:15 Сейчас в теме
Всё написанное хорошо для больших проектов.
В реальных мелких проектах нужно сделать чтоб работало "вчера" и подешевле.
Все бы мы хотели работать в первых (крупных), но приходится во вторых...
svmix; ITSun; SagittariusA; Bazil; Yashazz; +5 Ответить
22. Yashazz 4933 17.06.20 13:21 Сейчас в теме
(19) Я больше не хочу. Там ровно те же некомпетентность, дремучесть, тупая агрессивность, подковёрная грызня и хаос на всех этапах "разработки". Только ответственность больше, меры жёстче и распальцовочный гонор в разы сильнее. Я поработал с представителями таких "крупных", которые "крутой проект" делали, и ужаснулся. Люди неспособны не то что критику воспринять, а и свои прямые обязанности выполнить. Зато риторикой и грязеполивом владеют виртуозно.

Мне всё чаще кажется, что большие проекты - это почти всегда большие провалы. Просто их потом умело и красиво выдают за успех, уж больно много денег вгрохано.
Hobbit_Jedi; curdate; dabu-dabu; adapter; o.nikolaev; +5 Ответить
24. kvazymoda 13 17.06.20 14:26 Сейчас в теме
Никита, спасибо за труд.
Кину питцот на карман, а то уже начал сомневаться в отсутствии адекватности в поведении людей.
А вот книжку на эту тему: ""Но не нужно мириться, руководитель, как и любой другой человек, в хорошие дни поддается воспитанию, а в плохие — техникам манипулирования."
Было бы увидеть от вас с большим желанием и интересом. Тк технари, я уверен, все что Вы описали прочувствовали(или в процессе) в своей карьере, а вот с пониманием психологии у них беда, у большинства.
28. art.prm 9 18.06.20 11:30 Сейчас в теме
Хорошо написано, ждем продолжения
32. o.nikolaev 217 18.06.20 19:08 Сейчас в теме
Шикарная вещь. Скорей бы продолжение!
33. fixin 4344 22.06.20 10:27 Сейчас в теме
да, нам не хватает 1с-литературы.
34. Tavalik 3464 23.06.20 10:14 Сейчас в теме
Большое спасибо. С интересом прочитал.

Замечу только, что если применять по уму и без фанатизма, геймификация вполне себе рабочий инструмент. Также как и хакатон отлично справляется со своей задачей - привлечь молодёжь в профессию или привлечь интерес к какой-либо технологии.

Любую идею можно извратить до безобразия, но это не значит что идея плоха сама по себе. Я видел (и использовал) вполне удачные применения.
SagittariusA; Hobbit_Jedi; ITSun; serge_focus; doom_2001; +5 Ответить
35. starik-2005 3301 06.08.21 21:12 Сейчас в теме
Интересно!

Как пишут люди знающие, во фреше много багов. Предположу, что справиться с большинством проблем автору не удалось.

Смысл всей статьи сводится к выкладкам умных бабушек на тему того, что быстро - это "постоянные неспешные движения без существенных перерывов между ними". Дарю.
user728202; user1632735; +2 Ответить
36. Hobbit_Jedi 27.04.23 01:20 Сейчас в теме
Прочитал на одном дыхании.
Есть нюансы, о которых можно было бы подискутировать, но на 99% согласен со всем вышеизложенным.
Сразу виден огромный опыт за спиной автора.
Благодарю, Никита, за труд.
Для отправки сообщения требуется регистрация/авторизация