Серия «Работа системного аналитика»

12

Отзыв. Книга. "Паттерны проектирования API"

Я потратил на неё 1851₽ и 20 часов, чтобы вам не пришлось.

Отзыв. Книга. "Паттерны проектирования API" Программирование, Обучение, IT, Книги, Аналитика, API

Я аналитик-самоучка с опытом ±3 года. Поэтому, иногда, подогреваемый синдромом самозванца, нет-нет да и посматриваю каких-то блогеров вкатывающих в аналитику.

От них и узнал об этой книге. Реально, каждый друг с другом не пересекается, но все в какой-то момент причисляли книгу к категории “ЭТО БАЗА!”.

Соблазнился на тайные магические знания сразу, но к прочтению приступил только спустя 1,5 года.

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

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

Это связано с тем что в больших корпоратах за вас уже давно подумали и установили свои золотые стандарты разработки\архитектуры. Попытаться изменить что-то конечно можно, но сложно, т.к. изменение придётся обосновать как-то объёмнее фразы “Нууу, в той книжке написано что вот так правильно”.

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

А вот в средней, в которой я нахожусь сейчас, мне удалось протолкнуть изменение касательно проектирования API, в т.ч. оперируя данной книжкой. Поскольку занимаемся разработкой продукта с нуля, то это даже существенно повлияло на скорость дальнейшей разработки.

Большую часть книги я прочитал из соображения “Блин! Ну не зря же я её купил!”. И даже при таком раскладе время было потрачено не зря, т.к.:

  • Часто ловил себя на мысли “О! Оказывается вон оно как работает!)”;

  • В книге много UML диаграмм - некоторые моменты начал применять в своих задачах, т.к. увидел что можно улучшить;

  • Подробнее ознакомился с подходами к версионированию, пагинации и мягкому удалению. Что кстати, т.к. скоро по ним предстоят задачи;

Из минусов могу отметить:

  • Много воды;

  • Лишние или повторяющиеся из раза в раз примеры;

А если моё мнение не повлияло на ваше желание получения каких-то тайных знаний, то рекомендую читать книгу также как “Разработка требований к программному обеспечению” - только главу по теме, с которой вы впервые столкнулись прямо сейчас. Задачу за вас она не сделает, но подскажет куда смотреть при выполнении.

Показать полностью
8

Аналитику надо знать SQL?

Дисклеймер

Эта статья является максимально субъективной, т.к. опирается на мой личный рабочий опыт аналитиком в 2-х компаниях и опросе знакомых из соседних подразделений\других компаний.
Если ваш опыт отличается от моего, то было бы здорово если бы вы поделились им в комментариях и т.д.

Для ЛЛ

Надо для своего удобства, а не из реальной необходимости.
Можно и без него обойтись.

Нужен или нет?

В вакансиях на которых я работал и собеседовался были такие требования как “Приветствуется знакомство с JavaScript, SQL, Postman”, “Знание SQL” и т.д.

Я, не имея широкого опыта, решил что “Надо — значит, надо!”.

Пошел прочитал книжку “SQL за 10 минут”, пару статей на хабре, прошел по половинке от 3-х бесплатных курсов (т.к. было однообразно) и, для закрепления, порешал пару десятков заданий.

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

Так как я не люблю учиться ради учёты, то с первого рабочего дня ждал когда же мне его нужно будет применять, но, к сожалению, время когда прям НАДО так и не приходило. То есть необходимость работы с базами данных была каждый день, но большая часть вопросов закрывалась тыканьем мышкой по админке DBeaver/PostgreSQL/DWH.

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

Тем не менее, если знать SQL, то работать становится намного проще, т.к. можно написать небольшой запрос состоящий из SELECT, JOIN и WHERE и уберечь себя от прыганья туда-сюда по 3-4 табличкам с огромным количеством полей. Всё ещё жду когда потребуется где-то применить HAVING который постоянно спрашивают на собеседованиях, но момент всё никак не наступит. Возможно просто не там работаю или опыт маленький.

Спасибо за внимание, надеюсь джунам и вкатунам будет полезно. Выводы делайте сами.

Показать полностью
4

Чем занимается системный аналитик 2

Прочитав комментарии к 1-ой части данной писанины я понял что как-то слишком просто написал. Чтож, в этот раз задайте накинем деталей)

Дано

Вы джун (Junior). Только-только успешно прошли испытательный срок.
Сейчас вы отвечаете за автоматизированный процесс по которому «бегают» заявки на согласование строительства сараев/ангаров/загонов и прочих аграрных сооружений.
Вам доверили боевую задачу.

Пришла задача

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

Чем занимается системный аналитик 2 Системный анализ, IT, Системный аналитик, Опыт работы, Тестирование, Длиннопост

Шаг выглядит примерно так. На нём строитель сверяет сколько планировал потратить денег на строение и сколько потратил фактически

Решение

1. Анализ и сбор требований

  • Весь испытательный срок нам рассказывали о том как работает система. В связи с этим мы понимаем что шаг в системе не один и все они сильно влияют друг на друга. Смотрим BPMN-схему, базу данных с остальными документами и понимаем что догадка верна – за шагом 4, в зависимости от условий, может быть от 2 до 5 дополнительных шагов, на некоторых из которых могут быть аналогичные файлы.

  • Далее формируем список возникших вопросов: всегда просить файл? Что с ним дальше делать? Все сотрудники знают как этот файл должен выглядеть? А если кто-то не знает? И т.д. всё что приходит в голову.

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

2. Проектирование

Чем занимается системный аналитик 2 Системный анализ, IT, Системный аналитик, Опыт работы, Тестирование, Длиннопост

В голове выглядит примерно так, а на самом деле...

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

  • Но так как, пока что, в наши кривые руки никто доступа к редактированию базы не дал, то дополнительно понимаем что надо просить об этом кого-то другого. В итоге пишем бадди (наставнику\напарнику) чтобы обсудить наброски доработки и уточнить кого просить для добавления записей в базу.

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

Разработка

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

Тестирование

Чем занимается системный аналитик 2 Системный анализ, IT, Системный аналитик, Опыт работы, Тестирование, Длиннопост

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

Тут ещё проще – идём на шаг №4 и начинаем тыкаться-мыкаться по задуманному сценарию чтобы получить тот результат который заказывали в задаче. Иииииии получаем только половинку того о чём просили – файлик система как бы просит, но как бы и без него пускает дальше... Непорядок!

Разработка №2

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

Тестирование №2

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

Чем занимается системный аналитик 2 Системный анализ, IT, Системный аналитик, Опыт работы, Тестирование, Длиннопост

Это тоже реально выглядит примерно так

Приёмка заказчиком

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

Чем занимается системный аналитик 2 Системный анализ, IT, Системный аналитик, Опыт работы, Тестирование, Длиннопост

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

Возможные ошибки

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

  2. Если побежал ставить задачу на программиста НЕ поговорив с бадди, то потратите плюс минус 4 часа (с момента взятия задачи программистом, а это сильно не сразу может быть). В этом случае вы также узнаете что есть специальный инструмент, но сначала программист будет долго-долго чесать голову чтобы понять где поправить и почему он это ГДЕ не может найти.

  3. Если не провести повторное тестирование, то можно, в будущем, получить ещё пачку проблем. Если думаете что и в первый раз заметили все возможные ошибки, то когда нибудь, немного на этом споткнувшись, передумаете). Даже если это просто мелкая правка, проверить всё равно надо, т.к. даже 1-2 символа в программировании могут пустить программу не по тому пути.

Документация

И в этот раз её не будет, т.к. она есть в коде, а оттуда в базе понятно что откуда растёт)

Показать полностью 5
55

Чем занимается системный аналитик1

Небольшая предыстория.

Недавно понял что мало кто из окружающих понимает чем я (системный аналитик) реально занимаюсь на работе. В интернете только копированные друг с друга тестовые интервью из которых ничего непонятно. Вот для людей НЕ из IT и пишу. Может кому-то полезно будет.

Словарик

  • Разработчик - программист. Человек который делает программы\пишет код\чинит стиральные машины и холодильники.

  • Заказчик - может быть один человек, целый отдел или компания. Просит вас что-то сделать и платит вам за это деньги.

  • Outlook - почта, типа "Яндекс.Почта" или "GMail"

  • Jira - список задачек которые тебе надо сделать. Например "Todoist" или "TickTick"

Работа

Итак, если сильно упростить, то основная работа аналитика это:

  • Экономить время разработчика, собирая максимальную информацию о доработке, до того как он начнёт работать.

  • Держать заказчика в курсе происходящего в системе (что делаем, где делаем, зачем делаем, когда сделаем, что получим от того что сделаем)

Далее конкретнее на одном простом примере из которого состоит 60% рабочего времени.

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

Пример

Дано: Ты аналитик отвечающий за страницу сайта на картинке.
Видишь что в Outlook (почта) пришло письмо с информацией о том что в Jira (задачник) на тебя назначили новую задачу PRZ-32718 (просто номер).
Всё что в ней написано "Нужно добавить баннер на страницу сайта. Как можно быстрее"

Чем занимается системный аналитик IT, Системный анализ, Аналитика, Длиннопост

Картинка страницы сайта за которую ты отвечаешь.

Решение: Первое что мы понимаем - это то что из описания задачи мы ничего не понимаем. Первым делом нам нужно понять будем ли мы это вообще делать (возможно не будем). В связи с этим мы делаем следующее:

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

  2. Назначаем встречу в календарь на договоренное время.

  3. Подключаемся на встречу и заваливаем заказчика кучей интересующих нас вопросов:

  • Зачем добавлять баннер?

  • Как он должен выглядеть? (цвет, размер, расположение, эффекты, анимация)

  • Какое должно быть содержание баннера?

  • Где взять содержание баннера?

  • Когда баннер должен появиться на странице?

  • Сколько баннер будет там висеть?

  • При каких условиях баннера должен появляться?

  • Что можно сделать с баннером (посетителю\администратору сайта) ?

  • К кому посылать договариваться, если он кому-то будет мешать?

  • Есть ли какие-то дополнительные условия, без которых баннер не имеет смысла?

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

Разработка\доработка

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

  1. Ставите ему в Jira максимально конкретную задачу.
    Примерный текст:
    "- На странице https://ru.saitикsaitикsaitик.org нужно добавить всплывающее окно.
    - Размеры, содержание и оформление окна находится тут (ссылка картинку с описанием)
    - Логика появления: окно должно появляться через 10 секунд после полной загрузки страницы сайта.
    - При появлении окна должен воспроизводиться звуковой файл (ссылка на звуковой эффект)
    - Кнопка закрытия окна (красный крестик) появляется через 15 секунд после полного отображения окна на экране клиента.
    - При нажатии на красный крестик окно исчезает
    - При нажатии на любую другую часть данного окна происходит переход клиента по ссылке https://sobaka-lalalakщ.ru
    - Окно должно быть добавлено на сайт до 15.12.24
    - После 10.01.25 окно должно перестать появляться

  2. Идём пить чай, ждём либо вопросов от разработчика, либо сообщение о готовности доработки.

  3. Проверяем сами работает ли так как надо или просим об этом тестировщика (специальный человек для проверок). Если есть "косяки", то пишем разработчику что и где нужно поправить.

  4. Если "косяков" нет, то пишем заказчику и просим лично убедиться что всё работает так как он хотел в своих влажных фантазиях.

  5. Далее, либо получаем сообщение "Спасибо, всё работает", либо получаем список "косяков" или дополнительных "хотелок" которые возникли после созвона (такое очень часто бывает). Всё это нужно передать разработчику.

  6. Если получили "Спасибо, всё работает", то закрываем задачу и реально идём пить чай.
    В противном случае повторяем действия с 2 по 5 до получения "Спасибо, всё работает". Иногда, если заказчик добавляет и добавляет "хотелки", то надо поговорить и поставить точку. А всё что после неё договориться унести в следующую задачу.

Резюме

Вот так плюс минус можно описать 60% рабочего времени системного аналитика.

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

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

Показать полностью 1
Отличная работа, все прочитано!