Индустрия Программного Обеспечения. Как Вы Справляетесь С Ролью Единственного Технического Специалиста В Нетехнической Команде?

  • Автор темы Natella3332
  • Обновлено
  • 22, Oct 2024
  • #1

В компании, в которой я сейчас работаю, ужасное количество процессов, требующих ручной работы, поэтому они очень ограничены в количестве проектов, которые они могут взять на себя, поскольку их процессы не масштабируются, они достигли точки, когда им приходится отклонять проекты. . Эти процессы во многом зависят от ручной настройки, ручного выполнения и написания документов Excel и Word и тому подобного. Например, один из этих процессов включает в себя заполнение более 800 ячеек в электронной таблице вручную, а другой экспортирует все эти ячейки вручную в другой внутренний файл. инструмент и так далее.

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

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

Инфраструктура настолько универсальна и гибка, насколько это возможно, и ее можно настроить с помощью Python для удовлетворения различных потребностей проектов. Логика такая же, как, например, у проекта в React или в Django. Все сложное абстрагировано в инфраструктуре и доступно через вызов функции в Python. Все спроектировано так, что пользователю нужно только запрограммировать специфику проекта и объединить блоки вместе с помощью Python.

Проблема в том, что, поскольку другие люди в отделе были заняты другими проектами, а ручные процессы занимают так много времени, никто, кроме меня, не работал в этой инфраструктуре или проектах, основанных на ней, и никто другой в отделе не занимается этим. программист и ничего не знает о Python, то небольшое программирование, которое они сделали, - это VBA.

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

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

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

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

РЕДАКТИРОВАТЬ:

Я предоставлю больше контекста на основе предоставленных ответов.

Сам процесс может состоять в измерении физической величины 800 раз и сообщении о результатах между определенными пороговыми значениями или некоторыми критериями в электронной таблице Excel 800 раз, сейчас это делается вручную хорошо оплачиваемым инженером, который нажимает кнопку инструмента 800 сто раз каждые пять секунд или около того (так быстро, как только может), выполняет фильтрацию в голове и вручную записывает данные в электронную таблицу.

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

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

Итак, мне нужен подходящий язык, и я выбрал Python, потому что я его хорошо знаю, и его проще всего изучить и начать с него. С Python я могу достаточно хорошо справиться со всем этим в реальном времени и абстрагироваться от всех технических деталей инструментов, драйверов и и так далее, и просто я ожидаю от пользователя некоторого кода Python, чтобы установить критерии фильтрации результатов и местонахождение инструмента по его IP. Лично мне это не кажется сложным.

Я мог бы абстрагировать это до графического пользовательского интерфейса, чтобы пользователи не использовали Python, но учтите, что если я сделаю это для каждого процесса, это будет означать, что я буду сам реализовывать всю функциональность в каждом проекте, пока мои коллеги просто нажимают кнопку. И не все процессы хорошо адаптируются к графическому интерфейсу, они требуют реализации некоторой логики через Python, я не смогу справиться с этим объемом работы сам, и это не является намерением, цель состоит в том, чтобы люди начали автоматизировать вещи, как я это делаю. сам. Цель состоит в том, чтобы я сам решал инфраструктуру и сложные проблемы, а они автоматизировали потребности других проектов с этой инфраструктурой с помощью Python.

Прежде чем приступить к работе, я поговорил со всеми участниками и поделился своим видением инфраструктуры, а также прямо упомянул, что Python будет использоваться, если только не будет, а также многочисленные причины для этого, в частности, растущая сложность проектов и тот факт, что текущий способ работы подразумевает, что многое требований клиентов не были учтены. Теперь я понимаю, что, возможно, они сказали «ОК», не особо задумываясь.

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

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

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

ОТНОСИТЕЛЬНО НЕТЕХНИЧЕСКИХ

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

#софтверная индустрия #коллеги #рабочая среда #разработка софта #новый менеджер

Natella3332


Рег
09 Apr, 2011

Тем
72

Постов
193

Баллов
553
  • 26, Oct 2024
  • #2

Итак, вы говорите, что сотрудники вашей компании не имеют технического образования и объединили некоторые электронные таблицы и VBA, чтобы они могли выполнять свою работу, и что вы заменили это системой, которая требует от них изучения Python?

Построенная вами система может быть более расширяемой, удобной в обслуживании, масштабируемой и т. д. и т. п., но если персоналу нужно писать код на Python для настройки проектов и обслуживания инфраструктуры, то вы находитесь в проигрышной позиции, это не приведет к успеху. произойти. На самом деле этого не должно происходить, предположительно у сотрудников есть другие области бизнес-знаний, которые имеют решающее значение для их работы; поддержка клиентов, управление счетами, бизнес-анализ? Программирование — это пустая трата их времени и опыта.

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

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

И последнее: я был в состоянии заменить чудовищные электронные таблицы Excel, содержащие кошмарные макросы VBA, на правильно закодированные системы, и подход, который сработал, заключался в том, чтобы сохранить Excel в качестве пользовательского интерфейса в первой итерации, чтобы избежать проблемы «не здесь изобретено». Со временем они увидели, что мы избавляем их от боли и облегчаем их жизнь, и стали доверять нам, когда дело дошло до окончательного отказа от Excel.

 

Niktor


Рег
19 May, 2010

Тем
60

Постов
174

Баллов
494
  • 26, Oct 2024
  • #3

Это звучит как необычная (и разочаровывающая) ситуация, в которой я лично не был, так что, вероятно, у кого-то другого будет более актуальный опыт. Однако эта часть вызвала у меня красный флаг:

Инфраструктура настолько универсальна и гибка, насколько это возможно...

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

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

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

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

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

 

Blinoff1


Рег
07 May, 2007

Тем
60

Постов
192

Баллов
522
  • 26, Oct 2024
  • #4

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

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

У меня такое ощущение, что эта конкретная проблема не такая уж редкость.

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

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

Опытные пользователи могут в конечном итоге осознать, что они могут писать свои собственные конечные точки odata, или даже могут решить полностью отказаться от Excel, чтобы напрямую работать с инфраструктурой.

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

 

Ермек Жекебаев


Рег
28 Oct, 2020

Тем
77

Постов
201

Баллов
636
  • 26, Oct 2024
  • #5

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

Вы создали хорошую систему, но никто не может ее использовать. Это типичное несоответствие между техническим специалистом и пользователями.

Одним из решений было бы изменение подхода. «Клиентами» вашей работы являются ваши коллеги. По моему опыту, лучше всего выяснить, какой тип решения могут использовать мои клиенты, прежде чем я начну что-то создавать. В этом случае создается впечатление, что клиенты могут использовать решения на основе Excel и VBA, но не что-либо еще. Да, VBA не так чист, как Python, но он все равно может выполнить свою работу.

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

 

Crosss4iter


Рег
29 Mar, 2013

Тем
71

Постов
219

Баллов
614
  • 26, Oct 2024
  • #6

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

Ваша цель — заставить коллег изучить Python — хороша, но не в краткосрочной перспективе; вполне понятно, что они спросят: «Что это значит для меня?», и ответ «возможно, несколько снизит рабочую нагрузку через 6 месяцев» не покажется удовлетворительным.

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

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

 

ТигрЮля


Рег
01 Feb, 2011

Тем
63

Постов
192

Баллов
537
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно