У меня есть заготовленные ответы на вопрос «чем занимаются программисты». Много умных слов, обычно легко убедить человека, что наша работа очень сложная и важная. Недавно моя бабушка спросила, кем я работаю — привычно начал объяснять. Не сработало. Мой обычный ответ ничего ей не сказал, ведь он опирается на огромное количество вещей, которые для современного человека не нуждаются в доказательствах.
Бабушка - советский инженер химик, и я не смог ей продать мысль, что я обеспечиваю процесс разработки процесса разработки процесса...
Пришлось объяснять как работает индустрия в деталях. Какие проблемы решает, какая роль в этом у компаний, в которых я работал, и какая моя роль в этих компаниях. Почему я просто сижу дома, обычно даже не за компом, а у меня много денег. Почему это всё имеет такое большое значение, и почему мир вокруг от этого лучше не становится.
В процессе объяснения что-то сломалось уже у меня. Ну то-есть, никаких сюрпризов — я знаю наперечёт все главные проблемы и конфликты в отрасли, но по отдельности они не кажутся нерешаемыми или блокирующими. Но когда пытаешься объяснить наши мотивы и системы с самого верха, разбирая базовый слой на дискретные кусочки, вот тут ты начинаешь думать, что что-то здесь не так.
Ужасная система найма, самозванцы, лиды, которые не умеют и не хотят управлять разработкой, тысячи противоречивых стандартов и разных технологий, которые делают одно и то же. Расхождение работы в джире и в реальности. Менеджеры, которые не понимают, что делают их подчиненные. Профдеформация разработчиков, стремление индустрии иметь вместо людей дискретные, чистые функции. Все эти проблемы не такие страшные. Решаемые.
Но они симптомы настоящей проблемы. Если коротко объяснять понимающему человеку, какую задачи решает программирование — мы занимаемся автоматизацией. На пальцах: есть работа, которую нужно сделать, есть люди которые её делают. Наша задача — научить машину делать эту работу. Это выгодно, потому что машинных ресурсов у нас условно бесконечность. Лучше всего это видно в кейсах, где нам в принципе не может хватить человеческих ресурсов, например в расчетах траекторий космических полётов. Людям нужны были эти автоматизации, люди построили индустрию автоматизаций. А проблема тут в том, что автоматизацию тоже можно автоматизировать. До бесконечности. Причём каждая последующая автоматизация в разы дороже предыдущей.
Люди, чья работа — автоматизировать, остановиться не могут. Поэтому мы стали решать проблемы которые решают проблему, которая решает проблему, которую дешевле было бы решить не решая всех предыдущих проблем. Дешевле в тысячу тысяч раз.
У меня был случай, когда отец попросил меня написать приложение для его фирмы. По масштабам оно было сопоставимо с приложением, которое я делал на работе. В составе команды, больше года мы создавали и улучшали этот софт. Для бати я сделал за месяц, работая по вечерам. Получилось качественней, чем та штука за миллионы долларов. Потому что я не платил за процесс и не автоматизировал его. Я точно знал, что как и зачем надо сделать, я не делегировал решение проблем каким-то системам или организациям. Другой вопрос, что если бы отец попросил сделать ему операционную систему, мне бы потребовалось куда больше автоматизации моей работы. Но точно не настолько много, насколько индустрия пытается сделать сейчас. Кроме того, много кто из нас пишет операционные системы, а?
Ты блин делаешь калькулятор, и автоматизируешь процесс оценки производительности. Код, написанный в недрах атлассиана рисует твоему менеджеру график, который показывает, укладывается ли команда в эстимейты. А инструкции, которые написаны, что бы автоматизировать работу мозга твоего менеджера, подсказывают, как надо повлиять на процессы, что бы двинуть эджайл график в нужную сторону. Но это все ещё чертов калькулятор, нормальный разраб делает такой за месяц, иначе пошёл он нахер, и это все что тебе тут нужно знать.
Бабушка - советский инженер химик, и я не смог ей продать мысль, что я обеспечиваю процесс разработки процесса разработки процесса...
Пришлось объяснять как работает индустрия в деталях. Какие проблемы решает, какая роль в этом у компаний, в которых я работал, и какая моя роль в этих компаниях. Почему я просто сижу дома, обычно даже не за компом, а у меня много денег. Почему это всё имеет такое большое значение, и почему мир вокруг от этого лучше не становится.
В процессе объяснения что-то сломалось уже у меня. Ну то-есть, никаких сюрпризов — я знаю наперечёт все главные проблемы и конфликты в отрасли, но по отдельности они не кажутся нерешаемыми или блокирующими. Но когда пытаешься объяснить наши мотивы и системы с самого верха, разбирая базовый слой на дискретные кусочки, вот тут ты начинаешь думать, что что-то здесь не так.
Ужасная система найма, самозванцы, лиды, которые не умеют и не хотят управлять разработкой, тысячи противоречивых стандартов и разных технологий, которые делают одно и то же. Расхождение работы в джире и в реальности. Менеджеры, которые не понимают, что делают их подчиненные. Профдеформация разработчиков, стремление индустрии иметь вместо людей дискретные, чистые функции. Все эти проблемы не такие страшные. Решаемые.
Но они симптомы настоящей проблемы. Если коротко объяснять понимающему человеку, какую задачи решает программирование — мы занимаемся автоматизацией. На пальцах: есть работа, которую нужно сделать, есть люди которые её делают. Наша задача — научить машину делать эту работу. Это выгодно, потому что машинных ресурсов у нас условно бесконечность. Лучше всего это видно в кейсах, где нам в принципе не может хватить человеческих ресурсов, например в расчетах траекторий космических полётов. Людям нужны были эти автоматизации, люди построили индустрию автоматизаций. А проблема тут в том, что автоматизацию тоже можно автоматизировать. До бесконечности. Причём каждая последующая автоматизация в разы дороже предыдущей.
Люди, чья работа — автоматизировать, остановиться не могут. Поэтому мы стали решать проблемы которые решают проблему, которая решает проблему, которую дешевле было бы решить не решая всех предыдущих проблем. Дешевле в тысячу тысяч раз.
У меня был случай, когда отец попросил меня написать приложение для его фирмы. По масштабам оно было сопоставимо с приложением, которое я делал на работе. В составе команды, больше года мы создавали и улучшали этот софт. Для бати я сделал за месяц, работая по вечерам. Получилось качественней, чем та штука за миллионы долларов. Потому что я не платил за процесс и не автоматизировал его. Я точно знал, что как и зачем надо сделать, я не делегировал решение проблем каким-то системам или организациям. Другой вопрос, что если бы отец попросил сделать ему операционную систему, мне бы потребовалось куда больше автоматизации моей работы. Но точно не настолько много, насколько индустрия пытается сделать сейчас. Кроме того, много кто из нас пишет операционные системы, а?
Ты блин делаешь калькулятор, и автоматизируешь процесс оценки производительности. Код, написанный в недрах атлассиана рисует твоему менеджеру график, который показывает, укладывается ли команда в эстимейты. А инструкции, которые написаны, что бы автоматизировать работу мозга твоего менеджера, подсказывают, как надо повлиять на процессы, что бы двинуть эджайл график в нужную сторону. Но это все ещё чертов калькулятор, нормальный разраб делает такой за месяц, иначе пошёл он нахер, и это все что тебе тут нужно знать.