Connect with us

Разработка

Правильный разработчик

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

AppTractor

Опубликовано

/

     
     

Илья Лебедев на своем сайте поделился своим представлением идеального разработчика. С его разрешения публикуем эту статью.

162906_102455616495620_4479053_n

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

Итак.

Правильный разработчик понимает, зачем он нужен

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

На главной нужен баннер с новой услугой? Наблюдать за конкурентами? Снизить затраты на облако? Перенести диван? Проконсультировать клиента? Разработчик сделает. Подобные просьбы вызваны проблемами. Проблемы у бизнеса. Бизнес — король. Если он просит разработчика — разработчик делает. Разбирается в сложной админке, парсит нужные страницы, переезжает на другой хостинг, помогает с перестановкой.

В этом разница между разработчиком и правильным разработчиком — второй понимает, что он отвечает не за код, а за продукт.

Правильный разработчик проявляет инициативу

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

На главной поползла вёрстка? Контакты устарели? Медленно работает? Неочевидное поведение? Риск для данных пользователя? Команда не успевает в срок? Разработчик обратит на это внимание. Не потому что он злорадный выскочка, а потому что ему не всё равно.

То же касается и проблем, которые сам разработчик и создаёт. Он громко объявит о своей ошибке, починит, а потом — расскажет, почему такое произошло и сделает так, чтобы оно не повторялось.

Правильный разработчик умеет писать код

Не в смысле юнит-тестов, комментариев, принципа единственной обязанности и DRY, это умеет и обычный разработчик.

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

Поэтому правильный разработчик так ценен — он постоянно воюет с подобными проблемами. В результате получается [замечательный] продукт.

Правильный разработчик умеет общаться

Такой разработчик понимает, что написание кода — побочный эффект работы. Главная цель — решение бизнес-проблем.

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

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

Поэтому такой разработчик умеет общаться — он способен получить ответ, продать решение и объяснить проблему. Он понятно расскажет, подробно распросит, а вероятность непонимания сведёт к нулю.

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

Комментарии
Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
Advertisement
8 комментариев

8 Comments

  1. Maxim

    21.04.2016 at 09:12

    Обычный разработчик прочитал и закрыл.

  2. grandundegraund

    21.04.2016 at 11:12

    Промывание мозгов? Зачем? Сделать из разработчика менеджера, что-бы можно было уволить менеджера, и объединить в разработчике две обязанности? Статья рассчитана даже не на разработчика, а на “лох’а”, он скушает…

    • Artem Voronov

      21.04.2016 at 16:25

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

      • grandundegraund

        21.04.2016 at 16:52

        Вы пробовали код написать “не включая мозг”?
        Или писать код думая о том что еще стол тащить надо?
        Причем тут бизнес до перетаскивания столов?
        Конечно, бизнес желает, что-бы один сотрудник делал все, да еще и за 1000 грн/год. Но качество бизнеса от этого не улучшится, каждый должен заниматься своим делом, и это будет оптимальным решением “для бизнеса”. Это 10 лет назад, IT был и курьером и грузчиком, сейчас немножко поменялось все. Только в гос. учреждениях наверное осталось, что сис. админ – и писатель, и читатель, и с бубном плясатель!

You must be logged in to post a comment Login

Leave a Reply

Разработка

Мобильная разработка в “Билайн”: архитектура, инструменты и цели

Софт поглощает мир, как обещал еще в 2011 году Марк Андриссен. “Билайн”, подобно многим другие технологическим компаниям, из оператора сотовой связи превращается в софтверную компанию, оперирующую большими данными и кодом. И после долгих лет сотрудничества с аутсорс разработчиками компания открывает собственный отдел полного цикла разработки мобильных приложений. Он не просто будет заниматься разработкой приложений, но и наращивать технологические компетенции и применять их к собственным проектам и предоставлять всем, кто будет базироваться на технологиях “Билайна”.

Beeline

Опубликовано

/

Автор:

Разработка изнутри

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

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

И так, в “Билайн” создаются собственные объединенные команды — управления разработкой приложений, iOS, Android, Backend, QA — и мы активно набираем работников во все департаменты.

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

Стек

Команда разработчиков будет осуществлять полный цикл работ, включая проектирование, написание кода,  развитие бэкенд-систем, тестирования, а во внутренней инфраструктуре компании можно будет опираться на уже полученные результаты с ИИ и работать с Big data.

Технологии мы выбирали сами, этот стек был принят в ходе дискуссии ведущих разработчиков:

  • Архитектура: Uber RIB
  • iOS: Swift 4 и Objective-C, RxSwift, Alamofire
  • Android: Kotlin и Java, Retrofit 2, RxJava2 + RxAndroid, JodaTime, Moxy, Dagger2
  • Python для бэкенда
  • Appium, TestFairy, Crashlytics, Postman, LoadRunner, Jira + Confluence, TestLink для аналитики, тестирования и управления проектами

RIB: кроссплатформенная архитектура, придуманная и используемая в компании Uber. Причин ее выбора несколько.

  1. Унифицированная архитектура для обеих платформ (iOS и Android), которая позволяет командам обоих направлений работать в единой среде, оперируя одними и теми же архитектурными компонентами.
  2. RIB позволяет вести работу независимыми командами над одним проектом, не создавая помех друг другу (для Uber, например, это сотни инженеров, работающих одновременно над одним проектом). На данный момент наше приложение состоит из трех независимых модулей, разделенными по типам абонентов, работа над которыми ведется совершенно разными командами.
  3. В отличие от привычных для мобильного разработчика архитектур, вся структура приложения представляет из себя дерево состояний, которое выстраивается исходя из бизнес-логики, а view-слой следует за ней.

Больше о RIB-архитектуре вы можете прочитать тут: https://github.com/uber/RIBs

Документация: https://github.com/uber/RIBs/wiki

Туториалы: https://github.com/uber/RIBs/wiki

Swift: мы не видим смысла начинать новые и долгоживущие проекты на Objective-C.  Swift активно развивается, еще более активно поддерживается и продвигается самой Apple, код получается нагляднее, лаконичнее и безопаснее. Также, в последнее время, становится легче найти iOS-разработчика, пишущего на Swift, чем на Objective-C и в ближайшее время этот разрыв будет увеличиваться. Хотя, мы считаем, что в данный момент времени знание Objective-C — необходимость для хорошего iOS-разработчика.

Разделение и взаимосвязь Kotlin и Java обоснованы такими же причинами.

Текущее приложение, в большей его части, написано на Objective-C и Java и нам важно понимать устройство проекта, обращаться к нему, чтобы увидеть “подводные камни” — мы стараемся как раз быть носителями экспертизы в каждом из языков для обеих платформ.

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

Для чего это все

В первую очередь команда мобильной разработки занимается перезапуском мобильного приложения “Мой Билайн” — у него уже более 4 миллионов пользователей и настала пора изменений.

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

Задача номер один для команды сейчас — выпустить обновленное приложение “Мой Билайн”. Дальше все будет ограничено только нашей фантазией — нас ждут внутренние проекты, приложения для абонентов, приложения для всех, кто использует среду, большие данные и большие возможности “Билайн”.

Присоединяйтесь!

 

Комментарии
Продолжить чтение

Новости

Digest MBLTdev: Новости для iOS разработчиков №182

В течение недели топовые iOS-разработчики Руслан Гуменный, Саша Черный и директор по продукту VK Иван Козлов собирают для вас интересные и полезные ссылки на статьи, необходимые для прочтения каждому начинающему и опытному разработчику. В каждом выпуске – новости, коды, инструменты, дизайн и прочее.

e-Legion

Опубликовано

/

Автор:

Дайджест заботливо напоминает вам о необходимости отпуска. Ходить в отпуск тоже нужно уметь: подготовить дела до, назначить «заместителей», предусмотреть канал аварийной связи, плавно вернуться к после… Мало кто так умеет. Обычно всё дёргано, скомкано. Зачем так? Не надо.

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

Да-да, внимательные старожилы этой рассылки скажут, что мы уже писали об отдыхе. А мы знаем. И пишем ещё. И ещё будем. И бархатный сезон скоро.

1

Билеты на MBLT DEV 2018

Ещё есть время купить билет по сниженной цене на MBLT DEV 2018. Регистрируйтесь сегодня до 00:00.

MBLTDEV.RU

Melbourne teen hacked into Apple’s secure computer network, court told

Подросток из Австралии получил доступ к одной из внутренней сетей Apple и скачал около 90 Гб данных. Хочется, конечно, подробностей: что именно за сеть, в чём была уязвимость, что конкретно скачал… А то как-то скучно. Нам вряд ли расскажут. Как будто это игра и спортивный интерес, никуда данные не ушли. Единственная яркая подробность — название папки, в которой товарищ хранил скачанные данные: hacky hack hack. Ммм… Молодец.

WWW.THEAGE.COM.AU

App Store

Apple выложила график с информацией о том, что на 31 мая 2018 года iOS 11 установлена на 81% устройств, а iOS 10 — на 14%. Данные с одного проекта в Яндексе показывают: 82% — iOS 11, 12% — iOS 10 и 2% — iOS 12.

DEVELOPER.APPLE.COM

4

An iOS alert view with a text field and a “smart” OK button

Ole написал UIAlertController с валидируемым полем ввода и кнопкой OK, которая становится enabled только при выполнении условия. Условие может быть задано предикатом, регуляркой, проверкой на пустоту или отсутствовать. Кода мало, весь код есть в gist.

OLEB.NET

Running UITests with Facebook login in iOS

Готовый тест для логина в FB. Можно создать в настройках приложения специального тестового пользователя! Если вы не знали, стоит посмотреть хотя бы это. Есть неоднозначные места типа использования координат для работы с некоторыми полями, но про них в статье тоже есть ремарка.

HACKERNOON.COM

Hashable / Hasher

Самостоятельная реализация hash, во-первых, не всегда нужна, во-вторых, имеет много нюансов. Очередной заход по излюбленной теме на собеседованиях найдёте в статье Мэта.

NSHIPSTER.COM

Why learn algorithms?

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

MACHINETHINK.NET

Triple_Fetch Analysis and iOS 10.3.2 Sandbox Escape

Разбор эксплоита для iOS 10.3.2, который даёт максимальные права вашему приложению.

JAQ.ALIBABA.COM

2

Knil

Штуковина для тестирования Universal Links. Парсит AASA-файл. А что, такое можно и в отладочный экран своего приложения добавить, чтобы облегчить QA-задачу.

GITHUB.COM

CocoaHeads + MBLT DEV 2018: iOS meetup

29 августа, 19:00, Петербург. Три доклада, дискуссия за поеданием пиццы и традиционная викторина от CocoaHeads с крутыми призами от конференции MBLT DEV.

ELEGION.TIMEPAD.RU

16f106c0eaa442b184873f18f426a916

Долгая история ноутбуков Apple: от Macintosh Portable до наших дней

Хотя бы полистать картиночки. Кстати, в Москве есть частный музей техники Apple. А ещё есть музей у Яндекса. В той же Москве. Техники Apple всего ничего, но iMac есть.

APPLEINSIDER.RU

Предыдущие выпуски Digest MBLTDEV и подписка доступны на официальном сайте. Всё бесплатно и никакого спама, честно!

Комментарии
Продолжить чтение

Разработка

Интересные материалы для разработчика мобильных приложений #226 (13-19 августа)

На этой неделе мы снова делали приложения для Ассистента Google, обсуждали Google Pay и плохих дизайнеров, разрабатывали смешанную реальность и PWA, погружались в геймдизайн и маркетплейс продуктов. Все это и многое другое в нашем новом дайджесте!

AppTractor

Опубликовано

/

Автор:

Actions on Google: пишем простое приложение для Google Ассистента на Dialogflow и Cloud Functions for Firebase

В этой статье мы рассмотрим создание экшена в Actions on Google, разберём процесс извлечения сущностей и интентов из фраз в Dialogflow, узнаем, как писать обработчики извлеченной информации и работать с сетью в Cloud Functions for Firebase.

Как писать программы на стыке мобильной разработки и алгоритмов? Конкурс и истории Яндекса

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

iOS

Android

Разработка

Аналитика, маркетинг и монетизация

AI, Устройства, IoT

 Вакансии

Комментарии
Продолжить чтение

Новости

Интересные материалы: 16.08

В дайджесте две статьи от Яндекса, музыка Super Nintendo и рассказ о бедах разработка сайтов для взрослых.

AppTractor

Опубликовано

/

Автор:

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

Комментарии
Продолжить чтение

Реклама

Наша рассылка

Нажимая на кнопку "Подписаться" вы даете согласие на обработку персональных данных.

Вакансии

Популярное

X
X

Спасибо!

Теперь редакторы в курсе.