Здравствуйте, Кирилл Лебедев, Вы писали:
КЛ>Здравствуйте, -_*, Вы писали:
КЛ>В сообщении задача уточнена. Ключевая задача — наим нового архитектора на рефакторинг. Сроки проекта можно подвинуть. Какие вопросы будете задавать? По каким критериям принимать решение?
Тогда надо искать хорошего тимлида а не архитектора.
Необходимо:
1. повысить прозрачность системы (архитектура).
2. повысить гибкость системы (архитектура).
3. поставить контроль качества.
4. начать интенсивное обучение команды (управление).
5. Уточнять состав команды (управление).
6. Усилить прозрачность процессов для разработчиков (управление).
и т.п.
Потому что если не выяснить и убрать причину по которой проект завален, проект не починить.
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[12]: Пятничная задача: собеседование архитектора
Здравствуйте, genre, Вы писали:
G>>>Я применю метод в народе известный как "экспертная оценка" G>-_*>Я не знаю такого метода. Поподробнее раскажи.
G>Это значит, что ты всех выслушиваешь и потом выбираешь того, кто тебе больше понравился.
Это тоже самое что и выбрать любого. Без конкретных критериев все сведется к интуитивным ощущениям. далеко не факт, что интуиция у тебя прокачана именно на отбор таких специалистов. кроме того, какие вопросы задавать ?
Материал из Википедии — свободной энциклопедии, -_*
Если конкретно по вопросам то первое что приходит в голову.
1. Предложить разбить на компоненты и связи обределенный функционал , не большой. Например игра шахматы, сервис взаимодействующий с GoogMap для отрисовки карт, и т.п. как можно ближе к прикладной области.
2. В идеале кандидат спец в необходимой предметной области. Без этого и достаточного опыта, никакой хорошей архитектуры не будет. Напимер для сети и асинхронки , обязаны быть специфические знания и умения.
3. Плавно поговорить о критериях как оценить то или иное решение, предложите оценить несколько разных решений. Как минимум он их должен "чувствовать".
4. Если фантазия не работает , предложите решить имеющиеся проблемы.
Плюс общая проверка на адекватность. Должно хватить.
Здравствуйте, Кирилл Лебедев, Вы писали:
КЛ>Коллеги,
Вот хоть убей не пойму чем может помочь новый архитектор в конце проекта, когда своя архитектура уже устаканилась, а на переделку времени не осталось.
Но хрен с ним, будем считать ситуацию вымышленой. Чисто разминка для ума.
Нужен архитектор с опытом. И опыт тут важнее знаний.
Опыт нужен вот зачем: чтобы не бросился переписывать чужую систему "как правильно", а сразу смирился с тем, что большую часть системы он даже не изучит (не то что поменяет там что-то).
Я бы советовал "украсть" архитектора/двух с соседнего проекта, предложив ему 2х/3х зарплату на время "жопы" (второго в качестве экспертной помощи. Принимать решения должен один). Человек ведь провереный, а свои деньги он отработает.
Изначально мэнеджеру нужно взять и составить список задач которые кровь из носа нужно сделать к релизу. Вместе с толковым програмером из команды выделить модули в которые требуется вносить большое кол-во изменений (если у вас нет модулей, то и архитектора у вас не было). На модули где правки можно сделать не меняя дазийн (пусть даже говнокод получится) забиваем -- архитектор там не нужен.
Каким-то образом получаем жизайн этих модулей (UML диаграмм, карандашных набросков или еще чего).
Объявление о найме: сразу говорите, что нужен "кризис архитектор" для преодаления "жопы". На срок 1-2 месяца. Зарплата 2х/3х. После успешного преодаления можно остаться на проекте/в конторе на зарплате 1х. И пусть соискатели будут готовы к тому, что на собеседовании их выепут и высущат.
Вот теперь мы готовы к собеседовнию.
Отвлеченные знания вам нах не нужны, поэтому берете дизайн ваших модуей (ну или чуть измененные если там у вас совсем секретно все), набор тербований (тоже можно изменить) и ставите задачу в таком ключе:
есть система (вот), нужно наиболее быстро добавть в нее новые фичи (эту, эту и вот эту). Что можете предложить в качестве решения?
На собеседовании с нашей стороны должен быть архитектор или хороший програмер. В общем эксперт, который сможет сказать дело предлагает кандидат или нет.
Ясно, что чем дальше мы уйдет от реальных дизайна и требований, тем меньше толку от решения, но хоть поймете умеет ли человек думать.
В общем раз времени мало, а сделать нужно много, то это больше к менеджеру вопрос. Даже самый крутой архитектор не сможет помочь, если у менеджера не будет хватать ресурсов для реализации его изменений.
Ну и дополнительного тестера я бы в любом случае взял.
СУВ, Aikin
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Re[13]: Пятничная задача: собеседование архитектора
-_*>Это тоже самое что и выбрать любого. Без конкретных критериев все сведется к интуитивным ощущениям.
Угу.
-_*>далеко не факт, что интуиция у тебя прокачана именно на отбор таких специалистов. кроме того, какие вопросы задавать ?
Я так думаю, что если ты сам не архитектор, то даже список вопросов не поможет тебе оценить качество собеседуемого, потому что верных ответов на каждый вопрос может быть не один. Тестом даже джуниора не отобрать, а уж архитектора тем более.
Мой же вопрос позволяет при отсутствии знаний о предмете разговора приблизить интуитивный выбор к реальности.
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Re[12]: Пятничная задача: собеседование архитектора
Здравствуйте, genre, Вы писали:
G>Это значит, что ты всех выслушиваешь и потом выбираешь того, кто тебе больше понравился. Экспертная оценка предполагает оценку на основе группового мнения...
Завидую людям, которые могут себе позволить никуда не спешить.
Здравствуйте, Кирилл Лебедев, Вы писали:
КЛ>Итак, какие будут предложения?
В данной ситуации не кандидату вопросы задавать нужно, а отвечать на его вопросы. Предоставить ему материалы по проекту: схему БД, структуру модулей, дать на код посмотреть и т.п., объяснить какие именно проблемы в проекте. А дальше отвечать на его вопросы и слушать его предложения.
Если нам не помогут, то мы тоже никого не пощадим.
По-моему тривиальная задача. Кандидату дается напосмотреть текущий код и список того, что нужно с ним сделать. Показывают команду. После чего он либо соглашается селать это, либо нет. Есть вариант, что кандидат солжет, чтобы плучить место либо переоценит свои силы. Для отсечения таких кандидатов необходимо посмореть портфоли согласившихся и позвонить по предыдущим местам работы. Человека с наиболее внушитеьным портфолио и хорошими отзывами нанимаем, и с ысокой стпенью вероятности он все делает. Увы, денег это будет стоить прилично .
Re[6]: Пятничная задача: собеседование архитектора
Здравствуйте, Кирилл Лебедев, Вы писали:
КЛ>Здравствуйте, gandjustas, Вы писали:
G>>Ну раз ключевая задача — рефакторинг, то и спрашивать про рефакторинг, метрики кода, паттерны и прочие плюшки. КЛ>Предыдущий архитектор, который исчез, тоже красиво говорил про метрики кода, паттерны и рефакторинг. Однако это не спасло проект. Нужны критерии, по которым можно отобрать способного архитектора.
Мне казалось, это уровень тех.лида, а не архитектора.
Здравствуйте, genre, Вы писали:
G>Здравствуйте, Кирилл Лебедев, Вы писали:
КЛ>>P.S.: И, пожалуйста, давайте уже завяжем с офф-топиком: квалификация менеджера, предыдущего архитектора, бардак в команде — всё это к обсуждаемой задаче не относится. Предположим, руководство все это осознало и решило изменить ситуацию. Нужно найти вменяемого архитектора, на которого не будут "вешать всех собак".
G>Ну и отлично. Так и давай на собеседовании смоделируем похожую ситуацию и попросим предложить пути выхода из кризиса. G>Людей предлагающих нечто близкое к тому, что произошло в реальности отсеиваем сразу, ответы остальных анализируем и выбираем наиболее подходящий.
Согласен. Можно также предупредить (в конце?) что ситуация реальная. Возможно, что кандидату самому будет не интересно в такое влезать, или просто почувствует, что опыта не хватит. А может он скажет что-то вроде "Ну ok. Я уже бывал в подобной ситуации, сделал то-то и то-то".
Здравствуйте, Дельгядо Филипп, Вы писали:
ДФ>В-третьих, хороший архитектор на такую задачу не пойдет (так как работа явно временная и не слишком интересная, лучше уж поискать что-нибудь более долговременное и престижное).
Ну почему же? Я бы пошел. И то что это временная работа, да еще и вызов моим способностям этому благоприятствует. Вот оплату бы я поросил бы высокую. Но это на несколько месяцев. Уверен буджет проекта потянет.
За свою карьеру я вытащил 2 проекта из похожей жопы.
Сроки, конечно, были помягче, да и ситуация другая -- нам в котору пришел проект в полурабочем состоянии после других "индусов-аутсорсеров". Ничего, запустили, причесали, люди пользуются. И знаешь, мне было интересно его реанимировать. Вот только после успешной реанимации мне стало откровенно скучно
Вот так вот.
СУВ, Aikin
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Re[8]: Пятничная задача: собеседование архитектора
Здравствуйте, Кирилл Лебедев, Вы писали:
КЛ>Это всё понятно, но, к сожалению, не решает задачу. Предположим, все толковые люди заняты — у них контракты на 50 лет. Чтобы не развивать далее тему знакомых, сразу скажу, что знакомые знакомых и знакомые знакомых знакомых — тоже заняты. Нужно нанять человека с улицы.
Вам не нужен специалист на 50 лет. Вам нужен человек, который вытянет вас за 1-2 месяца. Уверен, что большинство занятых людей найдут это время. Да и начальство их отпустит. Меня бы отпустило. А не отпустят, то отпуск за свой счет никто не отменял.
СУВ, Aikin
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Re[6]: Пятничная задача: собеседование архитектора
Здравствуйте, Кирилл Лебедев, Вы писали:
КЛ>Нужны критерии, по которым можно отобрать способного архитектора.
Вам не нужен способный архитектор. Архитектура не создается в авральном порядке. Способному архитектору может понадобиться месяц толко на то чтобы разобраться в пректе. Хотя разобравшись он (еще за один месяц) предложит такое, что решит все проблемы проекта.
Вам нужен реалист, который понимает, что ту архитектуру, что он напишет за эти неделю-две (ее ведь еще реализовать нужно) в будущем придется выкинуть на помойку (в ином случае этого будущего для проекта не наступит).
Критерии? Ну давай попробум (в порядке возрастания практики):
1) Реалист с хорошим опытом за плечами. ИМО, очень важны неуспешные проекты и поднятие из руин чужих проектов. Как известно, победы не учат, в отличии от неудач.
2) Пракитующий кодер. Может не только придумать, но и реализовать свою идею (чем он и будет заниматься большинство времени).
3) Никакого булщита по поводу метрик, качества кода, 100% покрытия тестами и привержености паттернов (за каждое слово произнесенное в этом ключе я бы давал штрафные баллы).
4) Понимает, что менять код нужно только там, где ожидается. Тем более понимает, что архитектурные изменения/правки в дизайне -- самые дорогие.
5) Не ищет "идеального" решения. Может остановится на приемлемом решении, а не продолжать поиски "идеала".
Можно еще что-то написать, но... ты ведь опять скажешь, что это не то
СУВ, Aikin
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Re[7]: Пятничная задача: собеседование архитектора
Здравствуйте, Aikin, Вы писали:
A>Критерии? Ну давай попробум (в порядке возрастания практики): A>1) Реалист с хорошим опытом за плечами. ИМО, очень важны неуспешные проекты и поднятие из руин чужих проектов. Как известно, победы не учат, в отличии от неудач. A>2) Пракитующий кодер. Может не только придумать, но и реализовать свою идею (чем он и будет заниматься большинство времени). A>3) Никакого булщита по поводу метрик, качества кода, 100% покрытия тестами и привержености паттернов (за каждое слово произнесенное в этом ключе я бы давал штрафные баллы). A>4) Понимает, что менять код нужно только там, где ожидается. Тем более понимает, что архитектурные изменения/правки в дизайне -- самые дорогие. A>5) Не ищет "идеального" решения. Может остановится на приемлемом решении, а не продолжать поиски "идеала".
Эти качества должны быть у любого кто связан с разработкой.
A>Можно еще что-то написать, но... ты ведь опять скажешь, что это не то
Писать что угодно не имеет смысла так как не определены цели.
В таком виде как тут описывается нужен кто-то, кто сделает чудо и вытащит проект из *овна. Будет это ПМ, программист, архитектор или еще кто-то неважно.
Re[8]: Пятничная задача: собеседование архитектора
Здравствуйте, gandjustas, Вы писали:
G>Эти качества должны быть у любого кто связан с разработкой.
Должны, согласен. Но у многих, судя по моему опыту, их нет. Я сам пролечу по нескольким пунктом (если дать мне волю ). А уж я 2-х/3-х летней давности...
A>>Можно еще что-то написать, но... ты ведь опять скажешь, что это не то G>Писать что угодно не имеет смысла так как не определены цели.
Ну как же. А то самое: "себя показать, на других посмотреть"?
СУВ, Aikin
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Re[4]: Пятничная задача: собеседование архитектора
Здравствуйте, minorlogic, Вы писали:
M>Тогда надо искать хорошего тимлида а не архитектора.
Возможно, действительно нужен хороший тимлидер или тимлидер и архитектор в одном лице. Нередко заказчику (особенно, если он не технарь) трудно сформулировать, кто ему нужен. Но в данной теме мы мне хотелось бы обсудить, как проверять "архитектурные" навыки кандидата.
M>Необходимо:
M>1. повысить прозрачность системы (архитектура). M>2. повысить гибкость системы (архитектура).
Это всё общие слова. Допустим, система обладает определенными недостатками — ряд функций, которые может выполнять сама, отдаёт на откуп пользователю. Эти конкретные недостатки и нужно исправить в следующей версии. А что такое "прозрачность" и "гибкость" — непонятно.
M>Потому что если не выяснить и убрать причину по которой проект завален, проект не починить.
Это всё понятно. Допустим, менеджер всё делает правильно в этом направлении. Нужно просто отобрать вменяемого архитектора — как-то проверить его квалификацию.
Здравствуйте, minorlogic, Вы писали:
M>1. Предложить разбить на компоненты и связи обределенный функционал , не большой. Например игра шахматы, сервис взаимодействующий с GoogMap для отрисовки карт, и т.п. как можно ближе к прикладной области.
Таким образом, один из критериев — архитектор должен уметь выполнять декомпозицию сложной и крупной задачи на легкие и небольшие, сложной системы — на подсистемы и взаимосвязи между ними. Однако этот критерий хорошо, когда ясно, по какому принципу проводить такую декомпозицию. Как понять, что декомпозиция проведена правильно? Какой принцип положить в её основе?
M>4. Если фантазия не работает , предложите решить имеющиеся проблемы.
Реальные задачи могут потребовать часы и дни для их решения. Не навино ли будет полагать, что кандидат в условиях стресса в течение 5 — 30 минут предложит работоспособное решение?
Благодарю за обстоятельный ответ!
A>Отвлеченные знания вам нах не нужны, поэтому берете дизайн ваших модуей (ну или чуть измененные если там у вас совсем секретно все), набор тербований (тоже можно изменить) и ставите задачу в таком ключе: A>есть система (вот), нужно наиболее быстро добавть в нее новые фичи (эту, эту и вот эту). Что можете предложить в качестве решения?
Сколько времени нужно давать на решение задачи? Вы уверены, что в условиях собеседования кандидат сможет предложить рабочее решение, особенно, если учесть, что решение некоторых задач может занимать часы или даже дни?
Следует ли кандидату дать время на обдумывание задачи и оставить его одного? Или же лучше попросить его комментировать ход решения (т.е. попросить его рассказать, что он делает по шагам)? И, таким образом, оценить подход к решению задачи?
Следует ли кандидата перебивать во время решения, как-то направлять? Или же дать ему время получить результат и оценивать уже результат, а не ход решения, если этот ход решения Вам не понятен?
Здравствуйте, IT, Вы писали:
IT>В данной ситуации не кандидату вопросы задавать нужно, а отвечать на его вопросы. Предоставить ему материалы по проекту: схему БД, структуру модулей, дать на код посмотреть и т.п., объяснить какие именно проблемы в проекте. А дальше отвечать на его вопросы и слушать его предложения.
Допустим, работодатель согласен на такой подход. Но как ему определить, что этот кандидат — именно тот, кто нужно? Что кандидату можно доверять и прислушиваться к его мнению?