воскресенье, 24 мая 2020 г.

Кто создает программы

Это всегда разное количество людей. Как в продуктовом магазинчике или кафе. Бывает, что есть только владелец: он и бариста, и повар, и продавец, и бухгалтер, и уборщица в одном лице. На найм сотрудников просто нет денег. Или, может, муж с женой исполнили мечту и открыли кафетерий? Тогда у нас уже два человека…

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

Также и в ПО, все зависит в первую очередь от того, сколько у тебя есть денег ¯\_(ツ)_/¯


1 участник. Автор = разработчик


Если у вас есть идея и вы можете сами ее реализовать — флаг в руки! Тогда вы как тот начальник кофейни, сочетающий в себе все и вся. Сами придумали идею, сами написали код. Иногда даже код писать не надо, если хотите сделать что-то простое. Например:
  • Лендинг-страница — это сайт-одностраничник, продающий ваш товар (супер-пупер расческа, курс по программированию, цемент для дачи итд). Такую страничку я сделала сама. Этот курс уже закрыт, но сама идея лендинга в тильде неплохая.
  • Интернет-магазин — сейчас и для них есть стандартные шаблоны. Сделал как нравится и вперед




2 участника. Автор идеи + разработчик


Более частый сценарий — у меня есть идея, но я не программист. Не могу сама сделать сайт своей мечты. Тогда я обращаюсь к мужу / другу / разработчику по найму. Описываю ему свое вИдение, а он уже делает систему.

Пример — Testbase. Всего два участника у сайта: я придумала, как должны выглядеть навыки (рисуем в три колонки, у каждого есть аватарка, внутри описание и ссылки разных типов), а мой друг разработчик его сделал.




Много участников


Когда проект растет, в нем появляется больше людей. Это логично. Можно самому держать кафе, когда к тебе заглядывает по 2 человека в час. Но потом, когда людей приходит больше, один человек просто не справляется. Когда проект растет, в нем появляется больше людей. Посмотрим на примере.

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

Как-то раз подруга попросила Анечку сделать торт на праздник. Торт так понравились гостям, что ей поступили новые заказы. Сначала она успевала все сделать после основной работы в офисе. Но заказов становилось все больше. Анечка смогла уйти с работы и заняться любимым делом.


Ее день начинался в 5 утра: нужно было подготовить пекарню, протереть пыль, помыть полы, выкинуть мусор, отмыть туалет, заказать продукты, встретить продукты, подвести баланс в конце дня.
И все это не считая собственно выпечки и обслуживания клиентов за кассой. Ане приходилось всё это делать самой. Первое время было сложно, но весело. Потом энтузиазм поугас и Анечка поняла, что проще нанять уборщицу и приходящего бухгалтера.

Теперь у Анечки было время на тортики! Она целый день занималась любимым делом. И все было хорошо, клиенты довольны. Они сарафанным радио пиарили ее кафе и посетителей становилось все больше, а очередь длиннее. Теперь клиенты были не слишком счастливы. Ждать пироженку полчаса? Нет, спасибо, в соседнем кафе можно купить быстрее, пусть даже менее вкусную.


Чтобы не терять клиентов, Анечка наняла себе в пару другого кондитера. Сложно начать делегировать, ведь «это же мое детище, никто не сможет сделать лучше меня». А потом становится все легче и легче.


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



Сравним с разработкой ПО:

Ваня — продавец-консультант, но настоящее его призвание — писать код. Приходя вечером домой, он садится за компьютер и делает своего Марио с блекжеком и единорогами.

Как-то раз друг попросила Ваню сделать сайт для своего магазина. Магазинчик имел такой успех, что Ване поступили новые заказы. Сначала он успевал все сделать после основной работы в офисе. Но заказов становилось все больше. Ваня смог уйти с работы и заняться любимым делом.


Его день начинался в 5 утра: нужно было написать требования, согласовать с Заказчиком, потом переделать и еще раз согласовать. И еще, и еще, и еще. А потом проверить, что все работает как надо. И все это не считая, собственно, кодинга. Ване приходилось всё это делать самому.

Первое время было сложно, но весело. Потом энтузиазм поугас и Ваня понял, что проще нанять человека, который будет общаться с заказчиками и формулировать ТЗ (менеджер, аналитик) и второго, который будет за ним проверять код (тестировщика).

Теперь у Вани есть время на код! Он целыми днями разрабатывает новый функционал и отлаживает старый. Клиенты довольны, но их становится больше. И вот уже Ваня просто не справляется. Ему приходится говорить клиентам, что он сможет сделать то, что они просят, только через месяц. Конечно, клиенты не будут столько ждать. Они уходят к конкурентам.


Чтобы не терять клиентов, Ваня нанял себе в пару другого программиста. Сложно начать делегировать, ведь «это же мое детище, никто не сможет сделать лучше меня». А потом становится все легче и легче.



Так что потихоньку количество людей увеличивалось. Росли обороты, прибыль, и вот уже Ваня — Билл Гейтс! Хотя нет, строгие костюмы — это не для него. Филиалы фирмы появились в самых разных городах, а Ваня получил возможность переехать в Тайланд и продолжать писать код, но уже нежась под солнышком и не переживая о том, как оплатить счет за квартиру.




Что делают все эти люди?


Если говорить именно про ИТ-специальности, выделяют несколько основных. Вначале все было просто:
  1. Заказчик — человек с деньгами и идеей, но сам он не сможет ее реализовать
  2. Аналитик — собирает требования. Расспрашивает заказчика, что тот хочет, думает, как это лучше всего внедрить в продукт, пишет техническое задание (ТЗ).
  3. Разработчик — пишет код, реализуя, как он думает, идею Заказчика, а на самом деле ТЗ.
  4. Тестировщик — проверяет корректность работы приложения, ищет баги, предоставляет информацию команде.
  5. PM — project manager, менеджер проекта. Именно к нему обращается Заказчик, а он уже распределяет задачи между исполнителями. Особенно важен, когда исполнителей много =)



Но сейчас роли часто переплетены. Разработчик вполне может протестировать свой код, тестировщик — исправить баг, а заказчик — написать требования.

Плюс в каждой команде может быть свое видение, что входит в обязанности каждой роли. Почитайте книгу «Как тестируют в Google», там и роли у них свои, и определения юнит-тестов (мы о них поговорим в разделе автоматизации).

И никто не отменял более общие роли. Бухгалтер, служба поддержки, уборщик, гендир и так далее. Они могут быть, а могут и не быть. Зависит от бюджета и размеров компании. ¯\_(ツ)_/¯

См также:

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

2 комментария:

  1. О силе опечатки. Как так? "Когда проект растает, в нем появляется больше людей." - в тающем проекте множатся участники?

    ОтветитьУдалить