Попытался систематизировать собственный опыт и некоторые знания в области HR, составив некоторый портрет "идеального программиста 1С". После того, как такой "портрет" получилось построить, выбрал все знания/умения/навыки, которыми такой "идеальный" кандидат должен обладать, выбрал 10 наиболее важных (по моему опыту) и сформулировал вопросы, которыми данные качества/знания/навыки можно проверить. Всё это мы неоднократно проделываем на собеседовании, вот только времени обычно на это минуты 2-3, потому как не привыкли же мы заранее продумывать вопросы, которые зададим.
Расшифровка результатов ответов приведена в конце статьи
Вопрос 1 Есть ли у Вас сертификаты 1С? Какие?
В России мы привыкли пренебрежительно относиться ко "всякого рода бумажкам". Это общий подход. Жизнь научила нас им не доверять. Привыкли мы к "купленным правам", "купленным дипломам" и т.п. Тем не менее, таким замечательным инструментом первичной оценки знаний нужно пользоваться. 1С достаточно трепетно относится к выдаче своих сертификатов (что касается "Специалист" и выше). "Покупать" сертификаты вряд ли кто будет - не такая это большая ценность, чтобы пытаться, да и не просто это, я думаю. Круг лиц весьма ограничен. А о чём говорит сертификат "1С Специалист":
- Есть хоть какая-то школа. При сдачи экзаменов 1С смотрят не просто как человек умеет ездить (программировать), а как человек умеет ездить по правилам (программировать по методикам)
- Как минимум - человек программировать в 1С умеет, может и не большой профи, но умеет, поэтому кучу всевозможных проверок одним вопросом мы отбрасываем
Лучше всего если у кандидата несколько сертификатов - по платформе и по прикладному решению с которым ему предстоит работать.
Но очень внимательно отнеситесь если у кандидата много сертификатов, либо среди них есть сертификаты вида "Руководитель проекта, ведущий консультант, Эксперт по техн. вопросам". Если эти люди ищут работу обычным программистом - на то должны быть другие причины, кроме того уровень желаемого дохода может оказаться несоразмерным вашему бюджету.
Вопрос 2. Вы знакомы с документом "Система стандартов и методик разработки конфигураций для платформы 1С:Предприятие 8"?
Сам документ находится на любом диске ИТС или http://its.1c.ru/db/v8std#browse:13:-1
Если нужно проверить знание самого документа, можно спросить из каких частей в общем случае состоит программный модуль системы ответ должен быть примерно таким:
-
заголовок модуля
-
раздел описания переменных
-
процедуры и функции модуля
-
обработчики событий элементов формы
-
обработчики событий
-
раздел инициализации
Лично мое мнение этот документ должен знать каждый программист. Этим отличается квалифицированный программист от "программера". Именно из за того что следовать методикам часто не принято, а преобладает "я сам лучше знаю как надо" получаются многие "кривые" прикладные решения. А если отойти от 1С это основная "болезнь" русских программистов, на эту тему уже множество шуточных статей вроде этой: http://blog.sjinks.pro/humour/76-programmers-russian-indian-chinese-canadian/
Вопрос 3. Вам нужно разработать прикладное решение "с нуля" с чего вы начнете?
Жизненный вопрос, правда? "Правильный" программист вспомнит теорию ещё с университетской скамьи:http://ru.wikipedia.org/wiki/%D0%A6%D0%B8%D0%BA%D0%BB_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D1%8F (анализ требований, составление спецификации)
Ещё более правильный вспомнит что перед сбором и анализом требований хорошо бы провести цельное исследование - познакомиться с бизнес-процессами компании. Ну и совсем правильно будет ещё взять правильную основу для разработки - 1С нам подарила замечательную "библиотеку стандартных подсистем": http://its.1c.ru/db/bspdoc#browse:13:-1
Вопрос 4. Насколько хорошо вы знаете функциональность прикладного решения "..."? Перечислите основные процедуры проведения Документа в решении "...".
"Доверяй но проверяй". Прикладное решение естественно должно использоваться (планироваться к использованию) в вашей организации и заявлено у программиста в резюме как знакомое. Собственно если человек достаточно хорошо знает "внутренности" того или иного прикладного решения, В модули проведения документа он вмешивался не один раз. Изменения, которые не влияют на проведение, часто можно считать "косметическими". А уж если приходилось добавлять новые документы в рамках функциональности прикладного решения, и добавлять их "правильно", то эти процедуры надолго отложатся в памяти. Проверить конечно это стало достаточно трудно, т.к. в решениях на 8.2 логика проведения поменялась, и следовательно процедуры поменялись тоже.
Для УТ 11 на момент написания статьи они такие:
ИнициализироватьДополнительныеСвойстваДляПроведения(Ссылка, ДополнительныеСвойства, РежимПроведения);
ИнициализироватьДанныеДокумента(Ссылка, ДополнительныеСвойства);
ПроведениеСервер.ПодготовитьНаборыЗаписейКРегистрацииДвижений(ЭтотОбъект);
....ОтразитьДвижение....(ДополнительныеСвойства, Движения, Отказ);
СформироватьСписокРегистровДляКонтроля();
ЗаписатьНаборыЗаписей(ЭтотОбъект);
ВыполнитьКонтрольРезультатовПроведения(ЭтотОбъект, Отказ);
Вообще программист 1С должен хорошо ориентироваться во всех типовых конфигурациях, потому что основная работа квалифицированного программиста не написать код, а грамотно спереть код оттуда где подобная задача уже решена.
Вопрос 5. Перечислите все статьи баланса, которые вы знаете.
Простой тест на превичное знание бух. и упр. учета. Собственно должно получиться что-то похожее на http://blanker.ru/files/forma-1-balans-2003-q1.doc В зависимости от вида формы и названия статей можно так определить с каким балансом больше имел дело человек с бухгалтерским или управленческим. По большому счету, незнание структуры баланса не говорит о том что перед нами плохой программист, но говорит о том что перед нами "только программист".
Вопрос 6. Вам знакомо понятие "Валюта Баланса"?
Вопрос убивает 2-х зайцев одним выстрелом: проверяет возможные необдуманные действия и знание бухгалтерского учета.
Казалось бы самый простой ответ "валюта в которой формируется баланс"... но в этом и есть вся загвоздка - это не такhttp://www.edudic.ru/buh/705/ Это первичное понятие БУ. Собственно не знание его означает уже не знание БУ как такового, а ответ "валюта в которой" лишь попытки догадки без знаний, что характеризует кандидата не с лучшей стороны.
Вопрос 7. Технический back ground. Вы знаете MS SQL? Знаете MS AD? Основные сетевые протоколы?
Проверить знания MS SQL можно к примеру вопросом "Для чего используется статистика MS SQL" или "что такое план запроса".
Собственно статистика нужна для построения плавильных планов запросов, а планы запросов:
http://ru.wikipedia.org/wiki/%D0%9F%D0%BB%D0%B0%D0%BD_%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0
MS AD - практически стало стандартом организации ИТ инфраструктуры http://ru.wikipedia.org/wiki/Active_Directory
Знание сетевых протоколов можно к примеру спросить чем отличается TCP от UDP
http://ru.wikipedia.org/wiki/TCP и http://ru.wikipedia.org/wiki/UDP Собственно отличается TCP предварительной установкой соединения.
Хороший технический Background необходим для квалифицированного программиста, т.к. часто приходится решать смежные задачи: оптимизация базы потребует зания MS SQL, настройка и развертывание сервера потребует первичных знаний AD. Организация интеграции с другими системами потребует знания сетевых протоколов и т.д. Очень часто "бедой" "программистов 1С" является то, что кроме 1С собственно ничего и не видели. Особенно если образование не техническое, или "не информационное". Это сужает круг задач, которые они могут решать.
Вопрос 8. Вы знаете другие языки программирования (C++, C#)?
Получив утвердительный ответ тоже хорошо бы проверить, спросив что такое наследование (http://ru.wikipedia.org/wiki/%D0%9D%D0%B0%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)) и Полиморфизм (http://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%BB%D0%B8%D0%BC%D0%BE%D1%80%D1%84%D0%B8%D0%B7%D0%BC_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)). т.к. оба этих языка являются объектно-ориентированными, наследование и полиморфизм заложены в их основу.
Знание других языков программирования говорит о хорошей подготовке программиста, кроме того, о понимании "основ" построения информационной системы. Кроме того, некоторые технологии (COM OLE .NET WS) являются общими для различных языков программирования, поэтому их использование для интеграционных проектов окажется более простым
Вопрос 9. Бухгалтер просит вас перенумеровать счета фактуры по организации ООО "..." за текущий месяц. Посмотрев ситуацию вы находите там всего 10 счетов фактур. Что бы вы сделали?
Самая типичная ситуация на примере которой выясняется личностное поведение программиста. Однозначно правильного ответа на данный вопрос нет. Зато есть однозначно неправильный - "перенумерую руками". Это именно то поведение, которое часто встречается даже у квалифицированных программистов, но резко снижает их полезность для организации. Выполнять какую-либо операторскую работу программист не должен - это не рентабельно для компании, т.е. разница в з/п обычно составляет 2-3 и более порядков.
Идеальным вариантом будет использование ключевой фразы: "при отсутствии текущих задач" или "небольшой текущей загрузке" напишу илилучше скачаю механизм перенумерации объектов, и научу бухгалтера им пользоваться. Либо "при высокой текущей загрузке" позвоню и вежливо предложу перенумеровать СФ самостоятельно, в случае необходимости объясню как это сделать.
Но собственно в данном случае всё зависит от того, какого человека вы ищите. Если проектника (задачи внедрения), то конечно иделальным поведением будет "вежливо попросить" бухгалтера не приставать с такими вопросами, если же на поддержку, то вариант с "вежливо попросить" просто отпадает.
Вопрос 10. Вам знакома библиотека ITIL? А технология PMI?
Если вы ищите только программиста, то на эти вопросы лучше если будет отрицательный ответ. ITIL - библиотека Best practice процессного менеджмента для управления процессами ИТ. PMI - технология управления проектами. Собственно 2 самых популярных инструмента ИТ руководителей на момент написания данной статьи. Если кандидат знаком с ITIL следовательно он наметил для себя карьеру ИТ директора в будущем. Если PMI - следовательно стремится стать менеджером проектов. Если же человек достаточно хорошо знаком или с одним или с другим то нужно заранее планировать либо карьерный рост кандидата, либо его уход из компании.
Расшифровка результатов
Естественно все результаты рассмотреть не получится - много возможных сочетаний. Могу только сказать что вопросы расположены в порядке убывания их значимости. В принципе положительно ответивший на первые 3-4 вопроса кандидат - уже очень хороший вариант для приёма на работу/в проектную команду. В таблице ниже попытался рассмотреть ещё несколько "типичных" случаев программистов, и по каким ответам их проще распознать. Ответы не обязательно полностью должны совпасть с тем что указано. На указанные вопросы должны быть положительные ответы - точно. Может быть ещё 1 или 2 положительных ответа. Особое внимание стоит обратить только на вопросы 7 и 8. Человек ответивший положительно только на них как правило не тот кто вам нужен.
Ответы |
Комментарий |
Все плюсы |
Денег платить придётся не мало. Кандидат конечно этого стоит, но столько ли у вас задач, чтобы использовать потенциал? Посадить такого программиста на суппорт будет явно не рентабельно |
Все минусы |
Вы готовы заняться обучением? |
Плюсы 5 и 6 |
Типичный случай бухгалтера-программиста. Не очень плохой вариант. Нужно дополнительно пообщаться на предмет технического мышления. Если хоть немного присутствует для суппорт-а бухгалтерии и финансов такой программист очень неплохо подойдёт. Для реальной разработки сложного и нового функционала – скорее нет |
Плюсы 7 и 8 |
Очень плохой случай. Вы имеет дело с типичным технарем. Как правило, эти люди очень самолюбивы, 1С считают «убогим продуктом, с которым им приходится работать». Управлять ими трудно, добиться чего-либо полезного ещё труднее. Все задачи решаются «творчески». Часто поступают «интересные» предложения вроде «перейти на Linux», написать систему самому на C++ и т.п. Без «плюсов» в 1, 2 и 3 таких людей лучше не брать. |
Плюсы 3, 5, 10 |
Собственно перед вами скорее человек который претендует на руководящую позицию чем разработчик. |
Плюсы 7, 9, 10 |
Перед вами Администартор-программист. Очень часто в мелких компаниях одному человеку приходится сочетать эти качества. Человек привык к суппорту наверно даже идеален для такового, но для использования в более серьёзных проектах скорее всего потребуется дополнительное обучение. |