Как убедить руководство сменить платформу разработки проекта, полностью переписав его?
Здравствуйте!
Обращаюсь с очень сильно волнующим меня вопросом, который казалось-бы не может обсуждаться и требует скорейшего решения, но руководство уперлось рогом и не хочет слушать никаких доводов отвечая мне тем, что предлагаемая платформа не современная и через пару лет о ней все забудут (это не шутка).
Речь о том, что на нашем проекте используется Ruby и все бы хорошо, но ведущий программист игнорирует массу ставящихся задач, либо не справляется с ними и руководство не готово к большим тратам для наема высоквалифицированных профессионалов в данной области, которые смогли бы лучше справляться с нашими задачами, т.к. весь IT-отдел работает удаленно. Соответственно проект на Ruby крайне дорого обходится в поддержке и вместо того, чтобы двигаться вперед мы топчемся на месте уже пол года перекрывая одни и те же баги...
Я хочу провести аудит всего проекта для того, чтобы отдать его на исполнение одному знакомому PHP-программисту, у которого есть опыт серьезных разработок высоконагруженных сервисов, собственный фреймворк базирующийся на Zend Framework и все его проекты, которые я видел (один из которых призер премии рунета в одной из номинаций) сделаны от иголочки.. Да, мы в таком случае фактически будем привязаны с поддержкой к исполнителю, будем вынуждены отдать круглую сумму денег, но это гораздо меньшее зло, если выбирать из того что имеется сейчас, т.к. мы в данный момент несем большие потери в продажах из-за невразумительной работы нашего сервиса.
Помогите пожалуйста, я не знаю как еще воздействовать на руководство, которое глубоко разочаровано вообще во всей IT-сфере и ничему не верит. Я извиняюсь за излишнюю эмоциональность, но так накипело, что я уже готов своих денег вложить в разработку тысяч сто при зп в 30к :(
@natnal агрегатор чартерных авиабилетов + представление собственных регулярных (еще не реализовано), готовых или почти готовых под эту задачу конечно-же нету. Я маркетолог и SEO-специалист, в целом отвечаю за продажи во всех офисах компании, за конверсии, задаю задачи и планы по улучшению юзабилити. Мне будет крайне выгодно наличие качественного сервиса, так как постоянно и тесно приходится общаться с данным сервисом и по сути результат моей работы во многом зависит от качественного исполнения задач IT-отделом и реализации функциональности.
Мне тут подкинули данный рейтинг: www.tiobe.com/index.php/content/paperinfo/tpci/ind...
Думаю, что это поможет при общении с руководством. Он четко отражает то, что руби находится в упадке по-сравнению с технологией PHP.
@OnYourLips в данном случае большинством являлось мнение двух руководителей, один из которых когда-то был тесно связан с руби, как-раз в пик развития и популярности этого языка несколько лет назад и было принято решение о разработке всех сервисов именно на данной платформе. К сожалению руководство тогда ни-с кем не советовалось о том, сыграет ли такое решение положительную роль относительно использования PHP.
Мне кажется руководство право, а вы нет.
Привязываться к одному человеку с самопальным великом по меньшей мере глупо.
Если вам не хватает квалификации отрефакторить проект, то стоит нанять того кто сможет.
Возможно я не прав, но по факту выясняется то, что в данный момент мы на одном человеке и висим. Пытались привлекать других программистов к задаче, никто из них не пожелал остаться видя то, что сделано текущим ведущим программистом. Нанимать пытались, но все попытки были четными (либо не натыкались на действительно хороших спецов). Насчет велика, на одном из сервисов написанных на его основе нагрузка - 30к уников в сутки, все проекты очень хороши в исполнении, каждое решение оптимизируется до предела, разработчик знает php лучше, чем я знаю алфавит и в выгоде его привлечения к разработке я не сомневаюсь.
@Nc_Soft спорно, т.к. на хараде в момент запроса у сервера в распоряжении все ресурсы в отличие от вдс которая могла оказаться зажатой контейнером и не получить так нужные её io-ы. Не один раз видел, как один и тот же сайт работал с шареда лучше, чем с вдс.
Что бы вдс работал лучше, нужно конфиги ручками крутить.
Знакомый диагноз.
Последние года занимался как раз консультированием, на тему того - как лучше и эффективней организовать подобные процессы работы.
Скажу сразу - вряд ли В чего то добьетесь:
1) У Вас не сильная аргументация.
2) Сильная аргументация для бизнеса - это скорость наступления получения приемлемой прибыли.
3) По сути - Вы упираетесь в платформу. Я программист, поверьте, Вы подняли вопрос из разряда холивара. Я видел одинаково удачные проекты, что на разных платформалх, причем, на некоторые программисты учились с нуля.
4) Уже, если честно, очень поздно решать вопрос смены платформы - очень много денег потратите на то чтоб поменять и перестроить работу.
И самое главное, когда надо было решать эту проблему:
1) В самом начале.
2) Не привлекать стадо фрилансеров
3) Лучше нагнать в офис 2-3 программиста за ЗП + чтоб среди них был один самый опытны - он же постановщик. В таком ключе, не важно, какая платформа - выигрывают все по деньгам, по срокам и, самое главное, по срокам наступления окупаемости. + у Вас всегда под рукой будут разработчики, которые смогут допиливать проекты. Моя практика показывает, что, обычно такая конфигурация работает эффективнее чем 5-6 фриллансеров и один программист на предприятии, который сводит все это в одно.
Вот на начальной стадии, лучше прогибать такой вариант, с финансовыми раскладами.
Спасибо за рекомендацию, я не столько в смену платформы упираюсь, сколько в привлечении того, кто однозначно справится с задачами. В данный момент у меня есть только один хороший кандидат, но он пишет на другой платформе.. Если-бы он был гуру в Ruby, все было бы куда проще. И да, я в панике от мысли о том, что пытаться что-либо менять очень поздно. Это было осознано еще как минимум год назад. Насчет штата будем думать, я с вами согласен насчет старшего + помощников, особенно с учетом того, что как показывает практика - нахождение в непосредственной близости от разработчиков дополнительно мотивирует их заниматься работой в рабочее время..
Ищите спеца по Ruby в офис - получите двух программистов. Выигрыш: 1 опытный Ruby программист + 1 Ruby программист - способный выполнять задания первого. Думаю, такой вариант, при условии, что Вы сделаете выкладки по деньгам и обоснуете увеличение скорости разработки, более заинтересует Ваше начальство.
Если найдете опытного программиста Ruby, поверьте - скорость и качество разработки вырастет в разы.
@nelis как я понимаю, а автора опытный программист все и завалил. Если же под опытным программером понимается новый человек, то текущий разработчик весьма вероятно будет подвергать сомнению все работу новичка и даже саботировать работу. Поэтому и скорость и качество врятли вырастут.
@alekciy согласен, Вы верно подметили - и вероятность такого исхода событий большая. Зависит от того как грамотно все это сделать. В принципе, если руководство понимает, что текущий программист - не в кондиции, все попытки саботирования будут четны. Ну и предварительные работы надо провести. Это тоже своего рода проблема, но решаемая.
Вы не сможете убедить руководство, что нужно сменять платформу или будет "миссия невыполнима". Если такая бадяга творится, заставьте разработчика на все баги писать тесты.
Если это браузерный сервис, юзайте selenium, контролируйте успешность прохождения и показательные ли тесты. Сделайте систему CI (Jenkins как пример) и получается, что платформа будет той-же, кол-во багов будет сокращаться, но по мере покрытия тесатми.
Переписывать нет никакого смысла. Есть смысл писать новые компоненты системы на новом языке, но существующие нет. И у меня в голове не укладывается, как PHP программист может быть продуктивнее Ruby программиста ? У Ruby полно плюшек для очень быстрой разработки. У вас там Rails или что ?
@OnYourLips именно, класс упомянутого мной PHP-разработчика невероятно высок и у него есть свои готовые наработки, которые значительно ускоряют процесс разработки сервисов любой сложности. Про плюсы в скорости разработки на RoR мне тоже говорили, но к сожалению по ходу работы я этого преимущества совсем не вижу,
А мне можете код контроллера показать, уж большо интересно?.. Я перешел с PHP на Ruby и скорость работы выросла засчет готовых решений сразу. Желания перейти обратно никогда не возникало.
@kryoz да, до него. Но у руби ещё один огромный плюс... удобно тесты писать. Я пытался написать пару тестов на PHP после руби, это жутко неудобно... очень жутко, синтаксис самого языка напрягает, слишком многословен. К примеру, C++ тоже многословен, но оно того стоит... а PHP нет, не стоит.
У меня сложилось впечатление после прочитывания комментариев, что денег у компании сейчас мало, руководство зажимается. Так зачем же сейчас менять платформу, переписывать проект фактически с нуля, если это приведёт к ещё большим издержкам? Ну допустим, вы решили переписывать. Какова оценка трудоёмкости задачи по времени? Будут ли при этом ещё написаны тесты? Есть ли они сейчас? Если нет тестов, то на определенном уровне сложности проекта пробуксовка неизбежна. Изменение кода будет вести к непредсказуемым последствиям в поведении приложения.
Как уже заметили, надо либо подстегнуть мотивацию разработчика, либо менять его. К слову, зарплата в 1000$ для хорошего разработчика это не деньги, ради которых стоит напрягаться. Наверняка есть ещё другие проекты и он отдаёт приоритет тому, где больше платят или более интересно.
Плохой сервис => мало конверсий => низкий уровень продаж => нет денег => плохой сервис. Это замкнутый круг, который можно порвать только серьезной фин. стимуляцией, это понимают все, но для такого шага нужны исключительные доводы в пользу гарантии того, что наш действующий замкнутый круг перевоплотится с вкладом денег в: хороший сервис => много конверсий => высокий уровень продаж => есть деньги.
Оценка по времени есть очень приблизительная и равняется она от 3-х месяцев до 5-ти. В эти сроки входит и нагрузочное тестирование API и всего прочего. И я бы сказал, что эти сроки для проекта данной сложности даже малы, но это заслуга уже имеющихся наработок специалиста, которого я желаю привлечь к работе.
Насчет 1000$ полностью с вами согласен, особенно для хорошего RoR-специалиста это вообще не деньги. Но тут для ведущего программиста опять работает магический замкнутый круг и кто-то должен сделать первый жертвенный шаг. Либо разработчик (если вообще в силах), либо руководство.
@mittus я бы потратил при необходимости деньги на написание тестов и при необходимости рефакторинг кода для них. А уж будет ли разработчик в этом заинтересован, способен ли - дело десятое. Переписывать на другом языке - более радикальное средство и если опять же не покрыть тестами код, то рано или поздно придёте к такому же результату, как и сейчас. Нельзя завязывать свой проект исключительно на крутости разработчика. Завтра ли, через 5 лет, он покинет вас. Кто будет разбираться в коде в такой степени, чтобы не сломать что-то нечаянно?
Уже были четные попытки в этом направлении, чтобы сторонний программист работал, нужно сидеть с ним рядом, но поскольку руководство придерживается политики о том что IT-шники должны работать удаленно, такой вариант не работает. Все IT-шники которых мы нанимали скоропостижно покидали проект, понимая то, какой им требуется проделать объем работ для приведения проекта в порядок и проводя колоссальный труд подчищая за текущим ведущим...
@omun вариант с самотеком длится уже пол года, фактически то, что происходит - и есть самотек, только крайний в этой ситуации - конечно же я, так как я отвечаю за продажи. :)
Сделайте не техническую, а финансовую раскладку. В духе: нам нужна фича Х, она даст Y денег дохода. Если мы работаем с Васей, то для изготовления фичи X нужно Z денег, а если мы начнем работать с Петей, отдадим W денег. Шанс убедить есть если:
Y>Z>W.
Но я сильно сомневаюсь, что Z>W. Не говоря уже о том, что сразу возникает вопрос, кто ответит баблом если убедить получиться, а по факту отношение Y>Z>W соблюдено не будет.
Если говорить о долгосрочной перспективе, то получается, что именно Y>Z>W, но генеральный в это не верит, думая что все IT-шники будут топтать проект на месте, то-есть по мнению руководства X>Y будет по определению...
@mittus тогда шансов убедить нет. Только личным примером, только личными деньгами. Берем, финансируем PHP-ка дабы он сделал фичу Х. Она дает денег Y. Все, аргументировать и убеждать не нужно, все покажут продажи. Готовы на такое?
что я уже готов своих денег вложить в разработку тысяч сто при зп в 30к :(
Желание говорящее об откатах, а? ;)
Потому что я в жизни не поверю, что наемный работник отдаст конторе 100 круб своих кровных сбережений (ибо при зп в 30круб это могут быть только сбережения, P.S. деньги взятые в кредит тоже сбережения).
Я работаю в этой компании уже 5 лет и у понимая, насколько проще будет жить с нормальным сервисом (а я маркетолог и SEO-специалист), я понимаю что либо работы будет в 3 раза меньше, либо работая можно будет прогрессировать, а прогресс несомненно повлияет в итоге и на мою зп, соответственно вкладывая свои личные сбережения я это готов сделать из личной выгоды без откатов, свой откат я получу по такой схеме на долгосрочной перспективе :)
Полностью переписывать проект не самое быстрое решение проблемы. Сначала нужно восстановить доверие руководства. Для этого найдите узкие места и решите их самым простым способом. Сложно сказать что это будет за решение, но оно должно лежать в диапазоне от покупки (аренды) дополнительного железа до переписывания или доработки отдельных подсистем (если это возможно). Многие проблемы производительности (если невразумительная работа связана с ней) можно решить качественной оптимизацией БД, наймите классного специалиста по БД на пару недель.
Пока руководство не будет вам доверять, убедить его в чем-то вам не удастся. Для руководства уход в переписывание с нуля выглядит сейчас как откладывание решения в долгий ящик.
То, что проект начали разрабатывать на текущей платформе - являлось ошибкой и руководство это понимает видя то, во что встает поддержка и доработка проекта, причем доработка эта длится бесконечно. Пробовали сменить дизайн, отдали кучу денег, написали кучу прототипов, но программа до сих-пор не соответствует техническому заданию, прошло пол года с того момента, когда все должно было быть готово. Руководство не столько ко мне недоверие испытывает, сколько к исполнителям, хотя моих косяков по ходу всех этих феерических событий тоже хватало. БД у нас используется mongoDB, серверных мощностей достаточно для работы сервера, но большинство вещей влияющих на конверсии и внутреннюю оптимизацию в плане SEO по факту не реализовано, задачи пылятся в задачнике месяцами при том, что о них ежедневно идут напоминания и исполнителям и руководству. Это что-то вроде общего глубокого разочарования руководителей в IT-сфере, и я даже не знаю, с какой стороны подкатить. Так как делая хорошо свою работу ее результаты все-равно упираются в работу сервиса, а насчет переписи с нуля - специалист которого я хочу привлечь действительно достойный и справится с задачей за 3-4 месяца работы. Я это знаю, понимаю и уверен в этом, но руководству этого не докажешь. Хотя работать можно по договору с указанием сроков и ответственности, может это сыграет роль гаранта.. Но как к этому подвести, я не знаю