Я решил написать про смыслы: почему мы к этому идем, почему подходим именно так, почему используем библиотеку. Будут технические изображения, я дам информацию и ссылки, где можно посмотреть подробности.
Тема осознанной разработки и подхода в целом для меня очень важна. Будучи руководителем, я часто вижу, как люди в какой-то момент перестают эффективно работать, перестают понимать, зачем они работают. Это приводит к стрессу, затем к выгоранию. Люди меняют работу, приходят на новую, получают то же самое, через год снова меняют. Процесс может продолжаться бесконечно и привести к уходу из профессии.
О чем эта статья:
-
Что такое осознанное программирование,
-
При чем здесь разработка библиотек,
-
Как мы разрабатываем библиотеку БОЗОН,
-
Как развивать осознанность в работе.
Что такое осознанное программирование
Что такое осознанное программирование? Осознанность начинается с понимания самого термина. Осознанность – это mindfulness, способность замечать свои мысли и эмоции без оценки, сохранять сосредоточенность на том, что происходит в текущий момент. Это умение фиксировать внутренние состояния и реакции и не позволять им автоматически управлять действиями.
В разработке осознанность проявляется в том, как специалист ощущает себя в процессе создания решения и как воспринимает собственную роль на каждой стадии проекта. Осознанный подход включает понимание ответственности – личной и командной.
В нашей компании существует набор правил, описывающих ценности и смыслы. Один из важных тезисов – «делайте как для себя», потому что рядом коллеги, которым не все равно, какое решение создается.
Как управлять осознанностью на практике
Как управлять осознанностью? Я задаю себе вопросы перед тем, как начать работу. Это вопросы:
-
Что я делаю? – конкретная техническая реализация, открываю конфигуратор, открываю проект или вначале готовлю техническое задание.
-
Как я это делаю? – про процесс и подход, в каком процессе я работаю, с чего начинаю.
-
Зачем я это делаю? – ценность проекта и задачи.
-
Для кого я это делаю? – пользователи, ведь мы работаем не в пустоту, у нас есть конкретные заказчики, и можно подумать о них, о их потребностях и о том, зачем им эта задача. Ведь задача точно нужна, нам за нее платят деньги.
-
Каковы последствия? – Что будет дальше? Завершили задачу, завершили проект – что будет через полгода, год? Как он будет развиваться и какие будут последствия?
Если задавать себе эти вопросы, вы будете осознанными в работе.
Роль руководителя в формировании осознанности
В обсуждении осознанности два первых пункта особенно важны. Эти вопросы не всегда позволяют управлять ответами. Если говорить про ценность, ее часто определяет руководитель. Он задает правила и формирует ориентиры. Изменения ценностей происходят на уровне руководства.
Приходя в команду, специалист фактически принимает ее ценности. Ему рассказывают о миссии, и он решает, подходит ли ему такой подход. Если нет, стоит искать другое место.
На первые два пункта осознанности можно влиять, потому что вы как инженеры, разработчики и руководители глубже всего погружены в технические детали и процессы. Не на все удастся повлиять из-за существующих регламентов, но в рамках профессиональной области всегда остается пространство для самостоятельных решений.
Эта возможность определять подход и управлять своей частью процесса поддерживает интерес к работе. Она формирует внутреннюю мотивацию, помогает сохранять энергию и выполнять задачи без выгорания.
Исторические корни осознанности. Питер Друкер и эффективность

Американский исследователь и экономист Питер Друкер опубликовал множество книг о профессиональной эффективности. Раньше вместо понятия осознанности чаще использовался именно термин «эффективность». У Друкера есть интересные цитаты:
-
«Нет ничего бесполезнее, чем с максимальной эффективностью выполнять работу, которую делать не нужно»
-
«Самый серьезный источник неэффективности – это неспособность сконцентрироваться на главном»
-
«Делайте что получается лучше всего, остальное передайте другим»
Эти идеи привлекают внимание своей практичностью.
Одна из его ключевых рекомендаций – делать то, что получается лучше всего, а остальное передавать другим. Это может быть другая команда или коллеги, которые выполнят задачу качественнее.
Этот принцип тесно связан с библиотечным подходом в программировании. Сегодня повсеместно используются библиотеки, и в 1С тоже.
Почему мы разрабатываем библиотеки. Бизнес-контекст
Откуда возникает такая задача? Почему необходимо исследовать область библиотек и разрабатывать собственную библиотеку?
Причина в объемах – поддерживается большое количество проектов одновременно. В разных проектах параллельно появляются одинаковые задачи.
Как и в любой компании, ресурс ограничен: он не бесконечен. Стоимость разработчиков высока, стоимость тестировщиков и аналитиков также высока, найм требует значительных затрат.
Сроки проектов стремятся к минимальным. Задачи нужно выполнять сейчас или вчера. Редко кто спрашивает о выполнении через год, максимум – через месяц.
Для бизнеса важна оперативность, в том числе оперативность устранения проблем. Поддержка должна быть предсказуемой и без неожиданных особенностей. Если в компании или у клиентов существует много решений, важно, чтобы они выглядели одинаково, имели единые интерфейсы и единые подходы в процессах.
Существует риск зависимости от ключевых сотрудников. Эксперт может обладать уникальными знаниями, но в случае ухода унесет их с собой, создавая высокий bus-фактор.
Документации часто недостаточно, информация передается устно, поэтому желательно уменьшать объем подобных рисков.
Эти проблемы решает использование библиотек, единых паттернов и компонентов, которые остаются одинаковыми в разных проектах.
Мировой контекст. Фредерик Брукс и использование готовых решений

Еще один американский исследователь, связанный уже с миром IT – Фредерик Брукс. Он архитектор IBM, преподаватель и автор известных работ, включая сформулированные им законы Брукса. Его идеи касаются в том числе этических аспектов разработки. Он писал о том, что разработчики недооценивают стоимость, риски и сроки проектов:
-
«Разработчики склонны недооценивать стоимость создания новой программы»
-
«Потратьте силы на то, чтобы найти и использовать уже существующие решения, и вы сэкономите силы для решения понастоящему уникальных проблем вашего проекта»
-
«Не тратьте силы своих дорогих разработчиков на написание того, что можно купить готовым»
Особенно интересна его мысль: не стоит тратить ресурсы на дорогих разработчиков, если существует возможность приобрести готовое решение. Эта идея напрямую связана с использованием библиотек в программировании.

На изображении показаны современные языки программирования и количество библиотек, которое ими используется. Современные языки программирования развиваются именно благодаря огромному количеству библиотек, которые активно применяются в проектах.
Количество библиотек растет стремительно. По оценкам, к концу 2025 года их будет около восьми миллионов. Да, существуют различия в зависимостях и типах лицензий, но масштаб и темпы роста впечатляют и продолжают увеличиваться ежегодно.
Особенности экосистемы 1С
В экосистеме 1С, как всегда, существуют свои особенности. Они связаны с технологической платформой, с механизмами встраивания библиотек и с практикой их применения. Значимую роль играет большое количество легаси-решений. До сих пор многие компании используют УПП или даже 1С 7.7. Обновление компонентов в таких системах чрезвычайно затратно или вовсе невозможно.
Для расширения возможностей вендор предлагает несколько инструментов:
-
Механизм расширений,
-
Обработки и отчеты,
-
Библиотеки.
Существуют стандартные библиотеки – БСП, БЭД, БПО, БИП. При необходимости можно обратиться к ним, использовать их функциональность и получить нужное решение. В «Инфостарте» тоже есть «1С Store», и уже существуют решения, которые могут подключать внешние отчеты и обработки к вашей конфигурации, однако это не полноценная библиотека, а надстройка над основным решением.
Подход к созданию собственных библиотек
Вендор подготовил методологию, описывающую процесс разработки библиотек и их встраивания.

На изображении показано, как прикладная функциональность взаимодействует с БСП, как может быть создана собственная библиотека и как она масштабируется между несколькими решениями.

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

-
Сформировать команду. На первом этапе инициатор может быть единственным участником.
-
Определить состав и назначение библиотеки. Она может быть функциональной, системной или включать интеграционные механизмы.
-
Определить регламенты и правила разработки. Подходы к неймингу, структуре слоев, архитектурные ограничения.
-
Определить регламент и правила обновления. Продумать, как библиотека будет доставляться конечным потребителям.
-
Перейти к разработке и поддержке. Наращивать экспертизу, расширять команду и распространять библиотеку.
Кейс разработка библиотеки БОЗОН
Было принято решение создать единую библиотеку, потому что в компании используется большое количество конфигураций, и для всех них требовалась одинаковая функциональность. Так появилась библиотека БОЗОН – наш внутренний проект. Причина закрытости не в нежелании делиться с сообществом: в инфраструктуре используются собственные микросервисы, которые недоступны на рынке. Некоторые коннекторы и адаптеры имеют узкую специализацию, поэтому их невозможно применить в сторонних решениях.
-
Разработка ведется в 1С:EDT.
-
Построена полная автоматизация: сборка, деплой, использование GitLab Pipeline.
-
Автоматические тесты с выводом результатов в Allure.
-
Реализована автодокументация программного интерфейса, и любой разработчик, использующий библиотеку, может изучить назначение любого метода.
-
В конфигурации подготовлены демо-объекты и демо-база, что позволяет быстро понять структуру и принципы работы.
-
Настроена автоматизация доставки библиотеки в проект и обратного переноса изменений в библиотеку. При необходимости можно обновить конкретный проект одним действием, и библиотека будет внедрена автоматически. Аналогично можно перенести изменения, сделанные разработчиком в проекте, обратно в библиотеку.
Такой процесс – результат высокого уровня автоматизации и не является обязательным для всех, разработка может вестись и в конфигураторе.
Статистика и достижения библиотеки БОЗОН
На текущий момент в библиотеке реализовано 27 подсистем. Каждая подсистема – это отдельная функциональность, решающая конкретную задачу.
Объем кода превышает 50 тысяч строк, и работа продолжается: библиотека развивается и расширяется.
Всего в системе более полутора тысяч процедур и функций. Почти 500 из них – методы программного интерфейса, доступные для вызова из прикладного кода. Эти методы снабжены документацией, а часть уже покрыта тестами. Планируется обеспечить юнит-тестами каждый метод – это ближайшая цель развития.
С начала года в репозитории GitLab зафиксировано 465 коммита.
Выпущено 17 релизов, и каждый релиз включает набор изменений, которые доводятся до потребителей.
В настоящий момент библиотека встроена в 11 проектов. Помимо этого, существует ряд проектов, где используется частичное встраивание: коллеги могут изучить библиотеку, взять нужный фрагмент решения и внедрить конкретную функциональность у себя.

Функциональный объем библиотеки постоянно растет. Например, недавно была добавлена интеграция с Vertica, и после выпуска релиза любой потребитель сможет получить эту возможность и внедрить ее оперативно.
Один из показательных кейсов связан с новым проектом на базе 1С:Документооборота. Библиотека была встроена в проект за один-два дня. После этого система сразу получила готовый сервис, который способен интегрироваться с различными источниками данных и стать полноценной частью инфраструктуры. Далее разработчики написали необходимый прикладной код для взаимодействия, и проект был быстро введен в эксплуатацию.
Связь библиотек с осознанностью
Использование библиотек напрямую связано с осознанным подходом к разработке. Осознанность здесь проявляется в том, каким образом принимаются технические решения. В нашем случае было принято решение вынести повторяющуюся функциональность в отдельную конфигурацию и выделить специалистов, которые будут заниматься ее развитием. Это осознанный выбор, позволивший оптимизировать процессы разработки и сделать сервисы более эффективными и единообразными.
Библиотечный подход снижает количество ошибок: если проблема обнаружена, ее можно исправить в одном месте и затем обновить решения, использующие библиотеку. Это избавляет команды от необходимости вручную корректировать один и тот же фрагмент функциональности в разных продуктах.
Практические рекомендации по развитию осознанности
Осознанность можно развивать с помощью практических действий, встроенных в повседневную работу.
Один из базовых инструментов – регулярное задавание вопросов что, как, зачем и почему перед началом любой задачи. Такой подход помогает лучше понимать природу работы и осознавать ценность каждого шага.
Работа с кодом и архитектурой также является частью осознанного подхода. Просмотр собственного кода, проведение ревью и анализ возможных улучшений формируют профессиональную ответственность и внимание к качеству. Полезно выделять время на совершенствование решений.
После завершения проекта или задачи важно проводить ретроспективу. Команда может обсудить, что получилось особенно хорошо. Обратная связь помогает разработчикам видеть ценность результатов и поддерживает внутреннюю мотивацию. Если инициатором выступает сам специалист, это усиливает эффект: обсуждение сильных сторон решения создает основание для роста и улучшений в будущем.
Системное обучение и повышение квалификации – необходимая часть профессионального развития. Современные образовательные ресурсы обеспечивают широкий выбор качественных курсов, и важно выделять время на их прохождение.
Нетворкинг, обмен опытом, конференции также поддерживают осознанность. Профессиональные клубы, сообщества и конференции позволяют узнавать новое, обсуждать практики и видеть разные подходы. Участие в таких мероприятиях расширяет кругозор и помогает развиваться вместе с отраслью.
Ключевой элемент – внутренний интерес к работе. Важно осознавать, почему выбрана именно эта профессия, и регулярно задавать себе вопрос, что именно сейчас приносит удовлетворение и что важно. Честный поиск ответа поддерживает интерес к работе и помогает оставаться эффективным.
Рекомендуемая литература
В контексте осознанного подхода к работе полезно обратиться к книгам Питера Друкера «Эффективный руководитель» и Фредерика Брукса «Мифический человеко-месяц, или Как создаются программные системы». Эти книги не всегда отражают современные реалии, но содержат глубокие мысли и ценные наблюдения, которые остаются актуальными.
*************
Статья написана по итогам доклада (видео), прочитанного на конференции INFOSTART TECH EVENT.
Вступайте в нашу телеграмм-группу Инфостарт

