Первоначально опубликовано на afterecon.com

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

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

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

Ниже приведены пять вещей, которые вы можете сделать уже сегодня, чтобы повысить прибыльность своей фирмы. В основном я буду углубляться в первые три:

  1. Используйте современную высокоуровневую структуру
  2. Используйте библиотеки компонентов
  3. Используйте другие low-code решения
  4. Анализировать все
  5. Используйте облачного провайдера

1. Используйте современную высокоуровневую структуру

Большинство современных фирм уже делают это. В частности, вы должны использовать один из «Большой тройки»: Angular, React или Vue. Зачем использовать современную высокоуровневую структуру? Потому что современные высокоуровневые фреймворки поддерживают компоненты, которые являются ключевым фактором эффективности.

Фреймворки высокого уровня содержат API и соглашения, которые позволяют разработчикам делать большинство вещей, которые потребуются большинству приложений, за очень короткий период времени. В частности, «большая тройка» также хорошо известна и широко используется в сообществе разработчиков. Поскольку они широко используются, существует больше разработчиков, знакомых с этими технологиями. Это снижает трудозатраты.

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

  1. Форматирование
  2. Горячая и/или живая перезагрузка
  3. Интеллектуальное завершение кода
  4. Линтинг
  5. Путешествие во времени

2. Используйте библиотеки компонентов

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

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

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

  1. Библиотеки компонентов Angular [Электронная таблица]
  2. 11 библиотек компонентов Angular, которые вы должны знать в 2018 году
  3. Угловые расширения Amexio
  4. Лучшие библиотеки и фреймворки компонентов React UI · Pt. 2
  5. Компоненты и библиотеки React
  6. Лучшие фреймворки и библиотеки компонентов пользовательского интерфейса Vue.js, часть 2

Вы также можете взять части своих текущих проектов и превратить их в общие компоненты, как описано здесь.

Одно важное замечание: недостаточно предоставить вашим разработчикам доступ к этим библиотекам компонентов. Вы ощутите наибольшую эффективность в своем жизненном цикле разработки программного обеспечения, когда ваши разработчики будут обращаться к одним и тем же библиотекам компонентов. Знакомство с тестировщиками может даже помочь, поскольку они могут писать тестовые случаи по компонентам, которые применяются к нескольким приложениям или проектам.

3. Используйте другие решения с низким кодом

Зачем использовать существующий компонент, если можно использовать существующее приложение? WordPress — это система управления контентом с открытым исходным кодом и множеством бесплатных или платных плагинов и тем. Его можно использовать для создания основы любого веб-сайта. Веб-сайты, созданные с помощью WordPress, часто дешевы и быстро развертываются.

Таким веб-сайтам часто не хватает индивидуального внешнего вида. Это можно изменить, внеся минимальные изменения кода в приложение WordPress. Идея взять готовый или почти готовый продукт и отшлифовать его с минимальными изменениями кода называется разработкой с низким кодом. В наши дни также существуют платформы для разработки с низким кодом, которые включают редакторы графического интерфейса и другие приятные мелочи, но эти функции не связаны с основным бизнес-кейсом для разработки с низким кодом, и подписка на эти платформы может привести к чистой стоимости.

Аутсорсинг можно рассматривать как еще одну реализацию разработки с низким кодом. Аутсорсинг может относиться к сложному заключению контрактов с третьей стороной или к чему-то простому, например, заплатить кому-то на Fiverr за разработку макетов. Здесь есть очевидная проблема с качеством, но я думаю, что многие люди будут удивлены уровнем качества, которого некоторые фрилансеры могут достичь по низким ценам. Это становится особенно привлекательным вариантом, если у вас нет штатных дизайнеров, потому что с фрилансерами иногда легче работать, чем с крупными сторонними корпорациями.

Хотя я большой поклонник WordPress, на риторический вопрос о том, почему кто-то когда-либо будет использовать полностью индивидуальное решение вместо решения с низким кодом, есть несколько хороших ответов:

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

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

4. Анализировать все

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

  1. Отслеживайте удовлетворенность клиентов
  2. Отслеживайте удовлетворенность сотрудников
  3. Следите за продуктивностью разработчиков
  4. Тестовый инсорсинг и аутсорсинг

Вот три способа выполнить эти четыре задачи:

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

Неудовлетворенность сотрудников приводит к высокой текучести кадров и снижению производительности. Удовлетворенность клиентов означает увеличение продаж. Удовлетворение посетителей сайта означает увеличение продаж.

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

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

3. Ранее мы говорили об аутсорсинге, но подумайте и об инсорсинге.

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

Возьмите все эти данные и проанализируйте их с помощью регрессионного анализа или других средств. Если у вас есть штатный разработчик Python или, по какой-либо причине, разработчик R, они могут сделать это за вас. В противном случае подумайте о приобретении статистического программного обеспечения, такого как STATA или SPSS.

5. Используйте облачного провайдера

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

Это была хорошая идея еще в 2010 году, когда я начинал, и мне лень переключаться прямо сейчас. Надеюсь, я скоро перейду на AWS и рекомендую вам сделать то же самое. Облачные провайдеры в целом и Amazon Web Services в частности предлагают удивительную функциональность по низким ценам. Мол, начиная с бесплатного.

Один действительно дешевый вариант — реализовать бессерверную архитектуру. Остерегайтесь, что безслужение требует некоторых технических ноу-хау. Бессерверная архитектура — это дешево, а не просто. К счастью, все современные высокоуровневые фреймворки Большой тройки, упомянутые выше, поддерживают рендеринг на стороне сервера. Удобный способ запустить бессерверный веб-сайт — выполнить сборку на стороне сервера и загрузить выходную папку dist на S3 с помощью простого инструмента S3 Browser.

Если вы хотите попробовать это по-быстрому, клонируйте репозиторий Ella Framework и выполните ng build. Это выполнит сборку на стороне сервера для базового приложения Angular, которое вы затем сможете загрузить на S3.