Чому нам дійсно потрібні програмісти?
Розробник Джозеф Круз замислився над тим, чому світу справді потрібні програмісти. Пропонуємо вам переклад його його авторського блогу від нашої редакції. Далі — слово автору.
Коли я починав працювати програмістом у невеликій компанії, робочий процес був схожий: зранку бос вислуховує наші звіти, за потреби обговорює нові завдання.
Потім, одразу після планової наради, він мчить кудись у своїх надважливих справах. Потім з’являється після обіду на п’ятнадцять хвилин, або ми бачимо його тільки наступного ранку, і нагальні питання вирішуються по телефону.
Програмісти — це такі люди, які можуть придумати собі роботу з повітря. Але, звичайно, кращого результату можна досягти, якщо є чітке завдання і ти можеш займатися ним цілий день. В принципі, так і сталося.
Проекти вийшли різні. Більшість з того, що ми програмували, виявилося марним і потім припадало пилом у репозиторіях. Хоча в момент постановки завдання це здавалося найважливішим, з дедлайнами, штрафами і т.д.
За шість років роботи в цій компанії я пам’ятаю лише два по-справжньому вартісних проекти, які були цінні самі по собі, а потім працювали на благо суспільства. Решта були як завдання: копай звідси і до обіду.
Поступово я зростав, збільшувалася кількість корисних і марних завдань. У нас з’явився відділ системних адміністраторів. Мобільні адміністратори їздили по різних компаніях і налаштовували мережі, поштові сервери, антивіруси.
Я помітив цікаву особливість: коли з’являвся новий клієнт і потрібно було впровадити правильну технологію після того, як старий адміністратор пішов, у мене відразу з’являлися більш термінові завдання, не пов’язані безпосередньо з цією компанією. Треба було просто розібратися ще з кількома гемороями в різних програмних кодах.
Спочатку я думав, що це збіг обставин, тому просто швидше друкував на клавіатурі, вкладався в дедлайни і вислуховував гнівні догани від боса, якщо запізнювався з дедлайнами.
Потім, коли хвиля цих незрозумілих завдань почала чітко корелювати з появою нових клієнтів або великими поламками у клієнтів, я почав замислюватися, чи не пов’язано це якимось незрозумілим для мене чином.
Що, якщо я виконую функцію якогось центрального процесора, який повинен виконувати елементарні операції, і при цьому дивним чином вирішуються високорівневі завдання самої компанії? Причому, часто було зовсім неважливо, виправляю я баг у працюючій системі чи пишу якусь невідому обробку даних, яка потрібна раз на рік. Треба було просто добре подумати і вирішити.
Завіса таємниці трохи піднялася, коли мій маленький відділ найняв ще одного програміста, щоб допомогти мені. Спочатку я пояснив йому, що він може зробити, щоб разом швидше вирішити проблему.
Після того, як він почав працювати, мене охопила така пекельна жага покращити свій код і виправити застарілі помилки, до яких у мене ніколи не доходили руки, що у мене не було іншого вибору, окрім як це зробити. Здавалося, що всі ці завдання матеріалізуються і перестають бути просто записами в таск-трекері, а стають цілком матеріальними проблемами.
Ага, саме так. Так будується ієрархія й підтримується субординація. Якщо у вас є підлеглий, ви можете делегувати йому завдання.
Коли підлеглий виконує це завдання, ви отримуєте прибуток від його виконання. Якби на місці програміста був двірник, то в результаті його роботи у нас був би чистий двір. Але програміст — це працівник інтелектуальної праці, і в результаті його роботи ми отримуємо чистий розум.
З цієї чистоти і порядку ми можемо чіткіше бачити всі недоліки, які раніше не помічали. Коли програміст береться за вирішення наших проблем, він дозволяє нам звільнити місце в нашій свідомості для нових проблем.
Оскільки ми чітко розуміємо, що нам не потрібно про це думати, її вирішує хтось інший, а на її місці може бути створена нова проблема. Таким чином ми зміцнюємо свої обчислювальні здібності.
Повернімося до наших адміністраторів, які налаштовують Windows в бухгалтерії клієнта. Напевно, у нього виникають різноманітні труднощі: не встановлені драйвери, не працює мережа, порожній картридж принтера.
Всі ці проблеми він може вирішити самостійно, але було б чудово, якби хтось постійно щось вигадував за нього.
Щоб адміністратор чудесним чином інтуїтивно натискав усі кнопки, і все запускалося з першого разу. Цим чудодійним вирішувачем є програміст, який якимось чином ловить такі проблеми від адміністратора і вирішує їх у вигляді хитромудрого коду.
Незрозумілість, швидше за все, вписується в ієрархічну структуру компанії та підпорядкованість одних працівників іншим. Напевно, так влаштовані люди.
Висновок
З цього можна зробити висновок, чому після, здавалося б, успішного написання коду завдання і проекти часто йдуть на смітник, а вас ніколи не звільняють. Просто ви (програмісти) не потрібні для створення проектів. Ви потрібні для того, щоб генерувати рішення і постачати ефір цією правильною енергією, щоб інші могли використовувати її і швидко вирішувати свої проблеми.
Успішні проекти — це як побічні продукти. Сукупність ваших рішень добре вписується в певний шаблон, який можна використовувати багато разів. Так з’явилися програмні продукти: Windows, Linux, Word, Excel та інші.
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: