как доходчиво объяснить менеджеру?
От: consign  
Дата: 22.02.16 08:03
Оценка: +1 -1 :))) :))) :))
И снова мне подкинули проект "совсем немного доработать".
Как только я услышал эту фразу, сразу закопошились нехорошие предчувствия. И они опять не обманули.
Код в лучших традициях подхода "меня укусил Гамма" — куча классов с одним методом, каждый вызывается строго через интерфейс и создается через абстрактную фабрику (при том, что у всех интерфейсов ровно по одному наследнику), визиторы, DSL на основе YAML, 30 пакетов с фреймворками непонятного назначения, и так далее.
Нормальной обработки ошибок нет, если что пошло не так — дохнет напрочь.
И всё это при том, что вся функция проги — периодически дергать страницу по HTTP, передавая ей аргументы из конфига, и если ответ не совпадает с заданным — дернуть другую страницу. Всё.

Теперь сижу, не могу определиться — ржать или плакать.
Сакраментальный вопрос — как объяснить менеджеру этой чудо-программы, что код — полное говно, и по хорошему это всё надо выбрасывать на помойку? Но так, чтобы он с программистом не уперлись рогом и не записали меня в вечные враги?
Отредактировано 22.02.2016 8:23 consign . Предыдущая версия .
Re: как доходчиво объяснить менеджеру?
От: velkin Удмуртия http://blogs.rsdn.org/effective/
Дата: 22.02.16 08:27
Оценка: -4
Здравствуйте, consign, Вы писали:

C>Сакраментальный вопрос — как объяснить менеджеру этой чудо-программы, что код — полное говно, и по хорошему это всё надо выбрасывать на помойку? Но так, чтобы он с программистом не уперлись рогом и не записали меня в вечные враги?


А вы видели код не говно ?
Автор:
Дата: 12.01.13

В ИТ около 15 лет, был ~6 конторах, ни разу не слышал чтобы хоть раз чей-нибудь код называли хорошим, только и слышно здесь говно, там говно.
Даже нет у него в отличие от говнокода названия своего, там вареньекод, медокод.
Если знаете какой-нибудь опенсорс или есть свой код в интернете пришлите ссылочку посмаковать, хоть раз взглянуть на это чудо которое не назовут говном.

Re[2]: как доходчиво объяснить менеджеру?
От: consign  
Дата: 22.02.16 08:38
Оценка: 1 (1) +2 -1
Здравствуйте, velkin, Вы писали:

V>А вы видели код не говно ?
Автор:
Дата: 12.01.13


Видел, но редко. Да и говно бывает разной степени ядрености. В каких-то проектах только в некоторых местах воняет, а где-то — одно сплошное говно.
Re: как доходчиво объяснить менеджеру?
От: andrey.t  
Дата: 22.02.16 08:42
Оценка: +5
Здравствуйте, consign, Вы писали:

C>Сакраментальный вопрос — как объяснить менеджеру этой чудо-программы, что код — полное говно, и по хорошему это всё надо выбрасывать на помойку? Но так, чтобы он с программистом не уперлись рогом и не записали меня в вечные враги?


Не говори, что код — говно (на твой взгляд). Это сразу настраивает на негатив и твой собеседник встанет в позу даже если ты прав на 146%. Говори, какие есть возможности по улучшению функционала, покрытия тестами итд итп.
Re[2]: как доходчиво объяснить менеджеру?
От: consign  
Дата: 22.02.16 08:46
Оценка: +1 -2 :)
Здравствуйте, andrey.t, Вы писали:

AT>Не говори, что код — говно (на твой взгляд). Это сразу настраивает на негатив и твой собеседник встанет в позу даже если ты прав на 146%.


Это понятно.

AT>Говори, какие есть возможности по улучшению функционала, покрытия тестами итд итп.


Выбросить 90% кода, остальное переписать. Но не сработает — упрутся.
Re: как доходчиво объяснить менеджеру?
От: Andrew.W Worobow https://github.com/Worobow
Дата: 22.02.16 08:46
Оценка: +2 -3 :))) :))
Здравствуйте, consign, Вы писали:

C>Теперь сижу, не могу определиться — ржать или плакать.


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

Приходилось видеть ситуацию, причем с двух сторон "конфликта", когда один кричал "Что это за бред!", на вот такое :

#define _15_ 15

А другой объяснял что это просто недописанный кусок. И что далее надо эту константу как-то обозвать, но пока лень придумывать имя, так как сроки горят!
Не все кто уехал, предал Россию.
Re[2]: как доходчиво объяснить менеджеру?
От: consign  
Дата: 22.02.16 08:51
Оценка: +4 -1
Здравствуйте, Andrew.W Worobow, Вы писали:

AWW>Очень часто новые люди "смотряшие" старый код не учитывают, что это может быть "заготовка" под вырост.


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

AWW>Приходилось видеть ситуацию, причем с двух сторон "конфликта", когда один кричал "Что это за бред!", на вот такое :

AWW>#define _15_ 15
AWW>А другой объяснял что это просто недописанный кусок. И что далее надо эту константу как-то обозвать, но пока лень придумывать имя, так как сроки горят!

Это действительно полный бред. На объяснения он уже потратил больше времени, чем ушло бы на придумывание внятного имени.
Re[3]: как доходчиво объяснить менеджеру?
От: andrey.t  
Дата: 22.02.16 08:53
Оценка: +6 -3
Здравствуйте, consign, Вы писали:

C>Выбросить 90% кода, остальное переписать. Но не сработает — упрутся.


То есть у тебя нет причин для изменения кода кроме "оно говно"? Тогда менеджер будет прав на все 100, если не послушает такое объяснение.
Re[3]: как доходчиво объяснить менеджеру?
От: Andrew.W Worobow https://github.com/Worobow
Дата: 22.02.16 08:55
Оценка: +2
Здравствуйте, consign, Вы писали:

AWW>>Очень часто новые люди "смотряшие" старый код не учитывают, что это может быть "заготовка" под вырост.


C>Ежу понятно, что вся эта развесистая архитектура создана "под вырост".

C>Проблема в том, что
C>а) сделано много совершенно ненужного
C>б) не хватает нужного, и прикрутить его — крайне геморно

Если проект маленький, то возможно вы правы, а если большой то скорее всего вы просто не поняли "всех задачи".
Это нормально. Умение ясно объяснить задачи, так чтобы слушатель понял "все", довольно редкий скил. Обычно все тонут в словах, за которыми слушатель теряет мысль.

AWW>>Приходилось видеть ситуацию, причем с двух сторон "конфликта", когда один кричал "Что это за бред!", на вот такое :

AWW>>#define _15_ 15
AWW>>А другой объяснял что это просто недописанный кусок. И что далее надо эту константу как-то обозвать, но пока лень придумывать имя, так как сроки горят!

C>Это действительно полный бред. На объяснения он уже потратил больше времени, чем ушло бы на придумывание внятного имени.


Вы просто не сталкивались с ситуациями когда кодят в оставшиеся пять дней до срока сдачи, и так в течении двух недель до этого. Ну по 12 часов в день.
Не все кто уехал, предал Россию.
Re[3]: как доходчиво объяснить менеджеру?
От: UVV Великобритания  
Дата: 22.02.16 08:57
Оценка: +2
Здравствуйте, consign, Вы писали:

C>Ежу понятно, что вся эта развесистая архитектура создана "под вырост".

C>Проблема в том, что
C>а) сделано много совершенно ненужного
C>б) не хватает нужного, и прикрутить его — крайне геморно
Ты тоже 15 лет в ИТ? А чего нужного-то не хватает?

C>Это действительно полный бред. На объяснения он уже потратил больше времени, чем ушло бы на придумывание внятного имени.

Позволь не согласиться. Иногда на придумывание имени порой уходит времени больше, чем на написание куска кода. Имя должно быть понятным, оно должно отражать суть логического объекта и не всегда это лежит на поверхности.
Re[4]: как доходчиво объяснить менеджеру?
От: consign  
Дата: 22.02.16 09:01
Оценка:
Здравствуйте, andrey.t, Вы писали:

AT>То есть у тебя нет причин для изменения кода кроме "оно говно"? Тогда менеджер будет прав на все 100, если не послушает такое объяснение.


C>Проблема в том, что

C>а) сделано много совершенно ненужного
C>б) не хватает нужного, и прикрутить его — крайне геморно
Re[4]: как доходчиво объяснить менеджеру?
От: consign  
Дата: 22.02.16 09:04
Оценка: -1
Здравствуйте, Andrew.W Worobow, Вы писали:

AWW>Если проект маленький


Кхм, "если"? Вы вопрос вообще читали?

AWW>Вы просто не сталкивались с ситуациями когда кодят в оставшиеся пять дней до срока сдачи, и так в течении двух недель до этого. Ну по 12 часов в день.


Сталкивался и похуже. И когда такое происходит, это всё — один сплошной бред. Странно ожидать от людей, что они не наделают глупостей в таких условиях.
Re[4]: как доходчиво объяснить менеджеру?
От: consign  
Дата: 22.02.16 09:16
Оценка:
Здравствуйте, UVV, Вы писали:

UVV>Ты тоже 15 лет в ИТ? А чего нужного-то не хватает?


Таки да.
Не вдаваясь в детали — не хватает возможности передавать добавочный тип параметра — и чтобы его прикрутить, надо переделывать код минимум в 8 местах. Потому как параметры четыре раза конвертируются из одного формата в другой.
А потом надо как-то скормить данные последнего этапа библиотеке для работы с сервером (прямого доступа к HTTP нет, хотя используется всего лишь POST + JSON). А библиотека тоже очень развесистая, со своим DSL, не хухры-мухры. В общем, тут я и застрял пока. Потому что просто скормить ей JSON (который у меня уже есть) нельзя, а переводить это в ее хитротраханный DSL — ну, мягко говоря, непросто. И всё это, чтобы перевести его обратно в JSON

Черт, сколько бессмысленной работы

UVV>Позволь не согласиться. Иногда на придумывание имени порой уходит времени больше, чем на написание куска кода. Имя должно быть понятным, оно должно отражать суть логического объекта и не всегда это лежит на поверхности.


Придумай мало-мальски осмысленное имя, потом поменяешь.
Re: как доходчиво объяснить менеджеру?
От: smeeld  
Дата: 22.02.16 09:26
Оценка: +2 -1
Здравствуйте, consign, Вы писали:


C>Теперь сижу, не могу определиться — ржать или плакать.


Разобраться с кодом, безотносительно его качества, за это Вам деньги и платят. Работа не может быть приятной, та, за которую денег платят.
Re[2]: как доходчиво объяснить менеджеру?
От: UVV Великобритания  
Дата: 22.02.16 09:30
Оценка: +2
Здравствуйте, smeeld, Вы писали:

S>..Работа не может быть приятной, та, за которую денег платят.

Может =)
Re[2]: как доходчиво объяснить менеджеру?
От: consign  
Дата: 22.02.16 09:34
Оценка:
Здравствуйте, smeeld, Вы писали:

S>Разобраться с кодом, безотносительно его качества, за это Вам деньги и платят. Работа не может быть приятной, та, за которую денег платят.


Разобраться, в данном случае — это весь код на помойку и потратить день, чтобы переписать. Не дадут.
Re[3]: как доходчиво объяснить менеджеру?
От: smeeld  
Дата: 22.02.16 09:47
Оценка:
Здравствуйте, UVV, Вы писали:


UVV>Может =)


У фей индивидуалок. У остальных как повезёт.
Re[5]: как доходчиво объяснить менеджеру?
От: andrey.t  
Дата: 22.02.16 09:48
Оценка: +3
Здравствуйте, consign, Вы писали:

C>>Проблема в том, что

C>>а) сделано много совершенно ненужного
C>>б) не хватает нужного, и прикрутить его — крайне геморно

Пока единственная проблема, которую я вижу в этой теме, что тебе надо залезть в код, который не соответствует твоим представлениям о хорошем коде, и, разумеется, тебе как почти каждому нормальному разработчику не хочется с этим связываться, а переделать под себя. С другой стороны есть люди, которым до лампочки твое представление о прекрасном и которые больше переживают, что с водой и ребенка из ведра выльют. Вариант чтобы убедить и их и себя — найти цифры (объем исходников на диске, время работы проги, количество багов в трекере, сложность цикломатическую посчитать итд итп) и от этого отталкиваться при диалоге.
Re: как доходчиво объяснить менеджеру?
От: antropolog  
Дата: 22.02.16 09:49
Оценка: +2 -1
Здравствуйте, consign, Вы писали:

C>Сакраментальный вопрос — как объяснить менеджеру этой чудо-программы, что код — полное говно, и по хорошему это всё надо выбрасывать на помойку? Но так, чтобы он с программистом не уперлись рогом и не записали меня в вечные враги?


сакраментальный ответ — а оно тебе надо? Или более развёрнуто — какие стратегические цели могут быть достигнуты таким объяснением? Сиюминутное удовлетворение чувства прекрасного и почёсывание своего ЧСВ? Вряд ли ради этого стоит воевать с двумя людьми. С другой стороны у тебя есть замечательная возможность за счёт работодателя прокачать критичный для разработчика скилл — уменее читать и понимать чужой ( пусть даже пахнущий ) код, а также наладить контакты с менеджером и чудо-программистом. Если во времени не ограничивают, то всё вообще прекрасно — можно обложить код тестами, провести рефакторинг, изучить сопутствующие библиотеки и тулзы, при этом переодически подзывая чудо-разработчика для объяснения тонких моментов, при этом нахваливая его какой он хороший охретектор. Таким образом ты будешь знать много чужого говнокода и поимеешь приятеля (гусары!), и когда в следующий раз тимлид уйдёт в другую компанию, тимлидом станешь ты, потому что знаешь весь говнокод на проектах и просто хороший парень. А тот умник, который предлагает всё переписать и называет окружающих говнокодерами так и будет пилить свой "совершенный код", факапя сроки и вызывая недовольство как менеджеров так и коллег-разработчиков.
Отредактировано 22.02.2016 9:50 antropolog . Предыдущая версия . Еще …
Отредактировано 22.02.2016 9:49 antropolog . Предыдущая версия .
Re[2]: как доходчиво объяснить менеджеру?
От: consign  
Дата: 22.02.16 09:59
Оценка:
Здравствуйте, antropolog, Вы писали:

A>сакраментальный ответ — а оно тебе надо? Или более развёрнуто — какие стратегические цели могут быть достигнуты таким объяснением?


Нежелание тратить время на бессмысленную работу.

A>прокачать критичный для разработчика скилл — уменее читать и понимать чужой ( пусть даже пахнущий ) код


С этим скиллом у меня и так всё хорошо.

A> пилить свой "совершенный код", факапя сроки


Ты поставил всё с ног на голову. Моя цель — решение задачи с минимальными сложностями. Продукт любителя "совершенного кода" и паттернов — это как раз то, от чего я хочу избавиться.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.