Как аргументировать начальству создание существующего проекта заново, с ноля?
Здравствуйте уважаемые коллеги.
Недавно я перешел на работу в интересную мне компанию. Расскажу коротко в чем суть.
Мне нравится и команда, и все остальное. Я готов трудится и решать задачи, приносить пользу себе и компании. Но я не хочу делать костыли, а тем более дорабатывать чужие, у меня есть опыт (на мой субъективный взгляд правильный) и мне хотелось бы его использовать. А еще я вижу будущее - где костыли наложены друг на друга и все трещит по швам, а с меня будут спрашивать и отчитывать за некачественную работу.
Я занимаюсь Front-End разработкой + Back-End по совместительству. В проекте из основных инструментов используется Django и jQuery. Сайт (ссылку не могу дать, чтобы не причинить репутационных рисков для компании) внешне выглядит очень хорошо, но стоило залезть в код - и я ужаснулся... До меня его писал дизайнер, писал так чтобы работало, но не заморачиваясь о поддержке и сопровождении, и ему это удалось. Сайт в целом небольшой - каталог с категориями и товарами, пара страниц, корзина.
Я же получил после него >16,000 строк кода на jQuery, >15,000 строк кода на CSS - и как скрипты так и стили находятся в одном файле (style.css, script.js), все что делается перед заливом на боевой сервер - только минификация пробелов. Ну и Django файлы и приложения с нескончаемым кол-во строк и непонятной логики, где около 50% (что кода, что файлов) написанного вообще уже не используется. Адаптивность задается с помощью javascript магии, никакого Boostrap'a и прочего...
В общем все жутко запутанно, связанно, но ни в коем случае не модульно и не связно. Документация полностью отсутствует, комментарии в коде тоже + в довесок куча было-кода.. Решая каждую тривиальную задачу мне приходится погружаться в изучение созданного велосипеда. Сложилось ощущение что с помощью дрели пытались забивать гвозди (это я про неумелое использование Django). В общем я работаю 3й день и у меня уже нет желания что-либо там ковырять. Так-же я чувствую себя плохо из-за того, что не могу гарантировать качество своей работы.
Начальство в целом понимает, что у них все не очень хорошо с сайтом. Но так получилось, что мой непосредственный руководитель главный дизайнер. Я не хочу быть многословным, и хочу демонстрировать на деле, что я профессионал. Но предлагая решения мне придется их аргументировать. Я планирую делать связку Angular2 + Node.js (для server-side-rendering) + PostgreSQL (возможно еще сделать API не на node а том же самом Django чтобы работало максимально быстро).
У меня имеется несколько вопросов к более опытным и тем кто уже "собаку съел" на этом:
- Как аргументировать и подтолкнуть к решительному шагу начальство которое практически созрело до того что нужно переходить на новый уровень?
- Подойдут ли ассоциации - например про дом без фундамента, где нужно настроить еще этаж перед наводнением. Или про старую дрель которая еле работает, и если ей сверлить бетон это будет жутко долго и неудобно, и не хватит времени чтобы дойти до магазина и купить новую?
- Любой Ваш опыт в подобных ситуациях?
Благодарность тем кто дочитал до конца, и делится своим опытом.
Кто ты такой, чтобы аргументировать?
Для начальства, это главное. Нужно показать свою квалификацию, тогда начальство будет прислушиваться. Я шел к этому три месяца. Причем я не делал это специально. Просто раскапывал быдлокод, задерживался. Иной раз, когда начальник проходил мимо, я показывал ему, что вообще творится и сжато объяснял, как должно быть и почему как есть плохо.
Разгребая лапшу из кода, я нашел несколько серьезных уязвимостей. Скинул ссылки руководству, по которым можно войти под админом с произвольным паролем (именно скинул, чтобы они почувствовали этот кайф). И т.д и т.п.
В итоге руководство пригласило меня и задало вопрос: что делать?
Теперь, у меня появилось право, предложить выкинуть эти испражнения некого мозга.
Нужно понимать, для бизнеса любые "качели" - шанс потерять деньги. Они делали, перед ними отчитывались, получали премии. Но вот пришел Вася...
Теперь мы не просто с ноля все делать будем, мы поменяли технологии, платформы. Появились коврики для мыши, новые компьютеры и отдельный сервер.
Просто будьте собой. Начальство ценит ответственность.
Да. Мое руководство, вообще к программированию отношения не имеет, у него отношение такое: был Петя, кидал в печку тонну угля в день, взяли Васю, он может две закидывать. Т.е. понимание нет вообще, тем не менее, Бог наделил людей разумом, нужно учится договариваться.