[Ответить в тред] Ответить в тред

02/12/16 - Конкурс визуальных новелл доски /ruvn/
15/11/16 - **НОВЫЙ ФУНКЦИОНАЛ** - Стикеры
09/10/16 - Открыта доска /int/ - International, давайте расскажем о ней!

Check this out!


Новые доски: /2d/ - Аниме/Беседка • /wwe/ - WorldWide Wrestling Universe • /ch/ - Чатики и конфочки • /int/ - International • /ruvn/ - Российские визуальные новеллы • /math/ - Математика • Создай свою

[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 17 | 7 | 7
Назад Вниз Каталог Обновить

Тимлидерства тред Аноним 02/01/17 Пнд 14:21:13  904649  
Сап, харканы!
Случилось Новогоднее Счастье (нет).
После сраных праздников я возвращаюсь в свою говноконтору своего мухосранска уже не в качестве быдлокодера, но в качестве "начальника кодеров". Группа, которой мне предстоит руководить - это горстка (3-5) малограмотных кодеров, совсем чуть хуже меня. Никто до меня в этой конторке ничем подобным не занимался (IT, как понимаете, тут далеко не основная деятельность, раньше мы просто входили в состав IT-отдела, теперь решили выделить внутри него группу именно кодеров и меня вынудили согласиться их возглавлять). Просто у нас есть несколько крупных проектов (ПО для внутреннего пользования) и ворох мелочи-текучки (скриптики там, например).

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

Прошу у анона советов годных: чего почитать-поизучать мамкиному тимлидику? Никаких примеров для подражания перед глазами нет и не было. Есть же годная, хорошая литература или статейки? Интересуют все аспекты: как общаться с людьми (ну, по работе), мотивировать их (или вышвыривать на мороз), как организовать трудовой процесс, какие подходы к разработке и сопровождению мелкого ПО нынче "модные"? До сих пор сам использовал git, doxygen и всякую самую разную хуйню в зависимости от задачи в качестве ЯП/фреймворка/платформы, но остальные пидарасы коллеги так к ним и не приучились, а очень хочется приучить, но не знаю как и не уверен что это на сегодняшний день наилучший выбор, а хочется же сделать сразу нормально, да и нужны же ещё инструменты типа багтрекинга или управления проектами и чтобы всё друг к другу подходило.

Выручайте, братюни. Кто помоложе может представить, что работает в моей команде. Кто постарше может представить, что заинтересован в успешности моей группы (вышестоящий начальник). Советы? инб4: бочку, хуйца и т.п.
Аноним 02/01/17 Пнд 15:09:08  904669
сначала надо пояснить, кароч заходишь в их петушатник и хуяришь с ноги в ебальники со словами: "ЧО ЕБАНУТЫЕ!!!?!??! ЧО ТУТ ДЕЛАЕТЕ!!!??!???" уходишь пока они соображают "КТО ЭТО БЫЛ ТО БЛЯТЬ ВООБЩЕ!!?!?!??!!!???? А!??!??"
через 15 минут опять заходишь, отвечаешь на вопросы по архитектуре...
Аноним 02/01/17 Пнд 15:29:56  904678
>>904649 (OP)
>как общаться с людьми (ну, по работе)
Как бы ты сам с собой общался, будучи на их месте. Сам же только недавно был на их месте — главное не доебывайся как тп и не переберщивай с митапами и прочей хуйней.
>мотивировать их (или вышвыривать на мороз)
Зависит от того, с кем работаешь. Молодые, горячие — любят новые и интересные технологии (если есть прям ну задроты — еще и сложные задачи). Всякий унылый энтерпрайз шит (как правило с семьей и прочим) — таких интересует только зарплата. Ну еще как бы пораньше освободится — этим производительность труда можно поднимать (лол).
>коллеги так к ним и не приучились
Ты где работаешь-то? В какой-то мухосранской 1С конторе? Это же везде требуют от джунов, лол.
Все "аналоги" — это все то же самое, объединенное в одну большую платформу, так что метод анально-долбровольного принуждения или тряси деньги на всякие teamcity, youtrack и прочее.
Аноним 02/01/17 Пнд 16:02:53  904690
Untitled.png (35Кб, 597x735)
>>904678
>Ты где работаешь-то?
Да большой завод (градообразующее предприятие как бы), который решил, что ему нужно для некоторых задач своё собственное ПО, но вместо аутсорса добрал в айти-отдел (к всяким эникейщикам и техподдержке) несколько кодеров; ну, самого работодателя положение устраивает, а я за него не думаю.

В принципе бабла немного есть у конторы, может попробую выбить молодым курсы какие, но тут тоже много вопросов: какие, куда, стоят-то дохуя, а толк далеко не ото всех. Конечно хотелось бы вообще заебатого коллектива со всякими локальными контестами, пятницами для изучения нового и т.п. Но ясно в принципе, что это всё во влажных снах скорее всего останется, но тем не менее очень хочется выжать максимум пользы из нового положения и организовать работу максимально правильно.
Пока засел за https://rsdn.org/summary/959.xml .

Алсо, пилите кулстори про своих тимлидов и ситуации в коллективе. Интересно же.
Аноним 04/01/17 Срд 11:31:03  905676
Untitled.png (34Кб, 573x733)
> https://rsdn.org/summary/959.xml
Показалось мне тут всё в принципе разумным, но каким-то старым, прям говно мамонта. Мол, agile наше будущее, но только 5-10 лет назад. Как оно, так и выходит? Чего бы поновее почитать, только не сраную хабру.

Пока вот присмотрел халявный ProjeQtOr, выглядит заебато, из очевидных минусов - отсутствие интеграции с Git (и любой другой системой контроля версий), но надеюсь 3.5 разрабам будет норм ручками со ссылками на коммиты работать.

Ещё кстати висит угроза выкручивания рук чтоб разработки шли по ГОСТам. Никогда этой хуйни не читал, гугл выдаёт что-то больно дохрена, включая всякий шлак из 60-ых 70-ых годов, хотя я знаю, что есть и нормальные рекомендательные стандарты - переводы из ISO. У кого какой опыт работы по ентим самым гоатсам? Есть в них рациональное что-то, или только лишний геморрой?
Аноним 04/01/17 Срд 12:08:51  905682
>>905676
Короче, чувак, слушай сюда. Agile - это не для завода, не для критических для производства приложений, хотя элементы его не помешают (непрерывный девелопмент, баги>фичи, разработка через тестирование и т.п.).
Вот практические шаги, которые тебе надо будет сделать как руководителю для организации процесса разработки.
0. Вам нужна (хотя бы одна) выделенная машина-сервер, мощнее чем все остальные, которая будет централизованным репозиторием документации, кода, платформой для сервисов вроде постановщика задач/багтрекера (redmine), ci (jenkins), системы контроля версий и ревью (git + gitlab). Всё это должно быть синтегрировано. Выдели чувака, который должен будет это всё настроить, пока вы занимаетесь п.1.
1. Все ТЗ, вся матчасть должна быть чётко формуляризована до того, как вы начнёте разработку. Ты знаешь доксиген - превосходно, у вас должна быть общая вики/портал, на котором будут доступны для разработчиков все спецификации и ТЗ. Тестовые кейсы - там же, в приложены к конкретным модулям/пунктам ТЗ (о них позже). То есть на первое время основной твоей работой 24/7 будет наполнение такого портала с документацией, написание подробных ТЗ и спецификаций и согласование их с начальством.
Насчёт ГОСТов. Есть ГОСТ на разработку ПО, он описывает "водопадную" модель процесса разработки (сначала документация - потом реализация - потом тестирование), и есть набор ГОСТов на техническую документацию (штук десять их, входят в одну группу с первым). Вот как раз воторе тебе и нужно - вся документация должна быть оформлена по ГОСТу. Также есть ИСО 26001, который описывает процесс контроля качества в разработке ПО. Думаю, что вашему маленькому ИТ отделу он мало применим, хотя знать его необходимо.
К созданию документации должны быть привлечены все сотрудники под твоим чётким руководством. Там много рутины, так быстрее успеете, и люди чему-то научатся. Составлять документы надо в doxygen-формате и коммитить их в гит. Как только сервак из п.0 будет готов, все доки должны коммититься туда и там же будет доступен портал с документацией.
2. Как только часть спецификаций будет готова, начинай проработку архитектуры. Собирай короткие получасовые митинги со своей командой, где каждый будет делать предложения и давать оценку трудоёмкости. Митинги должны юыть посвящены одной конкретной теме/модулю/части ТЗ.
Да, насчёт оценки трудоёмкости. Это самое сложное и тебе придётся сообщать эти оценки руководству. Добавляй примерно треть ко всем оценкам на первых порах, потом этот процент можно будет подкорректировать по результатам работы. Разбивай ТЗ на как можно более мелеие подзадачи, которые легко оценить и дать в работу одному человеку. В багтрекере обязательно используй трекинг времени и заставь всех его использовать, иначе реалистичных оценок вам не видать. Тут тебе пригодится часть методологии "scrum" по части механизма оценивания и планирования итераций разработки (спринтов). Каждый спринт будет планироваться по мере готовности задач в работе и спецификаций из п.1.
3. Тестирование. Тест кейсы должны составляться разработчиками по спецификации ДО начала разработки и оцениваться тобой (и другими разработчиками). Лучше иметь некий плагин к багтрекеру/отдельный портал с тесткейсами, хотя можно и вести их в вики/параллельно с документацией. Все тесткейсы должны бть проклассифицированы по пунктам ТЗ и пронумерованы. В дальнейшем, коммиты фич и багфиксов не должны приниматься без юнит- и функциональных тестов. ПРИ ОЦЕНКЕ ТРУДОЁМКОСТИ ФИЧ ОБЯЗАТЕЛЬНО ДОЛЖНА ПРОВОДИТЬСЯ ОЦЕНКА ТРУДОЁМКОСТИ НАПИСАНИЯ ТЕСТОВ и включаться в конечную оценку. Если трудоёмкость тестов неизвестна, то надо использовать коэффициент x2 если фреймворк уже готов и надо только дописать сами тесты, или x3 - x5 если тестов на похожую функциональность ещё нет. перед коммитом фичи должна происходить ручная приёмка фичи другим разработчиком, который делает вывод о качестве автотестов и проверяет рабоспособность фичи в целом. Всё это документируется в багтрекере и затраченное время также трекается. Так как разрабов мало, должность тестировзика должна быть переходящей. Ответственность за последующие баги в сданной фиче ложится на того, кто принимал фичу и тесты.
4. Ревью кода. Используй git-flow и пулл-реквесты в гитлабе. Для пулл-реквестов применяется процесс тестриования, описанный выше.
5. Процесс сборки должен быть автоматизирован с помощью Jenkins. Гитлаб позволяет триггерить билды по коммиту. Два раза в день должны прогоняться функциональные тесты, юнит-тесты гоняются он-коммит.
6. Интеграционные тесты должны быть готовы перед сдачей системы (если она содержит несколько взаимодействующих модулей, например, по клиент-серверной архитектуре). Можно начинать писать их сразу, используя заглушки, но можно и потом, когда большая часть модулей будет готова.
7. Стартап-митинги зло, но без них никак. Возьми за правило краткие 20-30 мин митинги в начале дня. За опоздания не еби, но эти митинги должны (и будут) мотивировать приходить вовремя. На митинге каждый участник отчитывается о том, что делал вчера, каких достиг результатов, и что будет делать сегодня. Ты, как руководитель, должен оценить успешность выполнения заданий и заранее выявить проёбы, грамотно перераспределить ресурсы, подсказать с затыками, напомнить о сроках. Результаты митингов можно фиксировать в redmine.

Фух, может вспомню ещё что, это пока что навскидку на ум пришло.
Аноним 04/01/17 Срд 12:25:18  905688
>>905682
Как организовать разработку после первого релиза.
Во-первых, в релиз должны войти только полностью покрытые тестами и протестированные фичи. Используя описанный выше процесс, в "мастере" такое состояние будет поддерживаться практически постоянно, поэтому релиз может состояться в любое время. После релиза и сбора обратной связи/багов на реальной системе, боевых инсталляциях, процесс багфиксинга и запиливания надо начинать с внесения изменений в документацию. Дальше процесс тот же, что и описан выше.

НЕ ДАЙ НАЧАЛЬСТВУ ПРОДАВИТЬ СВОИ СРОКИ! Если твоя команда не успевает, выкидывай фичи, но никогда не выкатывай недотестированный продукт на боевую инсталляцию.

Используй кодстайл, коммиты не под код-стайлу не принимаются. Для контроля надо использовать линтеры, они доступны для всех мейнстримных языков, который запускаются перед компиляцией. Да, я зыбыл, чтобы органзовать запуск юнит-тестов и линтеров, а также автоматическую сборку, надо использовать систему сборки вроде Maven, Ivy, Grunt, etc. в зависимости от выбранного стека технологий. Maven - дефолтный выбор для Java и C/C++, если не знаешь, с чего начать. Готовые сборки должны заливаться на ftp/паблишиться на сервер артефактов (типа nexus или artifactory), оттуда они будут браться автоматическим деплой скриптами или людьми для установки.
Аноним 04/01/17 Срд 12:31:21  905691
>>905682
Проебался с номером ИСО, надо 25001, вообще всё семейство 250ХХ надо знать.
Аноним 04/01/17 Срд 13:51:25  905727
>>905676
>>905682
О, кстати, наткнулся у себя в закладках на ссылку с книжками для тимлидов.
https://habrahabr.ru/company/devrainsolutions/blog/163113/
Аноним 04/01/17 Срд 13:53:02  905729
Untitled.png (30Кб, 597x609)
>>905682 >>905688
О, выглядит всё охуенно стройненько, спасибо.
Пойду читать доки на всё перечисленное.
Так-то выделенный сервер в материальном смысле имеется, сам заводил для гит-репозиториев своих проектов, остаётся поднять и настроить там всё остальное и людей туда перевести из их блокнотиков.

Вот с тестированием тоже не везде ясно. У нас, понятно, много кода, связанного с контролем/управлением железом (датчики, движки, видеокамеры и т.п.). Для тестирования всех остальных частей ПО есть (или будут) заглушки-имитаторы реальных устройств; но ведь в таком случае сам код, вместо которого вставляется имитатор, остаётся не протестированным до самого деплоя. Он конечно насколько возможно легковесный и мы конечно стараемся его как-то тестить, приволакивая железяки по отдельности прям в офис, когда это возможно. Но это всё как-то не систематизировано, "по ситуации", и ошибки случаются много чаще, чем хотелось бы. В общем, здесь бы тоже методологию нормальную какую найти.
Аноним 04/01/17 Срд 14:03:24  905735
Untitled.png (29Кб, 589x641)
>>905727
Ох, это много чтива. Ну кое-что в электронном виде нашлось сразу, начинаю читать.
Сразу вопрос: а это насколько актуально? Просто после двухдневного сёрфа создалось ощущение, что методология разработки ПО как область знания какая-то очень динамичная, постоянно новые инструменты, подходы и т.п. Мне вот в универике только про Водопад да CVS рассказывали, а это было-то всего несколько лет назад, а сейчас читаю, что это всё устаревшая тупиковая херня.
Аноним 04/01/17 Срд 15:30:20  905797
>>905735
> Сразу вопрос: а это насколько актуально?
Scrum/Kanban и "гибридная водопадная" применяются прямо сейчас в промышленном программировании (в т.ч. у нас в компании). Не целиком как в книжке, а практически применимые части, типа того, что я тебе расписал - в основе, по факту, Скрам. Новых методологий нет, по сути есть только допиливание напильником существующих 4-5 подходов: водопад - уже не применяется нигде, аджайл (спираль), гибридный водопад (итеративный), экстремальное программирование (PoC -> допиливание напильником до продукта, используется в стартапах). Скрамы, канбаны, скрамбаны и прочее такое - это варианты практической реализации аджайла и базовых принципов управления ресурсами (людьми, временем и железом). Всякие TDD, BDD, DDD - это методологии написания кода в рамках выбранной методологии процесса разработки.

> Вот с тестированием тоже не везде ясно. У нас, понятно, много кода, связанного с контролем/управлением железом (датчики, движки, видеокамеры и т.п.). Для тестирования всех остальных частей ПО есть (или будут) заглушки-имитаторы реальных устройств; но ведь в таком случае сам код, вместо которого вставляется имитатор, остаётся не протестированным до самого деплоя. Он конечно насколько возможно легковесный и мы конечно стараемся его как-то тестить, приволакивая железяки по отдельности прям в офис, когда это возможно. Но это всё как-то не систематизировано, "по ситуации", и ошибки случаются много чаще, чем хотелось бы. В общем, здесь бы тоже методологию нормальную какую найти.
Все ваши датчики/видеокамеры/движки выдают и принимают на вход сигналы определённой формы/формата. Что мешает сделать программные или хардварные аналоги, выдающие такие тестовые сигналы? Протокол-то наверняка известен. Плюс если движком управляет некий сторонний драйвер, то тестировать фактическое управление движком можно будет только в конце, на этапе испытаний, а для автотестирования использовать заглушку с интерфейсом, как у этого драйвера.

>>905682-кум
Аноним 04/01/17 Срд 18:50:32  905928
Untitled.png (39Кб, 571x749)
>>905797
>Протокол-то наверняка известен.
Так точно, и если речь идёт о коробочке с ethernet/com/usb/... интерфейсом, то обычно так и делаем (хотя надо, конечно, делать не "обычно", а всегда).
Сложность бывает в случае взаимосвязи разных устройств, ну например в простейшем случае управление охлаждением при обратной связи по термопаре; можно имитировать то и другое, но чтобы полноценно оттестить сам регулятор, нужна модель реального объекта, интегрирование уравнения теплопроводности и, в общем, пиздец зачастую вроде бы превосходящий сложность самой разрабатываемой системы. Наверное, другого пути и нет: либо полноценно всё моделировать, либо отлаживать прям в производственных помещениях с ноутбука (уродство, как по мне, жуткое). Что-то думаю может имеет смысл отдельный проект завести "программная модель сраных цехов", вот только никому кроме кодеров это не нужно напрямую.
Аноним 04/01/17 Срд 19:03:47  905941
>>905928
> Что-то думаю может имеет смысл отдельный проект завести "программная модель сраных цехов", вот только никому кроме кодеров это не нужно напрямую.
А чо бы и нет, можно кандидатскую замутить.
Аноним 04/01/17 Срд 19:07:10  905944
>>905928
>Сложность бывает в случае взаимосвязи разных устройств, ну например в простейшем случае управление охлаждением при обратной связи по термопаре; можно имитировать то и другое, но чтобы полноценно оттестить сам регулятор, нужна модель реального объекта, интегрирование уравнения теплопроводности и, в общем, пиздец зачастую вроде бы превосходящий сложность самой разрабатываемой системы.
Система диффуров для уравнения теплопроводности в общем-то хорошо обсосана в литературе, как и многое другео, что у вас используется. А без матановых моделей тут и не обойтись никак, хотя бы теоретические должны быть. Вы же на практике все граничные условия не сможете оттестировать, их проще смоделировать сначала, а потом просто подкорректировать под оборудование. Советую начать с поиска спецификаций на термопары и прочее оборудование, заказа их у производителя, если это не самопал.
Аноним 04/01/17 Срд 19:14:55  905956
>>904649 (OP)
Готовь туза, маня.

А если серьёзно, то судя по описанию твоей недоконторы ничего внятного не выйдет, так что можешь смело скипать всю хуиту которую тебе тут насоветовали и сделать щи попроще. Тимлид - это не менеджер, не скраммастер (читай лохотронщик), а хуйня застрявшая между двух миров, на которого скинули всю говно, вроде микроменеджмента, которое любому PMу выполнять западло да и не положено. С учётом же описания твоей конторы - ты просто тот на кого будут падать все шишки и кого будут ебать на всех собраниях из-за факапов, которые непременно будут и будут чаще всего не по твоей вине или вине твоей тимы пидаров. Поздравляю с новой должностью мальчика для битья.
Аноним 04/01/17 Срд 19:22:19  905962
>>905956
А вот и ванги подъехали.
Оп же сказал, что контора расширяется, значит бабло пошло. Руководство правильно делает, что вкладывается в бизнес, заморачивается автоматизацией.
Аноним 04/01/17 Срд 19:42:23  905971
Untitled.png (42Кб, 575x749)
>>905941 >>905944
Резонно. Терморегулятор всё-таки очень простой пример, но всеобъемлющее тестирование наверное того стоит.

>>905956
>Готовь туза
Да как тебе сказать, я примерно это предчувствую, но весьма спокоен: запасные отходы в виде фриланса или уёбывания в ДСы вполне реальны и даже интригуют; но всё-таки ты пойми, хочется попытаться. Ну а вдруг выгорит. Интересно будет, думаю, в любом случае, даже и в туза разок.

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 17 | 7 | 7
Назад Вверх Каталог Обновить

Топ тредов
Избранное