Здравствуйте дамы,здравствуйте господа!
Предупреждаю заранее лонгпост!
Это писание расскажет всем,кто только хочет влиться в сферу разработки программного обеспечения и о светлых и о темных сторонах этой сферы,а может и непонятных и даже сложных.
Коротко о себе.Я из СНГ ,веб-разработчик ,веб-дизайнер,C# ,python, и embedded developer.
За последние годы было сделано немало работы в различных направлениях,таких как HMD интерфейсы,различная автоматика и умные решения для дома,в сфере рекламы,голосовых приложениях и много много еще чего.Основное мое направление которое приносит на настоящий момент доход это веб разработка и дизайн.
В общем достаточно предисловий
В свободное время,я как и любой другой человек занимаюсь творчеством.У всех творческий процесс разный.У меня в силу любви к всевозможным техническим решениям это связано опять таки к различного рода разработкам (о которых я возможно расскажу в следующих постах).Естественно обладая желанием (как и любой другой нормальный человек) жить лучше,я пытаюсь привнести в этот мир что-нибудь новое и полезное.Но теперь о стереотипах.
Исторически сложилось так,что непременно на территории всего СНГ считается что разработчики ПО непременно гребут деньги лопатой.Весь вопрос заключается лишь в том,какую лопату вы воображаете,когда мысленно уже гребете деньги.Отчасти таки это так,девелоперы которые в свое время влились в крупную контору(кто по знакомству кто как,вы же понимаете что все что вкусненько делается не без знакомых) или успели уехать за границу по нашим меркам действительно зарабатывают неплохо.Лично для меня неплохо это ОТ 4к$,всё остальное это стандарт.Неплохо зарабатывают и девелоперы умирающих языков,таких как RUBY,все потому,что проект уже существует и разрабатывать с нуля например на node.JS это более объемные вложения,нежели зарплата пусть и дорогая программисту который возьмется за поддержание проекта.Python,GO и прочие варианты сегодня не являются чем то космическим,обучение происходит достаточно быстро lдаж при отсутствии аналитических навыков у индивида.
Вебка - самое востребованное на сегодня на ряду с приложениями.Это и сайты и интернет магазины и веб-приложения типа PWA.Также обладает ценником довольно обычным,но хотябы сопрягается с творчеством.Если чувствуете как выгораете - идите в вебку.Процесс творческий будет явно легче,деньги примерно те же.
В большинстве компания,а особенно западных,непременно существуют различного рода методологии разработки.
Для тех кто в танке вкратце расскажу.
Методологии были разработаны для непосредственно организации процессов разработки.
Мда тавтология однако.
Существует их великое множество однако мы коснемся лишь основных.
Самая лучшая и классная для разработчика но медленная для заказчика пусть и качественная - модель каскадная (Waterfall)
Суть ее в следующем (не понтуюсь выдержка из википедии (гугли: процесс разработки программного обеспечения))
Формирование требований;
Проектирование;
Реализация;
Тестирование;
Внедрение;
Эксплуатация и сопровождение.
Премущества очевидны,ведь всё согласовано и предопределено и задокументировано.
Более того учитывая эту прозрачность,известны как сроки так и стоимость.
Вероятность того,что на вас свалится такое счастье учитывая большинство компаний присутствующих на рынке и список требований заказчика,а крайне мала.
В крупных проектах не встречается однозначно.
Недостатки
Один косяк и откатываться придестя до последней успешной реализации
Не подходит для стартапов
Итеративная разработка.
Суть заключается в выполнении работ с непрерывным анализом
Хорошая тема для стартапов и для проектов с статусом готово.
Позволяет интерактивно вносить правки и получать результат
Все это конечно хорошо,но в основном используется что то другое
.
SCRUM
Тот еще скам.
Не буду сюда пихать википедию а расскажу исходя из своего опыта.
Используется средними компаниями и крупными для достижения результатов малой кровью опять таки со стороны компании.
Работая в такой конторе непременно создается иллюзия единства и братсва,однако на самом деле за этой ширмой идет самая настоящая борьба,
Борьба с собой задачей и командами.
На мой взгляд классный вариант для быстрой реализации MWP (минимально рабочий проект)
Жить в таком режиме на постоянке просто нереально.Это отсутствие размеренной жизни это вечный недосып,это вечные проблемы заказчиков которые должны быть решены первоочередно!
Я работал в таких компаниях но для меня такой вариант на долгострой не подходит.
К слову о деньгах - деньги те же методологии разные.
Выгореть работая по такой методологии обычное дело.И я выгорал.
Если есть возможность не бежать спринты то лучше воздержитесь и ищите другие варианты.
Или же работайте по доске бежите спринт,потом отчеты burndown и всё как выше написано
Я согласился лишь по причине того что на тот момент лучше ничего не было.Чувствуете burnout - бегите!Продукт скорее всего останется дерьмом,а дрючить вас будут постоянно.
Скорее всего вы пока находитесь в этой компании ,вы в этом проекте навечно!
V-Model или Апгрейд каскада
Устранены недостатки касающиеся необходимости отката до успешной реализации
Также все идет своим чередом но включая паралельное тестирование
Использую в своих реализациях для получения действительно хорошего продукта в сочетании с нормальным психологическим здоровьем
XP - экстремальное программирование
Для MWP отличная штука!
Есть идея желание и мысли?Либите сидеть за компом по ночам? То что надо но ненадолго.
Лично я использую данный метод в период инициации проекта.Смотрите - есть идея и видение ее реализации сейчас парочку ночей не посплю зато через несколько дней есть MWP для показа инвесторам
Далее переходим на V-Model и спокойно допиливаем начатое до идеала,потому как единожды что то сделав действительно классно,повторить бывает зачастую сложно и даже невозможно.
Поэтому для меня симбиоз XP + V-Model лучший выбор хотя возможно и странный.
KanBan - хорошая штука на стадии допиливания.
Позволяет учесть все недоработки на пути к релизу и пофиксить их.
Хоть все и делается сумбурно однако процесс прозрачен и цель в отличии от SCRUM определена.
Все доработки выполняются в сочетании с хорошей задокументированностью и методиками позволяющими сократить время,а необходимые стадии фиксируются на доске kanban.
Ну хватит пожалуй методологий и прочей ереси а где хорошо тогда?
На сегодняшний день если вы человек талантливый и умеющий что - нибудь делать,лучший вариант это создание своей фирмы и работа на себя.По началу конечно трудно,но есть гибкость управления своим временем и возможность обрести новые знакомства ,работать совместно с кем-нибудь ну вы поняли,что тут долго говорить.Если вы не обладаете средствами для создания чего-то своего - вам на KickStarter и прочие стартап платформы.Если же идея вас не посетила,ищите команды где вам будет работать в удовольствие.
Программирование на сегодняшний день,если не несет инновации это самая обычная работа как и любая другая,поэтому не стройте иллюзий что вы супер-пупер специалист и по вам плачет Америка.Не плачет и там давно все рассажены по своим местам.Никто там вас ждать не будет.
Да и не только в Америке так,сейчас так везде.Программисты из Индии стоят копейки,имейте это ввиду.