16

Вопрос к программистам

Ни для кого не секрет, что сейчас IT-профессии считаются наиболее востребованными и "престижными" среди "простых" людей, овладеть одной из которой может, по большому счёту, каждый.

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

В связи с чем я прошу IT-шную аудиторию Пикабу дать мне ответ: как у Вас организован рабочий процесс?

Если попробовать по порядку:

Как и в каком виде происходит поставка задачи? Как она формулируется?

Кто эти задачи "распределяет"?

Как вообще проходит рабочий день?

Ну, то есть, к примеру: я инженер-испытатель. Начальство (или смежный цех) ставит задачу - испытать на вибрационное воздействие некий узел. Сам узел в цеху №14, технические условия (документ, в соответствии с которым проходят испытания) чаще всего есть у меня "в наличии", либо выгружаю из архива. Беру узел, закрепляю на оснастке и стенде, настраиваю и включаю нужный режим, ставлю запись (если нужно) с датчиков и жду. По итогу ставлю свою электронную "подпись" на документе, подтверждающем прохождение испытаний. На всё это уходит основной объем рабочего времени. Испытания бывают разные, узлы разные, ТУ разные, оснастка и стенды тоже, но принцип всегда один - есть определенный физический параметр, воздействие которого надо проверить.

А как у программистов? Вот пришли Вы на работу (или по удаленке, не важно), как понять, чем заниматься? Я полагаю, "программа максимум" какая-то есть, допустим, разрабатываете игру для Android. Но в каждый конкретный момент времени - что? И как распределяется ответственность, если работаете в команде? Типа "Петя у нас за базы данных, а Вася за их наполнение", но кто из них определяет, в каком виде будет база?

Или, может, что-то типа "Напиши функцию, которая принимает объект с параметрами A,B,C,D, а выдаёт в формате N, где N - это (A/B)*C - D".

В общем, извините за сумбур, расскажите что-нибудь.)

Спасибо!

Без рейтинга

Лига программистов

2.3K постов12K подписчика

Правила сообщества

- Будьте взаимовежливы, аргументируйте критику

- Приветствуются любые посты по тематике программирования

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

Вы смотрите срез комментариев. Показать все
14
Автор поста оценил этот комментарий

Как и в каком виде происходит поставка задачи? Как она формулируется?
Кто эти задачи "распределяет"?
Как вообще проходит рабочий день?

Ну, например так.

Работа ведется короткими двухнедельными отрезками - "спринтами".

Перед стартом каждого спринта проводится совещание как минимум из менеджера проекта и занятых на проекте специалистов (разрабы, архитекторы, тестировщики, аналитики, техписы).

На совещании из общей очереди задач проекта (backlog) вытаскивается очередная и оценивается в попугаях.

Условно, у нас команда в 10 разрабов. Каждый разраб за спринт может закрыть 10 попугаев, итого емкость спринта у нас 100 попугаев. Вот жирная задача, аж на 8 попугаев. Её возьмет сеньор Денис. И еще Денис возьмет вот эту на 2 попугая. Всё, емкость Дениса на этот спринт кончилась. И так далее. Причем в любой момент условный Вася может сказать - о, я уже делал похожую задачу в этом модуле/сервисе, и я ее сделаю не за 8 а за 6 попугаев. И ему отдадут эту задачу.


Собственно, задачи ведутся в таск-трекере, например Jira. Сел за задачу, перетащил ее в состояние "In progress" - все, заинтересованные лица видят над чем ты работаешь. Закончил - перетащил дальше. Не можешь закончить - тащишь в состояние "Заблокировано" и в комментах пишешь - почему, на очередном совещании озвучиваешь. Совещания от одного раза в неделю до ежедневок, обычно с утра.


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

раскрыть ветку (9)
0
Автор поста оценил этот комментарий

Большое спасибо!

Про Agile я в курсе, у нас одно время Scrum внедряли, даже книжку читал.)

А что происходит с самого начала?

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

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

раскрыть ветку (8)
7
Автор поста оценил этот комментарий

А что происходит с самого начала?
Пришёл клиент и говорит "Я хочу программу такую-то".
А вот тут немножко интересней. Клиент приходит к продажникам (сэйлзам), сэйлзы приходят ко мне.


- Слушай, тут клиент пришел, хочет программу.

- Они все хотят программы. Какие бизнес-потребности клиент хочет автоматизировать?

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


Дальше пишем поэтапный план (breakdown) для минимального прототипа, отсылаем сэйлзам, они расценивают и вместе с расценками отсылают клиенту.

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


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


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

Ну, например, на проекте не хватило возможностей стандартного nginx по обработке токенов безопасности.

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

Это на самом деле был "эпик", т.к. заняло весь спринт, и там внутри было 5 отдельных задач по 2 дня каждая.

Т.е. атомарные задачи размером с весь спринт, или полспринта - это на самом деле редкость и прзнак недодробленности, либо плохой архитектуры.

На 2 попугая было "починить неверную отдачу статуса HTTP от upstream сервиса".

раскрыть ветку (7)
0
DELETED
Автор поста оценил этот комментарий

Nginx умеет в Lua. Зачем писать свой прокси? О_о

раскрыть ветку (4)
0
Автор поста оценил этот комментарий

затем, что питон и json куда привычнее девопсам, чем экзотическая Lua, в которую умеет только платный nginx.

раскрыть ветку (3)
0
DELETED
Автор поста оценил этот комментарий

Openresty бесплатный, а Lua давно не экзотика, за пару дней можно освоить основное.

раскрыть ветку (2)
1
Автор поста оценил этот комментарий

короче, не умеет nginx в скрипты для обработки jwt. у нас там кастомные claims, решили написать своё.

раскрыть ветку (1)
0
DELETED
Автор поста оценил этот комментарий

Да, nginx за них денег хочет, а вот для openresty похоже, это не проблема с модулем lua-resty-jwt. Ну раз написали, то что уж теперь - поезд ушёл :)

0
Автор поста оценил этот комментарий
Спасибо большое! Очень помогли!
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Если проект большой. То Происходит разбор процесса всяким методологами, потом включаются аналитики и архитекторы которые уже в целом имеют представление, что наша компания может предложить.
После этого выбираются технологии, системы и прочее. Оцениваются трудозатраты. Концепт защищают у заказчика. Он все это оплачивает, естественно.
Итого имеем, что ИТшники еще не приступили, а работа уже год как идет. И когда придет время конкретной реализации, довольно подробный график работ и используемых технологий есть.
Это дело дробится на отдельные задачи, те могут дробиться еще и еще. И вот тут вся чехарда с тикетами только начинается.
Но по сути вся работа оценивается также как и в любой другой деятельности, просто побольше всяких практик по управлению проектами применяется. Если вы только вкатиться желаете, то это вам в общем то ни к чему. Вам дадут задачу, и ваш тимлид или бади(скажем так, наставник-контроллер) уже примерно знает, за сколько это можно сделать новичку. Уложитесь -молодец. Профакапите - потрудитесь объяснить почему.
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества