Все, что вы здесь сделали, называется простым словом "рефакторинг", и прием, описанный Фаулером — "экстрагирование классов". Если перечисления нужны именно как перечисления, без подключения тонны дополнительной логики, пусть они так и останутся перечислениями. Для более сложных случаев подойдут другие решения, например, ваше.
Попробуйте. Если работаете в подходящей фирме, то предложите это своему руководителю. Вариантов его реакции предвижу два:
а) откажет и отправит заниматься полезным делом (опционально: проведёт беседу с объяснениями, почему это невозможно)
б) если в компании есть факультативные программы по карьерному росту, то может предложить заняться этим в рамках такой программы — даст самому почувствовать, почему это невозможно.
Начальник понимает не больше меня. Я так давно в индустрии, что знаю все эти процессы как свои пять пальцев. Да и нет у меня никакого начальника сейчас.
Нет, я хочу сделать интереснее. Я хочу организовать компанию, которая сама создаст себе правила и сама будет по ним работать, без начальников. Звучит как утопия, я знаю. Но надо попробовать. Уже есть отдельные мысли. Надо их отлить в нечто более осязаемое.
Нет, это не бюрократия. Впрочем, назвать можно как угодно.
Еще раз — это не про то, что руководить не надо. Это про то, что принимать решения не обязательно должен человек. В любом случае решение принимается на основе каких-то данных и правил, так почему бы не формализовать их и не передать их компьютеру?
Бывают, наверное, сложные случаи, которые выходят за рамки правил — в этом случае компьютер может обратиться за помощью к человеку, и необязательно это должен быть формальный руководитель.
За Адизеса спасибо, почитаю.
Нет, речь не об анархии. Речь о том, что все, что делает руководитель, в теори можно заменить установленными процессами. Никто раньше не думал о том, что тестировать программы (даже интерфейс) можно с помощью компьютера, теперь это делается. Вы пишете скрипт или как-то по-другому сообщаете компьютеру, чего ожидаете, и тот тестирует ПО за вас.
Подобным же образом можно организовать и руководство людьми. Имеется задача, имеются ресурсы, имеется время. Не такой уж сложный алгоритм рапределить все это.
Нет, речь шла конечно же, не о сталелитейном заводе, и не о производстве вообще, хотя думаю, что в перспективе эту идею можно применить и к ним.
Вы поймите, речь идет не о том, чтобы отменить руководство в принципе, без этого, разумеется, невозможно, а речь о том, чтобы человека заменить четко отмеренным процессом. И кстати, к заводу это возможно, даже больше подходит, чем к стартапу. Ведь там все известно — имеются заказы (на литье стали), их надо выполнять. Процессы производства давно известны и установлены. Каждый работник знает свое место. Задача в том, чтобы донести до него его задачи на данный момент.
В стартапе и сложнее и проще. Сложнее — потому что стартап никогда не знает, куда он там выплывет. Проще, потому что коммуникацию можно организовать через компьютер. А теперь представьте себе, что вместо менеджера некий алгоритм, который сам все распределяет, выдает задания и так далее. Задача не такая уж безумно сложная.
О Боже.
Это был перевод?!
Мне казалось на протяжении всей статьи, что это сами норвежцы, вооружившись гугловским переводчиком, сделали перевод. Тогда простительно. Но не вам, уж извините. Это не перевод. И не на русский язык.
Истина в том, что руководители не нужны. Да-да, при правильной организации процессов необходимость в менеджерах отпадает. Только об этом очень мало кто знает и тем более мало кто применяет. 37signals, например.
Спасибо за ответ.
Полагаю, вы правы, и надо просто закладывать «запасное» время. Просто мне лично никогда не приходилось это наблюдать вживую. Если все решили, что задача на 8 часов (все — это скрам же!), то она всегда ставилась на один день. Наверное, мне просто не попадались нормальные лиды, которые понимали, что 8 часов на задачу не означают 8 часов, проведенных в офисе.
Запоздалый комментарий. Но все же лучше позже, чем никогда.
Очень меня интересует вопрос про оценку времени за решение задач. Из своего опыта я скажу — эта оценка никогда не бывает ни честной, ни точной. А знаете, почему?
Потому что работать 8 часов кряду невозможно — ну невозможно физически! Уходит время на отдых, туалет, иногда хочется встать и пройтись, почитать тот же хабр. По оценкам некоторых, на работу в среднем реально уходит до 4(!!!) часов в день.
И вот в таких условиях нам надо оценить задачу А и задачу Б.
Допустим, реальная оценка обеих задач — по 4 часа. Если придерживаться формального подхода, на их решение требуется один день (8 часов же!). Но так как никто реально не работает 8 часов, либо надо завышать оценки всегда, либо выделять официальное время на неработу (что никогда не делается). Именно поэтому разработчики стоят перед сложным выбором — или сказать правду и пахать как проклятые (во имя чего?) или работать нормально, но наврать с оценкой.
К сожалению, далеко не только в русскоязычном. Прочитав статью, я вижу, что многие мои англоязычные коллеги пытаются манипулировать именно такими, описанными способами.
>>>>Ничего не могу сказать про интересы страховых компаний, но вас может весьма слабо интересовать какая-то болезнь, пока от нее не умрет ваш близкий родственник. После этого возникает желание что-то сделать.
Все, что вы здесь сделали, называется простым словом "рефакторинг", и прием, описанный Фаулером — "экстрагирование классов". Если перечисления нужны именно как перечисления, без подключения тонны дополнительной логики, пусть они так и останутся перечислениями. Для более сложных случаев подойдут другие решения, например, ваше.
Да не жалко, пусть, просто очень хотелось увидеть разработчицу внутри процессора :((
Начальник понимает не больше меня. Я так давно в индустрии, что знаю все эти процессы как свои пять пальцев. Да и нет у меня никакого начальника сейчас.
Нет, я хочу сделать интереснее. Я хочу организовать компанию, которая сама создаст себе правила и сама будет по ним работать, без начальников. Звучит как утопия, я знаю. Но надо попробовать. Уже есть отдельные мысли. Надо их отлить в нечто более осязаемое.
Еще раз — это не про то, что руководить не надо. Это про то, что принимать решения не обязательно должен человек. В любом случае решение принимается на основе каких-то данных и правил, так почему бы не формализовать их и не передать их компьютеру?
Бывают, наверное, сложные случаи, которые выходят за рамки правил — в этом случае компьютер может обратиться за помощью к человеку, и необязательно это должен быть формальный руководитель.
За Адизеса спасибо, почитаю.
Это просто безграмотный заголовок… какое разочарование :((
Подобным же образом можно организовать и руководство людьми. Имеется задача, имеются ресурсы, имеется время. Не такой уж сложный алгоритм рапределить все это.
Вы поймите, речь идет не о том, чтобы отменить руководство в принципе, без этого, разумеется, невозможно, а речь о том, чтобы человека заменить четко отмеренным процессом. И кстати, к заводу это возможно, даже больше подходит, чем к стартапу. Ведь там все известно — имеются заказы (на литье стали), их надо выполнять. Процессы производства давно известны и установлены. Каждый работник знает свое место. Задача в том, чтобы донести до него его задачи на данный момент.
В стартапе и сложнее и проще. Сложнее — потому что стартап никогда не знает, куда он там выплывет. Проще, потому что коммуникацию можно организовать через компьютер. А теперь представьте себе, что вместо менеджера некий алгоритм, который сам все распределяет, выдает задания и так далее. Задача не такая уж безумно сложная.
Это был перевод?!
Мне казалось на протяжении всей статьи, что это сами норвежцы, вооружившись гугловским переводчиком, сделали перевод. Тогда простительно. Но не вам, уж извините. Это не перевод. И не на русский язык.
Полагаю, вы правы, и надо просто закладывать «запасное» время. Просто мне лично никогда не приходилось это наблюдать вживую. Если все решили, что задача на 8 часов (все — это скрам же!), то она всегда ставилась на один день. Наверное, мне просто не попадались нормальные лиды, которые понимали, что 8 часов на задачу не означают 8 часов, проведенных в офисе.
Очень меня интересует вопрос про оценку времени за решение задач. Из своего опыта я скажу — эта оценка никогда не бывает ни честной, ни точной. А знаете, почему?
Потому что работать 8 часов кряду невозможно — ну невозможно физически! Уходит время на отдых, туалет, иногда хочется встать и пройтись, почитать тот же хабр. По оценкам некоторых, на работу в среднем реально уходит до 4(!!!) часов в день.
И вот в таких условиях нам надо оценить задачу А и задачу Б.
Допустим, реальная оценка обеих задач — по 4 часа. Если придерживаться формального подхода, на их решение требуется один день (8 часов же!). Но так как никто реально не работает 8 часов, либо надо завышать оценки всегда, либо выделять официальное время на неработу (что никогда не делается). Именно поэтому разработчики стоят перед сложным выбором — или сказать правду и пахать как проклятые (во имя чего?) или работать нормально, но наврать с оценкой.
Кто может прокомментировать данную ситуацию?
Как же вы правы.