Примеры руководства разработчика

УФИМСКИЙ ГОСУДАРСТВЕННЫЙ
АВИАЦИОННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

КАФЕДРА ВЫЧИСЛИТЕЛЬНОЙ
МАТЕМАТИКИ И КИБЕРНЕТИКИ

Прикладное
программное обеспечение для учета
заявок и контроля их исполнения на
примере ООО «Интегрированная транспортная
сеть».

      1. Руководство программиста

Листов
14

УФА
2013

  1. Аннотация

Приводится
руководство программиста программного
обеспечения для учета заявок и контроля
их исполнения на примере ООО «Интегрированная
транспортная сеть».

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

В
руководстве программиста рассматриваются
назначение, характеристики, условия,
необходимые для выполнения программы

  1. Назначение программы

Программный
продукт будет использован в компании
NetTrans
(ООО «Интегрированная транспортная
сеть») в отделах технической поддержки,
абонентском и строительства как модель
взаимодействия, полагающая, что центром
всей философии бизнеса является клиент,
а основными направлениями деятельности
являются меры по поддержке продаж и
обслуживания клиентов. Данным программным
обеспечением могут воспользоваться
лишь зарегистрированные пользователи,
регистрация в свою очередь осуществляет
лишь администратор, путем добавления
нового пользователя в базу данных, так
же имеется возможность вести статистику
операторов, составляющие заявки
абонентов.

  1. 2. Условия, необходимые для выполнения программы

Для
работы программного продукта необходима
следующая программно-аппаратная
конфигурация:

  • Windows
    7,Windows Server 2003 Service Pack 2,Windows Server 2008,Windows
    Server 2008 R2,Windows Vista, Windows Vista Service Pack 1,Windows
    XP Service Pack 2,Windows XP Service Pack 3;

  • 32-разрядные
    системы: компьютер, оборудованный
    процессором Intel
    или совместимым процессором с тактовой
    частотой 1 ГГц или выше (рекомендуется
    2 ГГц или выше, поддерживается только
    один процессор);

  • 64-разрядные
    системы: процессор с тактовой частотой
    1,4 ГГц или выше (рекомендуется 2 ГГц или
    выше, поддерживается только один
    процессор);

  • минимальный
    объем ОЗУ 512 МБ (рекомендуется 1 ГБ или
    более);

  • 1
    ГБ свободного места на диске;

  • наличие
    СУБД:
    MS SQL
    2008;

  1. 3. Характеристики программы

  2. 3.1.
    Режим работы программы

Диалоговый.
Web-интерфейс
в браузере (с поддержкой HTML5).

  1. 3.2.Средства
    проверки правильности выполнения
    программы

Проверка
правильности работы программы
осуществляется при выполнении конкретных
примеров. Программа
выдает сообщение при вводе некорректных
данных (Рис. 2.20):

Рис. 2.20.
Некорректный ввод номера телефона

  1. 3.3.
    Функционирование программы после сбоев

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

    1. Обращение
      к программе

Для
запуска программы необходимо выполнить
следующие действия:

  • Запустить
    программу на ПК, с поддержкой Microsoft
    .NET
    Framework
    (или на удаленном сервере), если он еще
    не запущен;

  • Откройте
    ваш любимый браузер (на пример chrome,
    internet
    explorer,
    mozilla
    firefox);

  • Введите
    в адресную строку IP-адрес
    сервера, с заранее определенным портом;

  • Откроется
    страница домашняя страница;

  • Начать
    работу
    с клиентами.

Не
авторизованный (не зарегистрированный)
пользователь не может просматривать
какую либо вкладку.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Руководство программиста. Пример

Пример руководства программиста по одной из ранее сданных систем

СИСТЕМА УПРАВЛЕНИЯ ДЛЯ УЧАСТКА СБОРКИ И НАСТРОЙКИ ДВДТ

АННОТАЦИЯ

В данном руководстве содержится информация, описывающая прикладное программное обеспечение для участка сборки и настройки ДВДТ – участок ДВДТ (далее по тексту – участок). Документ содержит информацию о доступе к функциям системы управления MasterScada (далее по тексту – СУ), структуре программы, методики записи и просмотра произошедших событий.

СОДЕРЖАНИЕ

1             НАЗНАЧЕНИЕ И УСЛОВИЯ ПРИМЕНЕНИЯ ПРОГРАММЫ           5

1.1          Назначение программы            5

1.2          Аппаратные средства  6

2             ХАРАКТЕРИСТИКА ПРОГРАММЫ          7

2.1          Структура SQL базы данных    7

2.2          Программные секции 10

2.3          Структура программного обеспечения            14

3             ОБРАЩЕНИЕ К ПРОГРАММЕ   16

4             ВХОДНЫЕ И ВЫХОДНЫЕ ДАННЫЕ        16

5             СООБЩЕНИЯ    17

ПЕРЕЧЕНЬ ТЕРМИНОВ И ОПРЕДЕЛЕНИЙ           18

ПЕРЕЧЕНЬ СОКРАЩЕНИЙ          19

ПЕРЕЧЕНЬ РИСУНКОВ 20

ПЕРЕЧЕНЬ ТАБЛИЦ       21

ПЕРЕЧЕНЬ ССЫЛОЧНЫХ ДОКУМЕНТОВ              22

ЛИСТ РЕГИСТРАЦИИ ИЗМЕНЕНИЙ       23

1             НАЗНАЧЕНИЕ И УСЛОВИЯ ПРИМЕНЕНИЯ ПРОГРАММЫ

1.1          Назначение программы

Стенд предназначен для испытаний определённого вида оборудования на разных участках. ПО обеспечивает настройку на следующих участках:

— настройка температуры;

— настройки давления;

— настройки скорости ветра;

— настройки влажности;

— настройки ДВДТ;

— сдачи ПСИ.

ПО реализует следующие функции:

— получение и обработка сигналов ввода-вывода с корзины ввода-вывода;

— приём и фильтрация входных дискретных сигналов от вероятного «дребезга» контактов;

— приём и обработка входных аналоговых сигналов;

— контроль выхода сигнала за допустимые границы (недостоверность сигнала);

— масштабирование аналогового сигнала;

— генерация пороговых нарушений с функцией гистерезиса;

— выдача дискретных команд на оборудование (управляющие воздействия);

— реализация алгоритмов управления системой;

— реализация алгоритмов защит;

— обмен данными со смежными системами по протоколу Modbus TCP;

— диагностика модулей контроллера на наличие ошибок, и формирование сообщений для АРМ о состоянии оборудования контроллера;

— мониторинг аварийных ситуаций оборудования системы.

ПО реализует следующие функции:

— вывод на экран видеокадра текущего состояния участка;

— отображение состояний оборудования;

— управление механизмами установки;

— ведение архива собранных событий;

— отображение аварийных ситуаций;

— ведение хронологии аварийных событий.

1.2          Аппаратные средства

В состав технических средств системы входят следующие аппаратные и программные компоненты:

— Электронный модуль давления Метран-518 предназначен для точного измерения и непрерывного преобразования значений абсолютного и избыточного давления, разрежения, давления-разрежения при поверке и калибровке различных приборов давления;

— Камера ТБК-500;

— Контроллеры PACE5000 и РАСЕ1000;

— Мультиметр Метран-514МПП

Персональный компьютер ПЭВМ

— процессор не хуже Intel i7 2,7 ГГц

— слоты расширения на материнской плате, не менее: 5 слотов 1x PCI-E 2.0, 1 слот 16x PCI-E 3.0

— память не менее 16 Гб DDR4-2133/2400

— дисковая подсистема: корзина на 2 диска, 2,5” SSD не менее 240GB (для системы и программ), 3.5” HDD SATA не менее 1 Tb (для данных);

— оптический привод DVD±RW в комплекте;

— порты: 4 x USB 3.0; 6 x USB 2.0, VGA, DVI, 1x LAN (RJ-45, Ethernet 10/100/1000), 4x RS232, 4x CAN 2.0

— блок питания, не менее 600 Вт;

— рабочая температура от +5º до +40ºС (промышленное исполнение);

— поддержка работы с двумя мониторами одновременно.

Установлено лицензионное ПО: Microsoft Windows Server 2012,

В слоты расширения ПК установлены и подключены интерфейсные платы RS 232 CAN; соединители плат должны выведены на заднюю панель ПК

В состав ПК входит: системный блок, монитор 24-27” со входами DVI и VGA, клавиатура, манипулятор «мышь»

Дополнительно: коммутатор Ethernet.

2             ХАРАКТЕРИСТИКА ПРОГРАММЫ

2.1          Структура SQL базы данных

Потребность в СУРБД Microsoft SQL Server у пользователей ПО MasterScada может возникнуть только в тех случаях, когда предполагается использовать оперативные журналы или SQL базу данных телеметрии.

SQL база данных состоит из таблиц. Поля БД — это столбцы таблицы, а записи БД — это строки таблицы. Каждая БД изначально содержит таблицы:

— CONFORMS

— CORETABLE

— EQUIPMENT

— HISTORY

— MAGS

— NEXTNUMS

— PERSONS

— REFS

— SQLTOKENS

— USERFORMS.

Таблица CORETABLE состоит из наиболее распространенных полей, которые характерны почти для любого оперативного журнала:

— RECID                 — уникальный идентификатор записи;

— FULLPATH        — принадлежность записи конкретному журналу (путь в дереве журналов);

— DATACREATE — дата/время создания записи;

— DATE1, DATE2                — вспомогательные даты/времени общего назначения (например, обнаружения и устранения дефекта);

— OBJECT              — оборудование, к которому относится запись;

— COMMENT      — произвольный комментарий (например, описание дефекта);

— STATE                — состояние записи (например, обнаружен/устранен).

Каждая запись имеет свой жизненный цикл, который ведется в таблице HISTORY. Там фиксируются факты создания записи (кто, когда создал, редактировал, подписывал или отзывал подпись).

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

Рисунок 1 – Модель данных БД. Связи по внешнему ключу

На предприятии, как правило, ведется несколько оперативных журналов, каждый из которых может содержать подразделы (поджурналы), которые, в свою очередь, также могут содержать подразделы и т.д.

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

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

В ПО MasterScada используется механизм таблиц расширения, т.е. таких таблиц, которые содержат дополнительные поля, характерные для определенного журнала. Такая таблица может быть создана только для журнала первого уровня главной ветви дерева журналов. Таблица расширения привязывается к журналу и ко всем его поджурналам. В таблицу расширения можно поместить поля произвольных типов и использовать ее так, как будто это одна запись данного журнала.

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

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

Кроме обычных справочников, предусмотрен специальный вид справочника — справочник оборудования. Этот справочник представляет собой иерархическую структуру и отображается в виде дерева. Такой подход связан с тем, что одинаковое оборудование может располагаться на разных объектах. В данном справочнике предусмотрено хранение кодов оборудования согласно требованиям ОДУ. Справочник оборудования может быть привязан только к полю строкового типа.

Для каждого журнала могут быть созданы формы просмотра списком нескольких записей, просмотра/редактирования одной записи и печатных документов (отчет). Форма редактирования должна представлять собою максимально детализированное представление записи, именно с ее помощью (и только через нее) осуществляется редактирование записи. В случае если на данном уровне дерева какая-либо из форм не задана, берется форма из вышестоящего уровня. Все указанные формы обязательно должны быть созданы для всех журналов первого уровня! Формы и отчеты создаются в конфигураторе БД при помощи дизайнера форм и дизайнера отчетов.

2.2          Программные секции

Приложение содержит:

— конфигурацию аппаратных и программных средств;

— набор функциональных модулей, каждый из которых реализуется секциями, написанными на языке ST (структурированного текста);

— набор функциональных блоков, разработанных в рамках проекта KPC;

— базу данных переменных контроллера;

— анимационные таблицы.

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

Таблица 2.1 – Программные секции

Внутри секций используются следующие подпрограммы (функциональные блоки), которые приведены в таблице 2.2.

Таблица 2.2 – Функциональные блоки

Параметры сигналов блоков приведены в таблице 2.3.

Таблица 2.3 – Параметры сигналов блока

Разъём                Контакт               Наименование               Параметры

X1           1             I вх.       Токовый вход датчика температуры. I вх. не более 400 мкА.

                2                             Пустой вывод. Не использовать.

                3                             Пустой вывод. Не использовать.

                4             +12В      Выход напряжения питания датчика температуры 12±0,25 В относительно «Общ.12В» Ток нагрузки не более 400 мкА.

X3           1             +12В      Выход напряжения питания +12±0,25 В относительно «Общ.12В» Ток нагрузки не более 400 мкА.

                2             +7В        Выход напряжения питания +7±0,25 В относительно «Общ.» Ток нагрузки не более 300 мА.

                3             -7В         Выход напряжения питания -7±0,25 В относительно «Общ.» Ток нагрузки не более 50 мА.

                4             Общ.     Нулевой потенциал блока.

                5             Общ.     Нулевой потенциал блока.

                6             Общ.     Нулевой потенциал блока.

                7             CAN_L Линия цифровой сети передачи данных CAN-L. Параметры согласно ISO11898

                8             CAN_H Линия цифровой сети передачи данных CAN-Н. Параметры согласно ISO11898

X2           1             GND      Нулевой потенциал блока.

                2             RESET    Сигнал интерфейса JTAG.

                3             TMS       Сигнал интерфейса JTAG.

                4             TCK        Сигнал интерфейса JTAG.

                5             TDI         Сигнал интерфейса JTAG.

                6             TRST      Сигнал интерфейса JTAG.

                7                            

                8             3,3В       Напряжение питания 3,3В. Ток нагрузки не более 10 мА.

2.3          Структура программного обеспечения

Структура ПО представлена на рисунке 2.

Рисунок 2 – Структура ПО

Приложение содержит:

— таблицы настроечных параметров системных функций панели;

— набор скриптов, для реализации программных функций, написанными на языке JAVA;

— перечень видеокадров системы;

— перечень всплывающих окон в системе

— базу данных переменных тэгов панели.

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

Таблица 2.4 – Перечень скриптов

3             ОБРАЩЕНИЕ К ПРОГРАММЕ

Программа при работе на объекте сконфигурирована на автоматический запуск при включении стенда. Состояние программного обеспечения отображается на экране монитора и светодиодных индикаторах приборов стенда.

Настройка параметров прикладного программного обеспечения операторской панели настраивается с ПК.

При этом настраиваются:

— таймеры нарушений работы стенда;

— уставки времени дискретных выходных сигналов;

— шкала входного аналогового сигнала температуры;

— шкала входного аналогового сигнала давления;

— шкала входного аналогового сигнала влажности;

— шкала входного аналогового сигнала скорости ветра;

— время цикла приложения;

— IP и Modbus адреса приборов стенда.

4             ВХОДНЫЕ И ВЫХОДНЫЕ ДАННЫЕ

Входными данными системы является информация, поступающая от объекта управления в систему через устройства связи с объектом (распределённой периферии), а также команды, вводимые оператором.

Выходными данными системы является информация, передаваемая на объект управления (стенд) из ПК через устройство связи с объектом. Информация выводится в АРМ оператора в виде экранных форм.

5             СООБЩЕНИЯ

Сообщения, передаваемые по интерфейсу АРМ-стенд, приведены в таблице 5.1.

Таблица 5.1 – Перечень событий, выводимых в журнале событий

№ п/п Наименования события

1             Выбрана вкладка блока №1

2             Выбрана вкладка блока №2

3             Выбрана вкладка блока №3

4             Выбрана вкладка блока №4

5             Индикатор питание +7 В

6             Индикатор питание -7 В

7             Индикатор питание +12 В

8             ПК подключен к стенду

9             Нажата кнопка включения блока №1

10           Нажата кнопка включения блока №2

11           Нажата кнопка включения блока №3

12           Нажата кнопка включения блока №4

13           Индикатор включения блока №1

14           Индикатор включения блока №2

15           Индикатор включения блока №3

16           Индикатор включения блока №4

17           Нажата кнопка включения камеры

18           Индикатор включения камеры

19           Резерв

20           Повышенное напряжение между фазами

21           Индикатор отключения камеры

22           Команда на включение камеры

23           Команда на задание скорости ветра

24           Команда на отключение блока №1

25           Команда на отключение блока №2

26           Команда на отключение блока №3

27           Команда на отключение блока №4

ПЕРЕЧЕНЬ ТЕРМИНОВ И ОПРЕДЕЛЕНИЙ

Автоматизированная система (АС) – система, состоящая из персонала и комплекса средств автоматизации его деятельности, реализующая информационную технологию выполнения установленных функций.

База данных (БД) – представленная в объективной форме совокупность самостоятельных материалов (статей, расчётов, нормативных актов, судебных решений и иных подобных материалов), систематизированных таким образом, чтобы эти материалы могли быть найдены и обработаны с помощью электронной вычислительной машины (ЭВМ).

Система управления базами данных (СУБД) – совокупность программных и лингвистических средств общего или специального назначения, обеспечивающих управление созданием и использованием БД.

Программное обеспечение АС – совокупность программ на носителях данных и программных документов, предназначенная для отладки, функционирования и проверки работоспособности системы.

Прикладная программа – Программа, предназначенная для решения задачи или класса задач в определенной области применения системы обработки информации.

MasterScada – программный пакет для проектирования систем диспетчерского управления и сбора данных (Scada).

SQL – язык программирования, применяемый для создания, модификации и управления данными в реляционной базе данных, управляемой соответствующей системой управления базами данных,

ПЕРЕЧЕНЬ СОКРАЩЕНИЙ

SCADA (Supervisory Control and Data Acquisition System) – система диспетчерского управления и сбора данных

АС          – автоматизированная система;

БД          – база данных;

ПК          – персональный компьютер;

ПО         – программное обеспечение;

СУ          – система управления;

СУБД    – система управления базами данных.

ПЕРЕЧЕНЬ РИСУНКОВ

Рисунок 1 – Модель данных БД. Связи по внешнему ключу 8

Рисунок 2 – Структура ПО         13

ПЕРЕЧЕНЬ ТАБЛИЦ

Таблица 2.1 – Программные секции   10

Таблица 2.2 – Функциональные блоки             12

Таблица 2.3 – Параметры сигналов блока       12

Таблица 2.4 – Перечень скриптов        15

Таблица 5.1 – Перечень событий, выводимых в журнале событий 17

ПЕРЕЧЕНЬ ССЫЛОЧНЫХ ДОКУМЕНТОВ

№ п/п Нормативный документ

1             ГОСТ 19781-90 ЕСПД. Термины и определения.

2             ГОСТ 19.105-78. ЕСПД. Общие требования к программным документам.

3             ГОСТ 19.402-78. ЕСПД. Описание программы.

4             ГОСТ 19.504-79. ЕСПД. Руководство программиста. Требования к содержанию и оформлению.

5             ГОСТ 19.701-90. ЕСПД. Схемы алгоритмов, программ, данных и систем. Обозначения условные и правила выполнения

ЛИСТ РЕГИСТРАЦИИ ИЗМЕНЕНИЙ

#Руководствопрограммиста, #описаниеПЛК, #ПТС, #интерфейс

Привет! Меня зовут Наташа, я руковожу разработкой бэкенда страницы yandex.ru. Сейчас у нас в команде больше двадцати человек, которые входят в отдельные группы разработки. Три года назад я впервые стала «тимлидом» маленькой группы из четырёх человек, накопив к этому времени десяток лет опыта в разработке и эксплуатации. Я не стесняюсь сказать, что переход от разработчика к тимлиду дался мне тяжело — и это нормально!

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

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

1. Введение

Итак, начнём. Есть фундаментальная проблема роста из специалиста в руководителя. Сразу же заменю здесь слово «рост» на более точное слово «трансформация», потому что никакого роста как раз не происходит.

Как обычно представляют себе этот «рост»

Как всё работает на самом деле

Тут должно стать понятнее, почему это трансформация: потому что это смена одного направления на другое.

Почему так

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

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

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

Какие неочевидные штуки начинают происходить

Самая первая проблема, с которой сталкиваются молодые руководители, — отрицание новой реальности. Реальность проявляется в том, что старые модели поведения перестают работать, а человек начинает испытывать нарастающее напряжение, потому что пытается играть новую роль старыми способами. Это приводит к конфликту: «Вроде бы я всё делаю правильно, но что-то не так». А конфликт, в свою очередь, приводит к увеличению усилий и к росту внутреннего напряжения.

Ниже описаны типовые ловушки, в которые легко попасть, делая новую работу старым способом в стадии отрицания.

Скиллы-бонусы => скиллы для выживания

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

Копать золотой лопатой

Допустим, наш разработчик — это копатель ямок. Его назначают на должность руководителя, и он продолжает копать те же самые ямки. Назову это «копать золотой лопатой»: результат тот же — выкопанная ямка, но за больший бюджет. В чём смысл? Ни в чём, его нет. На практике дела обстоят хуже. Наш новый руководитель начинает ходить на разные встречи, заниматься командой и много отвлекаться, поэтому для выкапывания выбирает несложные ямки, не лежащие на критическом пути, или совсем никому не интересные ямки, потому что интересные он отдал своим любимым копателям для поддержания мотивации. В общем, золотая лопата используется для неважных ямок.

Мораль: компания платит руководителю за то, чтобы он руководил и решал проблемы, которые кроме него никто решить не может. Цените своё время и используйте его на решение сложных проблем, а выкапывание маленьких простых ямок оставьте младшим разработчикам.

Играющий тренер

Ещё одна проблема при попытках совмещать разработку и управление в том, что приоритет руководителя — управлять. А пока человек не стал руководителем, он был классным разработчиком. Что его сделало таким? Правильно — любовь к своей профессии. Что будет происходить с нормальным человеком, занимающимся любимым делом, когда его отвлекают на всякие непонятные управленческие дела? Он начнёт прятаться от окружающих и избегать того момента, когда надо перестать делать любимое дело, особенно если «там чуть-чуть осталось» и сладкая победа так близка. В общем, он будет копать своей золотой лопатой подальше от чужих глаз, чтобы ничто не отвлекало его от прекрасного состояния потока.

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

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

Состояние потока

Большинству людей из разработки, которые любят свою профессию, знакомо чувство потока. Его сложно с чем-то сравнить, и оно прекрасно. Можно ли в управлении войти в чувство потока? Да. Это отдельная тема, и она требует исследования себя, чтобы сформировать подходящий образ работы. Не теряйте надежды: поток обязательно случится, хоть и не сразу.

Очень много операционки

Очень-очень-очень много операционки. Что такое операционка? Это регулярно повторяющиеся однообразные действия, производимые для поддержания работы системы. То есть это выполнение операций. У них что-то на входе, что-то на выходе, но принципиально в системе ничего не меняется.

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

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

Как оно должно выглядеть

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

Время = энергия и лимит принятия решений

Распределение времени — одна из первых проблем, с которыми я столкнулась. Я долго не понимала, что происходит: казалось, что я внезапно очень сильно постарела, заболела или произошло ещё что-то плохое, потому что каждый вечер я чувствовала невероятную усталость. А вот что произошло: будучи разработчиком и находясь в потоке, я часто могла заниматься своей задачей по десять-двенадцать часов в день, потом ещё на выходных хватало сил на пет-проджекты, и всё было прекрасно. Откуда-то у меня было убеждение, что раз можно программировать по десять часов, то можно и ходить на встречи по десять часов. Но это не так. Программирование — это примерно 20% анализа задачи и выработки решения и ещё 80% её реализации и придумывания воркэраундов для суровой реальности. То есть час на принятие сложных решений и четыре часа на их реализацию в более или менее комфортном темпе.

Когда ты ставишь двенадцать встреч в день по 30 минут, то выходит шесть часов принятия сложных решений в условиях очень ограниченного времени при полной смене контекста. Встречи начинаются в 10:00, заканчиваются в 16:30 (обедаю где-то по дороге), и я сижу и думаю, почему хочется умереть — ведь рабочий день в разгаре и у меня ещё столько планов, я же совсем немного поработала. В общем, количество времени, затраченного на работу, никак не связано с количеством израсходованной энергии. Как выяснилось, она не бесконечна. Можно случайно перегнуть, и тогда восстановиться бывает очень сложно. Наблюдайте за собой и контролируйте состояние, чтобы не допустить выгорания.

Цикл обратной связи

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

Авторитет эксперта

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

Потеря цели

Что происходит: у нас был классный разработчик, понимавший, как он будет развиваться, планировавший изучить machine learning, коммитить в ядро Linux, придумывать свои алгоритмы. Потом к нему пришли и сказали: «Ты такой классный разработчик, мы решили, что теперь ты будешь руководителем. Ты молодец!»

Что происходит в голове у нашего героя: «Вау, это доказательство того, что я крут, я расту!» Примерно это, хотя тут куча вариаций.

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

А что я буду делать, если раздам все зоны ответственности и перестану гонять на поле?

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

Какие знания даёт типичный курс начинающего руководителя

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

Где эти знания находятся, по мнению большинства (я тоже думала, что здесь)

Где они находятся на самом деле

Суровая правда: курс учит, как делать, но не учит, что делать.

Когда наступает хоть какое-то чувство комфорта

Большинство компаний ведёт упорядоченный образ жизни и живёт циклами. Циклом может быть проект или какая-то внутренняя жизнь компании, например, полугодовое планирование. Если вы не знаете об этих циклах — это не значит, что их не существует. Лучше сразу выяснить, что это за циклы, и выстраивать свою работу в синергии с ними.

Опыт и наблюдения показывают, что в среднем молодому руководителю нужно три раза пройти цикл (сделать три проекта или три раза пройти полугодовое планирование): в первый раз получится кое-как, во второй раз всё пойдёт по-другому, в третий — какие-то части начнут быть похожими на предыдущие две и человек сможет сделать выводы.

Когда на самом деле начинается рост

Настоящий рост руководителя начнётся, когда:

  1. Он научится стабильно работать в новой реальности, справляться со своими минимальными обязанностями и при этом не думать каждый день, что всё плохо и непонятно. Это стадия принятия и экономии энергии.
  2. У него появится ясная картина собственного будущего в области управления, превосходящая его текущие возможности. Это стадия выхода из ямы, ощущение уверенности в выбранном пути.
  3. Появится постоянное желание менять старое и привносить новое. Это стадия идей и генерации энергии.

До тех пор, пока молодой руководитель не начнёт работать как руководитель, он будет думать, что продвинулся на пути к своей заветной цели про условный machine learning, но правда в том, что он едет в другом поезде.

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

2. Целевое состояние

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

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

Попробуйте начать с текстового описания своего образа: возьмите ручку, бумагу и ответьте на вопросы:

— Чем мне нужно заниматься на самом деле?
— Каким я хочу быть в роли руководителя?
— Как я хочу чувствовать себя в роли руководителя?

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

Затем опишите критерии, по которым будете оценивать, двигаетесь ли вы в нужную сторону. Например, они могут быть такими:

— Я перестала работать по двенадцать часов.
— Мне больше не звонят ночью.
— Команда выполнила запланированные проекты.
— Мы наняли трёх новых сотрудников (а старые не ушли).
— …

Тут может быть что угодно: всё зависит от конкретной ситуации.

В момент, когда у меня появилось целевое состояние, принятое на уровне эмоций и чувств, случился прилив энергии и уверенности в себе. Представление себя в будущем, где приятно, ощутимо снижает беспокойство в моменте. Оно в прямом смысле генерирует энергию из будущего!

3. Движение

В этой части будет два рецепта по движению к целевому состоянию:

— Анализ текущих усилий
— Преодоление оставшегося беспокойства

Анализ текущих усилий

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

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

Таблица

Нужно нарисовать вот такую таблицу:

Деятельность: сюда пишем все виды деятельности, которыми вы обычно занимаетесь. Например, код-ревью, распределение задач, встречи с руководством, найм, управление проектом Х, выполнение задач руками, планирование ресурсов. Даже разные виды встреч — это разная по смыслу активность. Когда я первый раз заполнила такую таблицу, у меня получилось 30+ видов деятельности. Если у вас получилось десять, то надо напрячься и думать дальше. Если отнестись к этому аккуратно, то в сумме получится примерно столько времени, сколько вы реально тратите на работу.

Функция: здесь нужно честно ответить себе на вопрос, в какой роли вы выступаете, делая эту работу. Является ли это работой того руководителя, образ которого вы себе нарисовали? Также можно писать комментарии о цели работы. Например: «Руководитель — поддержка морального духа». Или: «Специалист — проверка качества работы». Вот тут как раз пригодится напарник, который будет задавать вопросы, почему это делаете именно вы, точно ли это должны делать именно вы. Для одного вида деятельности может быть несколько функций, так что не торопитесь и прислушайтесь к себе.

Как часто, сколько занимает: оцените частоту выполнения этой работы и сколько времени она требует. Например, два часа раз в месяц, 30 минут раз в день и так далее. Даже две недели два раза в год — хороший ответ.

Сколько это в неделю: нужно пересчитать всё, что написано в предыдущей колонке, в количество часов в неделю.

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

Это мне нужно делать на самом деле: колонка, в которой вы проставляете «да»/«нет». Если совсем тяжело, то можно выбирать вариант «частично».

Что с этим сделать: и тут самое интересное. Придумайте, что сделать с теми вещами, которыми заниматься не нужно или нужно частично. Так вы перестанете тратить на них столько времени. Всё зависит от конкретной ситуации. Можно передать эти задачи кому-то другому, делегировать человеку «на вырост», перестать делать вообще, упростить, автоматизировать, поделить и раздать команде и так далее.

Пожинаем плоды

Все строки таблицы нужно раскрасить в красный, жёлтый и зелёный цвет.

Красный — для тех видов деятельности, которыми заниматься не нужно.
Жёлтый — для тех, которые нужно оставить частично.
Зелёный — для тех, которые являются вашей непосредственной работой.

Получится что-то в таком роде:

Теперь с опустошённым сознанием посмотрите на таблицу. Ну как?

И бонус номер два: для всех красных и жёлтых видов деятельности посчитайте сумму часов в неделю, которая освободится, если воплотить в жизнь все решения из колонки «что с этим сделать». Как вам результат? Если получилось 0, то вы себя обманываете.

Что делать дальше

Выберите из последней колонки то, что вы сделаете в течение следующего месяца. Через месяц вернитесь и актуализируйте таблицу (вычеркните те виды деятельности, которыми вы перестали заниматься), уточните затраты по времени, выберите новые действия на следующий месяц. Если всё выполняете правильно, то через три месяца вы освободите себе достаточно времени, чтобы начинать заниматься новыми направлениями из вашего целевого состояния.

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

Преодоление оставшегося беспокойства

Рецепт на тот случай, когда мучает ощущение, что ещё есть задачи, которыми нужно заниматься, но сейчас на них нет достаточного ресурса. Вы сможете за них взяться, когда воплотите в жизнь всё придуманное в предыдущем упражнении. Но пока этот момент не наступил, можно создать mind map.

Нарисуйте в центре вопрос: «Что меня беспокоит?».

И честно выписывайте всё, чем, по вашему мнению, нужно или хочется ещё заниматься.

Как только вы это напишете, беспокойство уже начнёт снижаться. Признание проблемы — первый шаг!

Затем у каждого пункта честно напишите, есть ли необходимость делать это прямо сейчас. Например: «делать», «отложить до Х», «не делать» или ещё какие-то варианты на ваш вкус.
Те пункты, где вы решили ничего не делать, можно просто выбросить из головы и перестать о них беспокоиться, ведь решение уже принято.

Для пунктов, где написано «делать», придумайте минимальные усилия, которые будут давать хотя бы небольшой результат, но при этом не потребуют много ресурсов. Например: «поставить встречу с Х раз в неделю», «читать одну статью по теме в неделю» и так далее.

Получится что-то такое (все совпадения случайны, картинка выдуманная):

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

4. Финальная часть

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

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

Задача управления

Основная задача управления — достижение целей за счёт сознательных усилий. Здесь два ключевых слова: цель и сознание.

(Отдельно замечу, что отказ от достижения цели — это тоже достижение цели, но другой — находящейся уровнем выше.)

Задача руководителя

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

Что делать, если я до сих пор не знаю, что делать?

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

Что делать, если мне слишком тяжело

Возьмите паузу и примите наконец это решение: откажитесь от роста в управленческой ветке. Спросите себя: «Зачем мне это?» Если нет хорошего ответа, от которого наступает успокоение и тепло разливается по телу, примите другой хороший ответ: «Это не для меня, и это нормально». Можно быть уникальным специалистом с невероятной экспертизой, и мир будет счастлив, что вы у него есть, а вы будете счастливы, что сами приняли правильное решение.

Пять секунд мотивации

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

Реальный опыт

Всё описанное выше — мой опыт и пройденный путь. Было ли сложно? Конечно. Самое сложное — продолжать делать, пока не получится, несмотря на регулярно посещавшие мысли, что мне это просто не дано. Можно ли быть счастливым руководителем? Точно можно.

643.02069436.41NNN-01
3
3 01-1

«Шифрование
данных»

Программа

Руководство программиста

643.02069436.41NNN01
33 01-1

Листов 6


АННОТАЦИЯ

Приводится руководство
программиста программы
«Шифрование
данных»
.

Программа предназначена
для шифрования и дешифрования данных,
с применением алгоритма шифрования
«Шифр-Гост 28147-89».

Ограничения программы: программа
аварийно завершается при загрузке
файлов с размером более 500 МБ.

Условия эксплуатации программы:

возможность применения в локальной
сети;

на персональных компьютерах
с процессором не ниже 300МГц, минимум
оперативной памяти 16 MБ и операционная
система не ниже Windows 95.

Распространяется на дискетах.

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


СОДЕРЖАНИЕ

стр.

1 Назначение и условия применения
программы 4

1.1 Назначение программы 4

1.2 Функции программы 4

Функция открытия и чтения файла
“LoadFile” вызывается путем нажатия
Файл->Открыть и загрузка данных из
файла при выборе файла в диалоговом
окне. 4

1.4 Требования к программному обеспечению 4

2 Характеристики программы 4

2.1 Средства проверки правильности
выполнения программы 4

2.2 Функционирование программы после
сбоев 4

3 Обращение к программе 4

3.1 Способы вызова программы с различных
носителей данных 4

3.2 Входные точки в программу 4

3.3 Способы передачи управления и
параметров данных 4

3.4 Обращение к программе – приложению 5

4 Входные и выходные данные 5

4.1 Формат, характер и организация входных
данных 5

4.2 Формат, характер и организация
выходных данных 5

5 Сообщения 5

5.1 Сообщения программисту и действия
по ним 5

6 Дополнительные материалы 5

6.1 Примеры 5

Производится открытие файлов путем
нажатия Файл->Открыть и загрузка
данных из файла при выборе файла в
диалоговом окне. 5

6.2 Иллюстрации 6

Окно ввода (отображения) Ключ Окно
вывода (отображения) 6

Главное меню Строка состояния процесса 6


1 Назначение и условия применения
программы

1.1 Назначение программы

Описываемая программа предназначена
для шифрования и дешифрования
данных, хранящихся в файлах.

1.2 Функции программы

  • Функция
    открытия и чтения файла “
    LoadFile
    вызывается путем нажатия

    Файл->Открыть
    и
    загрузка данных из файла при выборе
    файла в диалоговом окне.

  • При нажатии Шифрование->Зашифровать
    программа вызывает процедуру “
    Coding”,
    которая зашифровывает данные и выводит
    результат в окно для ввода текста.

  • При выборе в меню
    Шифрование->Расшифровать
    – программа вызывает процедуру
    Recoding”,
    которая расшифровывает данные с выводом
    в результата в текстовое окно.

  • Запись данных в файл
    происходит путем нажатия
    Файл->Сохранить
    вызове функции
    SaveFile”и
    выборе в диалоговом окне документа для
    записи данных.

1.3 Использование оперативной памяти

Количество необходимой оперативной
памяти определяется размером обрабатываемых
данных, плюс к этому 1 МБ для загрузки
самой программы и создания всех
необходимых переменных и структур.

1.4 Требования к программному обеспечению

Операционная система Windows95
и выше.

2.1 Средства проверки правильности
выполнения программы

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

2.2 Функционирование программы после
сбоев

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

3.1 Способы вызова программы с различных
носителей данных

Программа может вызываться с любых
носителей.

3.2 Входные точки в программу

Исполняемым файлом программы является
файл «CodingGost.exe«.

3.3 Способы передачи управления и
параметров данных

Передача параметров производится в
режиме диалога программы с пользователем.

3.4 Обращение к программе – приложению

С помощью программ файл — менеджеров
зайти в каталог, в который установлена
программа и запустить файл «CodingGost.exe».

4.1 Формат, характер и организация входных
данных

Загрузка данных в виде текста или файла
любого формата для (рас)зашифровывания.

4.2 Формат, характер и организация выходных
данных

Cохранение (рас)зашифрованных
данных в файл любого формата, либо
простым отражением в текстовом поле.

5.1 Сообщения программисту и действия
по ним

№ п/п

Сообщение

Описание

Действия

1

2

3

4

1.

Отсутствуют
данные для обработки!”

Системное окно
сообщения с информацией, о том, что
файл не открыт.

Загрузить файл.

2.

Не задан ключ!”

Системное окно
сообщения с информацией, о том, что
ключ не задан.

Ввести ключ для
шифрования в соответствующее поле.


6.1 Примеры

Производится
открытие файлов путем
нажатия
Файл->Открыть и
загрузка данных из файла при выборе
файла в диалоговом окне.

Возможен ввод текста для шифрования в
окно и его загрузка из него.

При нажатии Шифрование->Зашифровать
программа зашифровывает данные и выводит
результат в окно для ввода текста.

При выборе в меню Шифрование->Расшифровать
– происходит расшифровка данных с
выводом в результата в текстовое окно.

Запись данных в файл происходит путем
нажатия Файл->Сохранить и выборе
в диалоговом окне документа для записи
данных.

Можно изменить параметры шифрования –
ключ шифрования, “S
— блоки”.

6.2 Иллюстрации

Основная форма

Окно ввода
(отображения) Ключ Окно
вывода (отображения)

Главное меню
Строка состояния
процесса


Понравилась статья? Поделить с друзьями:
  • Ансамбль песни под руководством
  • Огоплекс инструкция по применению для мужчин
  • Уво внг россии по свердловской области руководство
  • Новорапид инструкция по применению цена отзывы аналоги цена
  • Газовый котел бакси эко хоум инструкция