Дневник Робинзона в море ИТ. ч.1 глава 4
Часть 1.
Глава 4. Проблемы делегации полномочий и специалистов узкого профиля.
Март 22 года. Продолжаю строить «корабль» из знаний и умений для того, чтобы отплыть в море ИТ.
Столкнулся с 2 наиболее очевидными проблемами в процессе.
Одна из них это изменяющиеся «чертежи» и техническое задание в процессе постройки элементов. Т.к. я участвую в своём роде эксперименте и «обучающий» продукт все улучшается по мере выявления мной и моими коллегами каких то нюансов, то и задания постепенно усложняются, переходя в плоскость не просто написания кода, а более структурированного подхода и осмысления самого процесса.
Некоторые детали "корабля" приходится ломать и строить заново. Дело не только в изменяющихся «чертежах», сколько в том, что только с опытом познаётся «дзен» чистоты кода.
Основы основ – краткость и лаконичность достигается не всегда просто.
Иногда использую инженерные конструкции, которые решают поставленную задачу, но «подают воду, используя турбины гидроэлектростанции, находящейся в значительном удалении» вместо того, чтобы зачерпнуть воды ковшиком из этой же реки.
Вторая очевидная проблема - чрезвычайно тонкий баланс между использованием узкоспециализированных рабочих и универсала, который может сделать все и разом.
С одной стороны, в жизни имеет место принцип – «хочешь сделать хорошо сделай это сам» упорно намекающий, что хорошо и качественно может быть только сделано в пределах одной функции.
С другой стороны, есть принцип разделения и конвейерные системы, которые за счёт более узких операций выполняют все то же самое и на том же уровне качества, но гораздо быстрее.
На примере человека это очень хорошо может быть продемонстрированно таким популярным явлением как «многозадачность». По последним исследованиям, которые я читал (ссылки не будет) есть все основания полагать, что «многозадачность» в рамках одного человека ведёт к ухудшению результатов работы (ошибки возникают чаще) и увеличению общего времени выполнения всех задач (мозгу необходим определённый интервал времени для переключения между задачами, перераспределения внимания и т.д., зачастую период этот очень значителен).
На примере программирования особенно заметна эта грань между балансом ряда «узких специалистов» и супергероем «универсалом».
Можно создать, с одной стороны, кучу функций, которые будут выполнять строго специализированные операции, но результат будет не конечным и содержать кучу побочных явлений.
Или «универсала», который будет делать все, но в случае выхода из строя какого-то участка кода разобраться в том, что же сломалось будет практически невозможно.
Итого на данный момент прихожу к тому, что необходимы «узкие специалисты», но которые должны полностью закрывать выдаваемый им в рамках полномочий функционал. Использование «многорукого Шивы» не является приоритетным по причине редкого ареала распространения последнего и вызыванием шока у обычных граждан такими «чудесами».
Возможно даже в дальнейшем создадим с "сенсеем" небольшой "кинофильм" о том, как же изменялся код в пределах одного задания. Для меня эта идея кажется интересной. Хотел бы так же добавить, что несмотря на всю мою импульсивность на данный момент удаётся держать себя в руках несмотря на замечания проверяющего. Но и посредственные знания английского языка, изучение которого происходит параллельно дают конечно свои нюансы. Так оказалось, что некоторые переводчики переводят слово игнорируя ошибку. Так я попался со словом "ромб" перевод которого некоторые переводчики выдавали как "romb", а не предлагали исправить ошибку на "rhomb" или "rhombus"
Продолжение следует….