Pull to refresh

Comments 48

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

И после каждой задачи, особенно если начальный этап, время давать привести в порядок.

Если же все время гнать и не давать рефакторить — к хуям такое управление проектом, которое приведет потом к тому, что нужно будет с нуля все переделывать.

Говнокод и харкод — не значит полный ппц. Просто какие-то вещи не делаются заранее, лишь намечаются. Как в том примере с массивом — вы наметили массив стран в коде. Потом просто у вас будет не ['Египет', 'Турция'], а что-то вроде CountriesList (new CountryRepository()).getCountries() (псевдокод).
Первые два дня побудет и массив, а дальше, когда уже сам функционал и логика устоится — можно нормально переписать. Просто если сразу писать нормально, а потом по пять раз переделывать — так как не устоялся функционал в мелочах (которые могут тянуть серьезные изменения внутри), то время разработки суммарное будет в несколько раз больше.

Подчеркиваю — это лишь для случая, когда идет изначальная разработка проекта, быстрая причем. В случае неторопливой допилки этого, конечно, можно не делать.
Согласен, что это косяк менеждера. Но в реальности над менеджером часто стоят директора, инвесторы и пр. «не особо вникающие» личности с логикой «так работает же! зачем тратить еще 600% денег на рефакторинг?». В описанном примере как раз в 6 раз задача была упрощена.
это тоже работа менеджера.
нужно с каждым говорить на его языке.

слово «рефакторинг» такое же чужое, как и фраза «сфокусируй звук во лбу за счет подачи дыхания в одну точку, попробуем на И» (из оперного вокала).

нужно говорить на языке денег. немного опыта набраться, чтобы слова были авторитетны.
и показать, что если не будет рефакторинга — изменения будут все дороже и дороже. можно «сымитировать» баги, и показать что баги «исчезли» после рефакторинга.

вообще, это все — так называемый маркетинг. вот у меня — Галакси первый, стоит 10 штук. у друга — айфон четвертый, стоит 30. за мой самсунг никто не готов с пеной у рта отстаивать, что он лучше( а он, сука, лучше айфона — сразу под линуксом подключается, без тунца, любой вид клавиатуры, и т.д. — единственное, они не новаторы). а за айфон друг пасть порвет — хуле, это ж Эппл.

поэтому важна не сама суть, сильно важнее — умение ее подать.
UFO just landed and posted this here
если у вас нет другого выхода,
выбирая между 100% загубленным проектом, из-за непонимания руководством нужд (И причем вы же и будете виноваты, что после определенной стадии проект нужно переписывать с нуля, а каждая новая функция ломает существую),

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

но могу сказать, мне как-то сильно повезло, у нас гендиректор понимает необходимость рефакторинга и не возражает против него.
UFO just landed and posted this here
Просто друг фанатик, а юзеры Гэлэкси — нет.
Многие юзеры айфона тоже фанатизмом не страдают. :)
И после каждой задачи, особенно если начальный этап, время давать привести в порядок.

Если же все время гнать и не давать рефакторить — к хуям такое управление проектом, которое приведет потом к тому, что нужно будет с нуля все переделывать.

задело за живое. спасибо большое.

Вот достался мне тут на допиливание проект, с таким же временным массивом на 200+ строк, причем часть функционала работает с этим массивом именно в том виде, в каком он есть. В итоге я просто «доклеил» массив выборкой из базы, так как нужно было реализовать функционал изменения части настроек из админки.
ну по-хорошему, массив нужно заменить на какую-то обертку для получения коллекции объектов :)
в идеале.

а там, где завязано — это просто неявные связи на уровне реализации.

если вдруг кто не читал про принцип инверсии зависимостей — ОЧЕНЬ рекомендую вот эту статью на AgileDev

если вы освоите то, что там изложено, можете попросить меня — добавлю +1 в карму :)))
очень крутая статья (вернее, сам принцип), даст вам мощный шаг к мегапрофи в ООП
Благодарю за ссылку, сейчас распечатаю и дома с огромным удовольствием прочту.
Касательно конфига — проект, который я допиливал, делался в течение двух лет, внутри нет ни единого класса. И плюс все хотят эффективно и быстро. Я не очень опытен, но всегда стараюсь делать красиво, если можно аргументировать затраты времени.
«Это я хорошо зашел!». Зачетная статья
Спасибо за статью.
Про вовлечение программиста это очень верно. У нас программисты так вовлечены что им все завидуют и чувствуют себя ненужными. У меня руки тоже чешутся, хочется поучаствовать.
Откуда столько советчиков появилось последнее время? Что каждый из них магистр психологических наук и уже не первый фэйсбук сделал?
Прочтение нужной статьи в нужное время может ускорить эволюцию.
хорошо, предложите методологию лучше, которую вы применяли на практике.
UFO just landed and posted this here
анекдот вспомнился.
xxx: Наша офисная сотрудница уснула, сидя за компом. Спала долго. Тут заходит директор, сотрудница просыпается и начинает изображать бурную деятельность, по клаве долбит, мышку дёргает. xxx: Директор говорит: «Люда, у нас уже полтора часа света нету».
А она все ждет, когда же загрузится расширенный поиск.
Раджагопал Рохит (Rajagopal Rohit), 29-летний менеджер одной из туристических фирм Дели, прославился на весь мир тем, что три года проработал за компьютером, не включая монитор.

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

Как запустить компьютер, и как им пользоваться, ему никто не объяснил, поэтому индийцу пришлось всему учиться самому.

На изучение компьютера у молодого человека ушло примерно два месяца.

«Я никак не ожидал, что компьютер окажется такой сложной и неудобной машиной», — признался Рохит, вспоминая этот период своей жизни.

Однако вскоре он уже общался с коллегами по электронной почте и разместил в РС клиентскую базу. О том, что монитор можно включить, менеджер узнал, когда случайно зашёл выпить кофе в одно из немногочисленных индийских интернет-кафе.


www.lapsha.ru/articles/tech/2003/12/05/094700.html
да он, должно быть, гений шоткатов
Это компьютерная йога :)
И мышку не дали.
фотограф — кретин
такое даже на фотостоки стыдно выставлять
Вот только не приводите такие примеры:
>кто не знает — миллиардер, создал с нуля (!) розничную сеть «Магнит»

Вы меня извините, но Магнит это потогонная фабрика. В ряде компаний есть внутреннее правило для HR не брать людей из Магнита. Я не знаю как Этот миллиардер основал эту сеть. Но я четко знаю, что она вредна для общества.

Думаю я потеряю свою карму, но не надо сравнивать сетевика с IT. Тем БОЛЕЕ В РОССИИ, где IKEA сталкивается с проблемами, ут нет eMashines и так далее. Зато Магниты с кубаноидским подходом есть. Уверен в нормальной стране ониб умерли.
я думаю, в нормальной стране они бы поднялись в два раза быстрее, потому что не надо было решать те проблемы, которые тормозят им бизнес (а таким тепличным компаний, типа Икеа, и вовсе не дают работать нормально).
в целом, я не хочу углубляться в эту тему. но можно сказать, что икеа — это такие академически тренированные на лучших тренажерах мира легкоатлеты. а российский бизнес в целом — это такой худющий негр-марафонец, который в нищей африке быстрее всех только потому, что от львов бегать приходится, чтобы не сожрали. и в честном бою, конечно, этот негр на раз-два делает академически тренированных бегунов — да потому что жить охота. как представит сзади Лёву — только его пятки и видали :)

метафора, конечно, неточная, но смысл понятен, надеюсь.

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

такие дела.
Я не говорю про о, что и как снаружи Магнита. Но внутри люди это даже не пешки…
Если он миллиардер пусть хоть на 3000 ЗП подымет и улучшит условия работы. Я там не работаю, но это… Слов нет.

У тебя сотрудники воют? Нет или да? А там люди как хомячки в лаборатории… Кк и в Связном.
Не воют :)
У меня не магнит :)

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

Но даже так, смотри, что говорит Потапенко.
Брал таджиков, у которых ниже уровень потребления. За 7-10 штук работают отлично, ни одного нарекания. И тут блядь в Твери выходит приказ — запрещено брать иностранцев.
Все, берет на 15 штук тверичей (тверян, тверитян — я слышал три разных слова для обозначения жителей города). И они — что ты думаешь? Тупо бухают, зная, что их нельзя уволить, таджиков-то не возьмешь на их места. Резко упала производительность, прогулы и так далее. Вопросы есть? В регионах, особенно в селах разных, народ страшно бухает. Ты будешь просто так платить деньги из своего кармана, когда у тебя человек на неделю в запой ушел, и ты сам стоял за прилавком, за троих работал? Какого хуя?

Правда, и работодатели бывают охуевшие.

Вот недавно случай — человеку платят 12 тысяч в регионе, пашут на нем как на админе, дизайнере, программере. Они чего, ебанулись? Да 20 тысяч на удаленке он легко найдет работу, хотя бы немного мониторили рынок.

Работников интеллектуального труда нужно ценить, особенно в регионах. Этого, увы, там пока не понимают «бизнесмены». Бизнесмены тоже разные бывают — от любителей и нубов, до суперпрофи.
Я без обид. Статья очень полезная. Но я как бы вижу Магнит, как и другие Краснодарские конторы. У многих все в работе полный раздрай, но могу поспорить Магнит может стать Икеей. Толко по нашему русскому обычаю: Зачем стараться строить бизнес в рассчете на будущее — его отберут всеравно!

А так статья годная и спасибо это меня торкнуло :-)
Окей, я согласен, пример, может быть, неудачный. Понимаете, очень трудно смотреть с обоих сторон.
С одной, я бы всем платил огромные деньги. С другой, я понимаю, что один работает по 12 часов и результаты выдает, а другой в семь ушел — и его нет, только спрашивает когда же ЗП поднимут и вечно недоволен, при этом за ним всегда доделывают и баги.

Нельзя всем платить одинаково хорошо, Зарплата должна быть из оклада + бонус, четкий за результаты, на основе KPI.
Спасибо, я старался.
Еще вчера задумал, перед сном.
Знаете, Галицкие, достойные бизнесмены, и достоинство его в том, что он не украли ваши деньги и построил себе бизнес, как большинство, олигархов наших, а сам развил свою сеть, выбрал нишу потенциальных покупателей, и на них ориентировал свой бизнес. Начинал с братом и отцом, с ларька и склада(у отца) т.е. по сути он развил бизнес отца(дальше о Сергее пойдет речь). Уделил важное внимание логистике, чуть ли не с момента когда у него стало больше одного магазина. Так что, вполне достойный пример.
Так же сравните с сетью пятерочки (копеечка) в чем разница для конечного потребителя?
p.s. надеюсь, что вам не сольют карму, ибо вы, просто высказали свое мнение.
В споре рождается истина.
Кстати о особенности кубанойдского управления согласен на все 100 %.
Ибо знаю кухню, очень разных организаций. Ну и сам кубанойд так сказать.
>>Критерий один — после прочтения задачи у программиста не должно возникать вопросов. Вообще.
Куда вам памятник поставить?
Даже не знаю, ирония ли это :)

Вообще, иногда полезно спросить, как человек понял задачу. Не факт, что идеальные будут постановки, особенно поначалу, поэтому нужно посмотреть, какой процент потерялся при передаче в системе ваш мозг -> текст и картинки -> мозг программиста.

а так — отвечу словами Пушкина :)

Я памятник себе воздвиг нерукотворный,
К нему не зарастет народная тропа,
Вознесся выше он главою непокорной
Александрийского столпа.
Нет, весь я не умру — душа в заветной лире
Мой прах переживет и тленья убежит —
И славен буду я, доколь в подлунном мире
Жив будет хоть один пиит.
Слух обо мне пройдет по всей Руси великой,
И назовет меня всяк сущий в ней язык,
И гордый внук славян, и финн, и ныне дикой
Тунгус, и друг степей калмык.
И долго буду тем любезен я народу,
Что чувства добрые я лирой пробуждал,
Что в мой жестокий век восславил я свободу
И милость к падшим призывал.
Веленью божию, о муза, будь послушна,
Обиды не страшась, не требуя венца;
Хвалу и клевету приемли равнодушно,
И не оспоривай глупца.
У меня ещё нет успешных проектов, но я стараюсь задачи для программистов ставить только после полной реализации интерфейса для задачи («разработка от центра»), читай по результатам работы пары: дизайнера и верстальщика.
Такой подход поддерживают и ребята из 37signals.
Это и быстро (для менеджера), и наглядно (для пользователя), и доступно (для программиста).
Под вопросом пока остаётся увлечённость для программистов, у меня ещё нет «статистики». Но думаю, что её можно будет компенсировать фидбэком от пользователей.
стартап — проект, который требует веры и блеска в глазах. Поэтому вовлечение программистов — очень важный момент.
И еще, стартап «дает волю» мозгам программистов.
На обычном проекте, с четкими сроками и постановкой, они так не «извращаются», как на стартапах. На стартапах не просто полет мысли, а еще и реализуют они свои мысли быстро, не пытаясь увеличить их стоимость, а напротив, как бы борясь за то, чтобы идея была реализована.
Меня в микроменеджменте смущают 2 проблемы:
1. руководитель влезает со своими задачами во время решения программистом другой задачи и часто приходиться браться за новую, не завершив старую. Что, понятно, не ускоряет общую работу. И тут не скажешь, что руководитель плохой. Просто в силу специфики микроменеджмента и задачи, которые ставятся, часто бывают микро. И они не могут ждать день-два-три.
2. Если руководитель постоянно участвуют в уточнении поставленных перед программистом задач (а, как мы помним, они микро и их объём измеряется в часах), то часто возникает ситуация, когда программист вынужден ждать, пока руководитель освободиться от других своих дел (например, шеф вызвал, к заказчику поехал и т.п.). И тогда описанная Вами экономия времени может растаять без остатка.

Как Вы разруливаете эти проблемы?

P.S. По-моему Макконнелл говорил не про мотивированных программистов. Он говорил, что скорость работы среднего и лучшего программиста может различаться в скорости в 10 раз.
— программист решает одну задачу в потоке. за это отвечает руководитель.
ну то есть задачи идут последовательно

— на это не должно уходить больше часа в день. утром продумал и все.
Так программистов у вас наверное много? И что делает программист, когда закончил задачу? Ждёт, когда у Вас будет время разобраться с новой задачей для него? Пусть даже он знает, какая его следующая задача. Но если он сам возьмётся за следующую задачу, он может начать её делать так, что потратит 23 часа, а не 5, как Вам бы хотелось.
для этого есть пул задач, заранее проработанных.

и потом, проработать задачу — от 10 минут до часа.
а сделать ее — от 4 до 8 часов.

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

в общем и целом, короче, эта методика работает для условий релиза каждый день и некритичного функционала. вот только сегодня с коллегой обсуждали, у него один продукт, зато какой: нагрузка колоссальная, highload, и функционал важный, нельзя выкатывать не проверенный вдоль и поперек. там вот эта моя метода, конечно, не канает. там другая методика разработки.
>> 5. Заверяете его, что будет дано время на рефакторинг.
Если Ваши слова расходятся с делом, то очень быстро Ваш программист перестанет Вам верить. А это файл на ранних стадиях.
Sign up to leave a comment.

Articles