«Нет большего дурака, чем тот, кто считает себя мудрым; самый мудрый — тот, кто подозревает, что он дурак» (Маргарита де Валуа)
Большинство разработчиков умеют хорошо писать код. Но это умение может усложнить им работу.
Помните, что избегать проблем всегда легче, чем решать их. И в этом помогают не навыки кодинга, а здравый смысл, сообразительность и опыт.
Об этом в своем блоге на Medium пишет разработчик Бен Хоскинг. Передаем ему слово.
У сеньора, который знает, когда разбираться с кодом, а когда просто отклонить требования, есть преимущество перед джуниором. Образно говоря, сеньор понимает, когда промолчать, когда сражаться, а когда убегать и прятаться.
Разработчики тратят всего 50% своего времени на написание кода:
Разница между ними в том, что джуниоры еще не совершили достаточно ошибок, чтобы стать мудрыми. У них слишком мало опыта, знаний и навыков.
Когда разработчик ошибается, в будущем он будет избегать этой ошибки. Таким образом у него появляется возможность делать новые, и учиться избегать их тоже.
Иногда трудно предположить появление ошибок в разработке программного обеспечения, потому что их последствия проявляются не сразу. Простые ошибки обнаруживаются быстрее, и быстрее исправляются.
Более сложные ошибки — это что-то вроде жесткого кодинга значения, когда сначала не видно никаких минусов. Но позже, чтобы изменить значение, нужно изрядно поработать, и вы много раз пожалеете о первоначальном решении.
«Умный человек решает проблему. Мудрый человек избегает ее»
Альберт Эйнштейн
Все разработчики хотят писать код. Это то, в чем они разбираются, и что им нравится делать. Но сеньоры понимают, когда нужно писать код, а когда уточнить и прийти к выводу, что код как раз писать и не нужно.
Джуниоры каждое требование или проблему пытаются решить так, как они умеют, а именно — написав код 🙂
На самом деле, писать код нужно в последнюю очередь, потому что каждая строчка увеличивает ответственность команды разработчиков .
Написанный код необходимо поддерживать, также это усложняет кодовую базу.
В краткосрочной перспективе, написать код — это замечательное решение. Но в долгосрочной — оно увеличит затраты времени, сложность и затраты на обслуживание.
Эффективнее писать меньше кода, так как это снизит вероятность сбоев. Сеньоры знают, что код писать нужно только в том случае, когда никаких других вариантов нет, и после того, как вы проверили требования.
Мудрый разработчик сокращает созданный код, учитывая только обязательные требования и игнорируя входящие в категорию «было бы неплохо».
Заданные параметры могут быть достигнуты путем изменения бизнес-процессов вместо написания кода. Не автоматизируйте все, иногда выбор вручную — лучший вариант.
Джуниоры стремятся писать код сразу, часто еще до того, как они поймут, зачем бизнесу нужен этот код и что он должен делать.
Сеньоры делают предположения и оценивают требования. Неважно, насколько хорошо вы создали код, если он работает не так, как нужно.
Если писать код с проверенными требованиями, программное обеспечение будет создаваться быстрее. С кодом связано много затрат вроде обновленного зависимого кода, связанного кода, документации, тестов и прочего. Иногда дела идут быстрее, если не спешить и создать правильное программное обеспечение.
«Первый принцип — вы не должны обманывать себя, хотя обмануть себя легче всего»
Ричард П. Фейнман
Плотники дважды отмеряют древесину и один раз отпиливают. Разработчики не часто так себя ведут.
Мудрые сеньоры понимают, что они эксперты в создании программного обеспечения, а пользователи — эксперты в своем деле. Создание ПО — это сотрудничество между бизнесом и техническими специалистами.
Джуниоры не учитывают все требования и переходят к созданию технического решения. Сеньоры сосредотачиваются на бизнес-целях и процессах, чтобы лучше понять назначение программного обеспечения.
Чтобы создать реальное программное обеспечение, нужно ясно видеть задачи бизнеса, команды и отдельных сотрудников.
Часто джуниоры ориентируются только на оптимальный сценарий. Позже, когда появятся неподходящие сценарии и исключения, разработчики будут вынуждены постоянно менять код, исправляя ошибку.
Так то, что первоначально казалось быстрым и удачным решением, замедляет работу из-за багов. Хороший сеньор создает код один раз и он работает идеально.
Сеньор знает, когда задавать вопросы, когда слушать, а когда говорить.
«Молчание — это урок, полученный после многих страданий в жизни» (Сенека).
Для разработки программного обеспечения нужна команда, в которой каждый должен выполнять свою работу.
Попытка быть полезным — это палка о двух концах. Вы можете помочь другому человеку сейчас, но этим нанести себе вред в будущем.
Мудрые разработчики убедятся, что люди, управляющие частями проекта, следят за этим вопросом.
Разработчики должны беречь свое время и отдавать ответственность и принятие решений тем людям, в чью компетенцию это входит.
Джуниоры часто помогают другим с задачами и им не хватает времени на выполнение собственных. Если это происходит постоянно, они задерживаются на работе и рискуют выгореть.
«Вчера я был умным, потому хотел изменить мир. Сегодня я мудрый, поэтому меняю себя»
Руми
Дела пойдут не так, возникнут проблемы, планы изменятся, дизайн — тоже. Вы не можете сражаться с реальностью. Приспосабливайтесь к окружающей среде и меняйтесь вместе с ней.
Джуниоры будут бороться с реальностью, сеньоры будут учитывать ее изменения.
Вы не можете предотвратить все проблемы, ошибки и вопросы, которые будут возникать, но вполне реально подготовиться к ним и убедиться, что они не повлекут за собой катастрофу. Разработчик должен быть готов к техническим проблемам.
Автор: Бен Хоскинг
Текст адаптировала Евгения Козловская
Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…
Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…
Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…
В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…
Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…
Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…