Цитаты из книги «Идеальный ИТ-аналитик (Как нанять лучшего аналитика в команду)» Юрия Дубровского📚 — лучшие афоризмы, высказывания и крылатые фразы — MyBook. Страница 7
image
Примеры задач на жизненный цикл ПО, документирование Говоря о жизненном цикле ПО в прикладном плане, важно выяснить понимание последовательности этапов, их взаимосвязей, необходимости каждого из этапов, выборе состава и структуры документов, попросив кандидата перечислить и описать требуемое для конкретных кейсов из проектов разработки программного обеспечения. Вот несколько вариантов вводных, для которых далее будут заданы вопросы: 1. Вы разрабатываете простую программу для извлечения квадратного корня (или иной простой математической операции); 2. Вы разрабатываете сайт компании для размещения в сети Интернет;
19 марта 2020

Поделиться

Примеры задач – продолжение работы с требованиями Вопросы вида «в продолжение предыдущей задачи сформулируйте и отобразите в удобной вам нотации или просто схемой процесс использования согласно ранее сформулированном требованиям» для тех же: – карандаша, ластика, шариковой ручки, листа бумаги; – ложки, вилки, чашки; – стула, табуретки, стола. Следующим вопросом может быть «постройте для тех же требований блок-схему или изложите в иной удобной форме алгоритм выполнения одной из операций (можно добавить, что с учетом обработки исключений, или просто ожидать, что они будут учтены)». Для требований к программам можно также попросить: – сформулируйте и отобразите в удобной для Вас нотации или просто схемой процесс использования программы согласно ранее сформулированном требованиям; – постройте блок-схему или изложите в иной удобной форме алгоритм выполнения программы (можно добавить, что с учетом обработки исключений, или просто ожидать, что они будут учтены).
19 марта 2020

Поделиться

Примеры задач на процессы, алгоритмы Формализованное описание бизнес-процессов и алгоритмов является одной из ключевых компетенций аналитика. По большому счету, это и есть «перевод» бизнес-задачи на язык ИТ. Естественно, этому предшествует понимание и корректное формулирование требований, но, когда это сделано, требуется переложить на язык процессов и алгоритмов решение, обеспечивающее исполнение требований. Этому и посвящен данный блок. Задачи могут как целевым образом формулироваться для данного блока, так и стать продолжением работы с требованиями. Что выбрать, отдельные задачи или продолжение работы с требованиями? Я руководствуюсь следующим подходом. Подход при выборе продолжения работы с требованиями или новые задачи Если работа по требованиям прошла успешно и быстро, найден общий контекст разговора кандидата и нанимателя, развернулась продуктивная дискуссия по каким-то аспектам задачи, продолжение разговора в том же контексте вполне разумно. Стоит лишь помнить, что в эпоху Интернета может случиться, что кандидат просто заранее подготовил решение данной задачи, так уж совпало-повезло, поэтому не стоит держаться какого-то известного шаблона полностью, а вносить вариативность в разговор. Кроме того, если возникло опасение, что перед нанимателем кандидат демонстрирует заранее отрепетированный сценарий, лучше перейти к другому контексту, поскольку заготовки не совсем то, что требуется. Если выбранная для работы с требованиями задача пошла тяжело, предмет задачи оказался по каким-то причинам неудачен для кандидата, то есть возникло некоторое напряжение, выбор продолжать или сменить тему делается исходя из того, что хочется увидеть дальше. Если, прежде всего, интересно, как будет работать кандидат в условиях сложной и «неудобной» для него задачи (что случается на проектах), разговор стоит продолжить в том же контексте. Если же ход собеседования приобретает явно демотивирующий нервный характер, имеет смысл сменить контекст, чтобы разрядить обстановку, уменьшить уровень стресса и за ним увидеть реальные компетенции кандидата. Сменить контекст задачи имеет смысл и тогда, когда видно, что выбранная для требований задача по предмету содержит много «белых пятен» для кандидата, ведь нам нужно увидеть компетенции сбора требований и формализации, а не знания предметной области – ими займемся отдельно позже.
19 марта 2020

Поделиться

Тест 3 – ввести число 0, в результате сообщение «нельзя вводить 0». (Н) – А почему ввели 1.5, так можно?» (К) – Да, никаких ограничений на ввод дробных значений требованиями не накладывается. (Н) – Хорошо. Достаточно ли проработаны нештатные ситуации и исключения? (К) – Полагаю, да. (Н) – Хорошо, разберите, пожалуйста, гарантийный запрос, в котором заказчик указывает, что программа неверно работает при вводе значения 1F (31 в шестнадцатеричном представлении). Происходит аварийное завершение программы, а ожидается 0,32. (К) – В данном случае число содержит нецифровые символы, «F», но заказчик, вероятно, полагает, что программа должна распознать числа в любом представлении. В данном случае нет явного ограничения, что число десятичное, хотя это подразумевалось реализацией. Нужно было добавить в требования информацию о том, что числа десятичные, и указать диапазоны, чтобы избежать ошибок переполнения типов. Например, указать: 4. Вводимое число должно быть десятичным, с разделителем – точкой, диапазон 0 – 1E38, при отклонении введенного числа или результата деления от этого диапазона сообщать «Переполнение типа». (Н) – А отрицательные числа могут вводиться? (К) – При данном ограничении – не могут, будет «Переполнение типа», Вы согласны с таким ограничением? (Н) – Да, хорошо, пусть будет так. Далее можно поговорить о том, как внести требование в спецификацию, какую тактику переговоров предлагает кандидат. Можно указать, что заказчик хочет вводить не только десятичные, но и шестнадцатеричные числа, как построить требования и алгоритм, то есть можно перейти к последующим блокам собеседования.
19 марта 2020

Поделиться

Примерный сценарий проведения собеседования с решением задачи Приведем примерный сценарий проведения блока собеседования, посвящённого решению задачи, в виде диалога Н – наниматель, К – кандидат. (Н) – Составьте, пожалуйста 5-7 основных функциональных требований к программе, которая выводит результат деления 10 на введенное число. (К) – А как выводить результат, если нацело деление невозможно, например, для числа 3? (Н) – Выводите десятичной дробью с округлением до сотых. (К) – Хорошо, вот мои требования: 1. Программа должна обеспечивать ввод числа пользователем, число не должно быть равным 0. 2. Программа должна выполнять деление 10 на введенное число и выводить результат с округлением до сотых. 3. В случае ввода числа 0 программа должна сообщать о недопустимости ввода нуля и прекратить работу, не выполняя деления. (Н) – Хорошо, а как будут проверяться эти требования? (К) – В ходе приемочного тестирования. (Н) – Приведите, пожалуйста, примеры тестовых кейсов, чтобы проверить выполнение этих требований. (К) – Следующие тестовые кейсы: Тест 1 – ввести число 5, в результате 2 – нацело делится верно; Тест 2.1 – ввести число 3, в результате 3,33 – округление до сотых верно; Тест 2.2 – ввести число 1.5, в результате 6,67 – округление до сотых верно;
19 марта 2020

Поделиться

Примеры задач на формулирование требований к предмету: – Сформулируйте основные функциональные требования к карандашу, ластику, шариковой ручке, листу бумаги. – Сформулируйте основные функциональные требования к ложке, вилке, чашке. – Сформулируйте основные функциональные требования к стулу, табуретке, столу. Суть этих задач в том, что предмет прост и известен, но, в зависимости от задуманного нанимателем функционального назначения предмета (не обязательно основного) требования будут существенно различными. Задача кандидата корректно выстроить коммуникацию (как и в реальных условиях), охватить требованиями именно то функциональное назначение, которое задумал наниматель (например, в отношении карандаша это может быть удержание формы прически, а совсем не рисование), и продемонстрировать навыки устного и письменного формирования корректных требований. Очевидно, перечень подобных предметов может быть произвольно расширен. Отдельным классом являются задачи на создание программ, выполняющих простые математические действия, например, такие: – Сформулируйте основные функциональные требования к программе, возвращающей значение квадратного корня из введенного числа. – Сформулируйте основные функциональные требования к программе, возвращающей результат деления 1 на введенное число. – Сформулируйте основные функциональные требования к программе, возвращающей результат деления одного введенного числа на другое введенное число. Такие задачи более комплексные, содержат в себе возможности для работы с исключительными ситуациями, что детально рассмотрим далее. Задачи на работу с исключительными ситуациями Задачи на работу с исключительными ситуациями сильно перекликаются с задачами на формирование требований, в то же время акцентируя внимание не на позитивных сценариях бизнес-кейса, а на возможных негативных сценариях и возникающих исключениях. Очевидно, что аналитик должен уметь предвидеть и корректно описывать такие сценарии. В качестве объекта могут быть те же самые простые объекты, например, простые программа, выполняющая математические операции. Необходимо сформулировать требования, касающиеся ограничений и обработки исключений, например, таких: – Ограничений по диапазонам исходных чисел и результатов; – Исключений, обусловленных ограничениями на операцию (деления на ноль и иные математические функции, имеющие ограничения по области определения аргумента – квадратный корень и т.п.) и их обработке; – Ограничений числового ввода и обработки возникающих исключений при нечисловом вводе. Примеры с бытовыми предметами менее показательны, но тоже могут быть использованы, например, ложка не зачерпывает, потому что перевернута вверх дном.
19 марта 2020

Поделиться

Примеры задач на формировании требований В этом блоки выясняются навыки выявления, устного и письменного формулирования требований. Разделим знание предмета и навыки выявления и формализации требований. Для этого не станем углубляться в предметную область (это мы сделаем позже), а в качестве объекта выберем что-то достаточно простое и доступное, чтобы устранить лишнюю сложность и трудоемкость на решение. Цель в проверке навыков за максимально короткое время, обычно 15-20 минут достаточно. Суть задачи сводится к тому, что необходимо сформулировать требования, обычно функциональные, но можно и нефункциональные. Можно ограничить количество 5-7 требованиями, если выбранный объект все же достаточно сложен. Разделим два аспекта квалификации аналитика – формулирование требований, как таковое, и частный случай требований, описывающих исключения и их обработку. Это сделано для того, чтобы более детально сосредоточиться сначала на позитивных, затем на негативных сценариях рассматриваемого бизнес-кейса. Впрочем, ничто не мешает рассматривать оба блока одновременно – такой комплексный подход заметно экономит время на интервью, но может быть труден для начинающих специалистов). Задачи на формулирование требований, коммуникацию, уточнение и работу с неопределенностью
19 марта 2020

Поделиться

Примеры вопросов о базовых понятиях информационных технологий 1. Состав программной среды исполнения веб-приложения на рабочей станции пользователя. Методы взаимодействия с ресурсами локальной рабочей станции из веб-приложения. 2. Электронная подпись, что это такое, как реализуется, какие программные средства предлагаются на рынке для реализации электронной подписи? Был ли проектный опыт реализации электронной подписи? Расскажите. 3. Средства идентификации и аутентификации пользователей в системе. Расскажите о средствах, которые Вам известны, о проектном опыте их использования. Однофакторная и двухфакторная идентификация – что это, как используется? 4. Симметричное и ассиметричное шифрование. В чем отличие и для чего используется? 5. Технологии block-chain – основные принципы, платформы, области применения, ограничения. Был ли проектный опыт использования? Расскажите. 6. Операционные системы и прикладное программное обеспечение – браузеры, офисное программное обеспечение, инструменты моделирования бизнес-процессов, базы данных, сервера приложений, системы управления версиями, баг-трекеры, языки программирования и средства разработки, др. С чем приходилось работать? В какой мере владеете, что предпочитаете использовать, почему? 7. Какие основные протоколы взаимодействия компьютеров в корпоративной сети? Что такое IP-адрес и какова его структура? Понятие доменного имени. 8. Понятие безопасности ИС. Какие виды угроз информационным системам существуют? Что такое модель нарушителя? Какие используются методы и средства защиты информации? Расскажите о Вашем практическом опыте обеспечения информационной безопасности в проекте. 9. Что такое компьютерный вирус, классификация компьютерных вирусов? Какие основные меры по защите компьютеров от вирусов применяются в информационных системах? Использовали ли Вы защиту от вирусов в своих проектах, где и как? Раздел получился достаточно разноплановый – в него попали и вопросы информационной безопасности, и основы сетей, и основы ИТ. Приводим его для того, чтобы можно было выбрать и сосредоточиться на тех моментах, которые актуальны для Вашего проекта и команды. Возможно, это использование электронной подписи, или использование локальных сканеров и принтеров из веб-приложения – выбор за Вами.
19 марта 2020

Поделиться

Примеры вопросов об интеграции 1. Что такое интеграция информационных систем и для чего она нужна? 2. В чем отличие миграции данных от интеграции? 3. Чем отличается однонаправленная и двунаправленная интеграция? В чем особенности последней? 4. Что такое очередь сообщений и как она функционирует? 5. Что такое корпоративная шина данных и как выполняется интеграция с ее применением? 6. Как обычно передают файлы большого объема, если для взаимодействия используется корпоративная шина данных? 7. Что такое и для чего используется API? 8. Синхронное и асинхронное взаимодействие. Что это такое, преимущества, недостатки, области применения? 9. Что такое интеграционный адаптер и для чего он применяется? 10. Что такое контракт сервиса и для чего он применяется? 11. Как на интеграцию влияет качество данных в интегрируемых системах, какие риски несет недостаточное качество данных и какие меры обычно применяются для их снижения? Был ли у Вас опыт работы с данными при интеграции, с какими проблемами Вы сталкивались и как их решали? Почему так? 12. Что такое системы управления мастер-данными (MDM), в чем смысл их использования? Как решаются те же проблемы при интеграции без использования MDM-решений? Был ли у Вас практический опыт подобных решений? Расскажите о нем. 13. Расскажите о проблеме дедубликации данных при интеграции? Был ли у Вас опыт практического решения этой проблемы? Расскажите. 14. Что такое транзакция? В чем смысл транзакционного изменения данных при интеграции? 15. Как строится интеграция через базу данных? Преимущества и недостатки этого способа? 16. Как строится интеграция через обмен файлами? Преимущества и недостатки этого способа? 17. Как строится интеграция через вызов сервиса? Преимущества и недостатки этого способа? 18. Что такое обратный вызов, как и для чего он используется? 19. Что такое гарантированная доставка и какими механизмами ее можно обеспечить? 20. Расскажите об интеграционном проекте, в котором участвовали. Какие средства интеграции использовали и почему? С какими проблемами столкнулись и как их решили? Говоря об интеграции с опытным специалистом, интересно обсудить его опыт, принятые решения и их последствия, ознакомиться с анализом результатов самим специалистом, а также обсудить варианты, что было бы при других решениях. Многообразие подходов и существенная привязка к ограничениям конкретного проекта делает обсуждение интеграции в целом не очень информативным. Для разговора со специалистом, не имеющим достаточного практического опыта, можно задать вопросы более теоретического плана, чтобы понять уровень его готовности к решению таких задач в будущем.
19 марта 2020

Поделиться

Примеры вопросов об архитектуре автоматизированных систем 1. Что такое клиент-серверная архитектура, трехуровневая архитектура, тонкий и толстый клиент, микросервисная архитектура? Достоинства и недостатки перечисленных подходов. 2. В чем особенность составления требований и проектирования мобильных приложений, веб-приложений? 3. SOAP и REST, что это такое, чем они отличаются, в чем их достоинства и недостатки? 4. Расскажите о типах архитектуры приложений – нативных
19 марта 2020

Поделиться