1. Я в эти 10 минут включил и смену потока. Скопировать одну строчку и поменять два значения в новой строчке не занимает более 1й минуты работы
Для правильных языков (.Net, Java) вы сначала достаете из репозитория нужну ветку (1-2 мин.), открываете проект в студии (до 5 мин, если большой проект), находите эту страницу, исправляете (1-2 мин.), компилите, запускаете, проверяте что все работает (до 5 мин.), коммитите изменения в репозиторий (1-2 мин.), деплоите новую версию на сервер (если вы имеете права — 1-2 мин., при этом сайт будет не доступен.).
Итого, для сайта на .Net (на Java будет то же самое) — от 14 до 18 минут только изменение, без учета смены контекста.
Вопрос, сколько изменений можно вносить руками, чтобы это наконец стало затратным? Ответ: 234
Два момента:
1. Это только кажется «10 минут». Вы отвлекаете программиста, выводите из контекста. Потом он пойдет пить кофе, т.к. не сможет сосредоточиться.
2. Хороший архитектор это не тот, кто делает сам каждый кирпичик. Вполне можно не клепать самим HTML-меню а купить готовое. Я однажды пришел к выводу, что делать контрол под проект — практически всегда плохая идея. Хорошее меню — уже отдельный проект на несколько месяцев работы.
На мой взгляд, при минимальном планировании, такие вещи как меню изменяются не часто. Предварительно нужно продумать все «за» и «против», сделать прототип, оценить…
Так что в данной ситуации, похоже, конкуренты имеют преимущество.
У конкурентов начинается срач между ведущими, которым жалко менять спроектированное меню и две недели крутого правильного программирования, плюс у них замылен глаз. В итоге мы получили две недели времени.
А что было бы, если бы в этой конкретной ситуации трехуровневое меню оказалось правильным выбором?
Конкуренты экономят уйму времени, т.к. их меню обновлялется автоматически. А вы бы тратили драгоценное время своих программистов на «Вась, а ну добавь как еще один подпункт для сковородок...». И ведь признайтесь — раз оно работает, то лень было бы делать правильную архитектуру, вроде проще руками добавить пару пунктов…
Если уж Вы следуете каким-то принципам, то следуйте им с самого начала, не думая, что по первости можно и без них обойтись
А разве я не об этом написал? Некоторые сразу делают качественно (TDD — это признак качественной работы). Другие же стремятся сделать чем быстрее и дешевле, не взирая на качество.
Кто прав а кто нет — вопрос не однозначный. Строго говоря, не всем людям нужно качество. Кто-то любит дорогую и качественную обувь, которую комфортно носить (за $300-500), а кто-то дороже $20-50 ничего в жизни не обувал. И что лучше: делать качественную обувь или ширпотреб?
2 диаметрально противоположных мнения по данному вопросу:
1. Одна группа громко доказывает, мол нужно писать как можно быстрее без учета качества. А уж потом, когда проект взлетит, наймете того лоха, который оказался в жопе, пока вылизывал свой код.
2. Мысли второй группы изложены в статье.
Хотелось бы конкретики, а именно исследования реальных стартапов, как они делались.
Я не специалист, но похоже, когда вы о чем-то думаете, оно попадает в фоновую программу. И потом, когда вам нужно начать, фоновые программы вступают в конфликт (что-то типа dead lock), и вы не можете начать.
Спасибо за такое ценное наблюдение :)
Механизм действительно не до конца понятен, однако работает 100%.
Возможно проблема вот в чем: хочется погнаться за двумя зайцами. Но в глубине души понимаете, что и за одним то не просто угнаться (и времени и сил уйдет значительно больше, чем хотелось бы)… И вот эта внутренняя борьба: жадность говорит беги за двумя, разумный смысл говорит умерь свой аппетит и выбери одно. А всякая борьба (даже внутренняя) — это потеря и времени и сил.
Бывает хуже. Выбрал одно, но оно, по независящим от вас причинам, повисло. Ну ждете решения другого человека. Или ждете пока посылка дойдет. И это время ожидания, казалось бы, нужно использовать со смыслом (особенно когда ждать хрен знает сколько). А не получается… Ведь в любой момент ожидаемое событие наступит и придется бросить начатое недоделанным — 2 начатых дела на вашей шее будет висеть.
Я, было, загорелся идеей полной виртуализации рабочего пространства. Главная причина: переносимость между железом (как то сменил комп — не нужно тратить 2 дня на установку и конфигурацию софта).
Но, проверив разные варианты, пришел к выводу о малополезности данной затеи. Причины такие:
1. Железо. Моя проблема — на ноуте нет Intel VT и маловато памяти (всего 4 Гб). Чуток притормаживает даже без вирт. машины, покупать новый ради виртуализации пока смысла нет. Виртуализация отъест ~1 Гиг. памяти.
2. Как оказалось, операционная система обновляется чаще чем железо. Ноутом пользуюсь 5 год и за это время сменилось уже 3 версии операционки: Vista, 7, 8. Может доживет и до IX (хотя вряд ли, начал барахлить).
По этому, если вы используете современный софт, тратить время на переустановки все равно придется.
3. Восстановить систему быстрее всего с помощью ImageX и Windows PE. Образ диска вашей вирт. машины будет дольше копироваться, чем пройдет восстановление моего системного диска со всеми программами.
4. Переносимость между железом возможна и без вирт. машины (есть Sysprep /generalize). У меня, правда, такой необходимости не возникало, т.к. использую всегда один ноут (подключаю к монитору и клавиатуре).
Было бы выгодно, если бы не выпускали новые версии операционных систем. Настроил все раз в жизни — и пользуйся на любом железе до конца дней своих да еще и детям по наследству можно передать. Или если бы рабочаее пространство обновлялось не мной а предоставлялось мне третьей стороной для использования по подписке. Тогда бы не тратилось время на установки. А если поддерживаешь сам — то экономия времени сомнительна.
Договор был аннулирован, а аванс возвращён мне в виде премии.
Жестоко. Очень жестко. К вам пришел молодой специалист, а вы его так опустили да еще и, по сути, обобрали. Вы что не понимаете, что человек без опыта не может оценить сложность работы и продумать подходящую архитектуру? Тут с 10 годами опыта заявляют, что оценка сроков и стоимости — это задача менеджера, а не разработчика.
Loose переводится как «проиграть». «Лузер» — проигрывающий.
Как переводится, думаю, тут все знают. Но в психологии/медицине такого термина нет — каждый подразумеваент что ему вздумается. Вы что подразумеваете?
Если вы подразумеваете буквальный перевод (ака «проигрывать») — значит ли это, что вы советуете не сотрудничать с людьми, которые рискуют проиграть (вероятность успеха проекта не значительна)?
Присоединяюсь к вопросу. Поиск в wiki ничего не дал.
Если понятие алкаш, халявщик, псих и даже пофигист — более менее определены, то лузер — это что-то абсолютно эмпирическое. Того же Гитлера в начале его жизненного пути считали лузером, Тараса Шевченко…
Поясните более конкретно кто подпадает под эту категорию людей и с кем не нужно иметь дело? Вы имели в виду несостоятельного человека или кого?
инструмент саморегуляции… поэтому рожают «с запасом»
Хороший такой запасик… Индия 1 млрд., Китай 1.2 млрд.… США 0.3 млрд., Россия 0.14 млрд.
На регуляцию никак не похоже — ведь численное превосходство, по сравнению с развитыми странами, в десятки раз.
Кстати, в долгосрочной перспективе медицина и понижение детской смертности может быть даже вредным. Если медицины нет — слабые умирают (оставим пока вопрос жалости) а сильные выживают. И с каждым годом генофонд улучшается. А когда лечим слабых — то становимся все слабее и слабее и в один прекрасный момент будем настолько слабы, что сами себе не сможем помочь.
Вот и думай теперь кто мудрее поступает: образованные европейцы или грязные индусы…
Вполне сопоставимо по сложности. Преимущество этого Java-кода — он более универсален, можно использовать и для консольных, и для десктопных и для Web. PHP более хардкорный.
Хотя ваша идея абсолютно ясна: задачи с одним и тем же названием могут отличаться по сложности в тысячи и десятки тысяч раз. Мой любимый пример — логгер. Самый простой способ логировать в C# — одна строчка: File.Write (ну 2 строчки, если нужен потокобезопасный). Однако почему то возникла необходимость в создании таких продуктов как log4net и NLog — а там работы на несколько человеко-месяцев.
Для правильных языков (.Net, Java) вы сначала достаете из репозитория нужну ветку (1-2 мин.), открываете проект в студии (до 5 мин, если большой проект), находите эту страницу, исправляете (1-2 мин.), компилите, запускаете, проверяте что все работает (до 5 мин.), коммитите изменения в репозиторий (1-2 мин.), деплоите новую версию на сервер (если вы имеете права — 1-2 мин., при этом сайт будет не доступен.).
Итого, для сайта на .Net (на Java будет то же самое) — от 14 до 18 минут только изменение, без учета смены контекста.
Два момента:
1. Это только кажется «10 минут». Вы отвлекаете программиста, выводите из контекста. Потом он пойдет пить кофе, т.к. не сможет сосредоточиться.
2. Хороший архитектор это не тот, кто делает сам каждый кирпичик. Вполне можно не клепать самим HTML-меню а купить готовое. Я однажды пришел к выводу, что делать контрол под проект — практически всегда плохая идея. Хорошее меню — уже отдельный проект на несколько месяцев работы.
Так что в данной ситуации, похоже, конкуренты имеют преимущество.
А что было бы, если бы в этой конкретной ситуации трехуровневое меню оказалось правильным выбором?
Конкуренты экономят уйму времени, т.к. их меню обновлялется автоматически. А вы бы тратили драгоценное время своих программистов на «Вась, а ну добавь как еще один подпункт для сковородок...». И ведь признайтесь — раз оно работает, то лень было бы делать правильную архитектуру, вроде проще руками добавить пару пунктов…
А разве я не об этом написал? Некоторые сразу делают качественно (TDD — это признак качественной работы). Другие же стремятся сделать чем быстрее и дешевле, не взирая на качество.
Кто прав а кто нет — вопрос не однозначный. Строго говоря, не всем людям нужно качество. Кто-то любит дорогую и качественную обувь, которую комфортно носить (за $300-500), а кто-то дороже $20-50 ничего в жизни не обувал. И что лучше: делать качественную обувь или ширпотреб?
1. Одна группа громко доказывает, мол нужно писать как можно быстрее без учета качества. А уж потом, когда проект взлетит, наймете того лоха, который оказался в жопе, пока вылизывал свой код.
2. Мысли второй группы изложены в статье.
Хотелось бы конкретики, а именно исследования реальных стартапов, как они делались.
Спасибо за такое ценное наблюдение :)
Механизм действительно не до конца понятен, однако работает 100%.
Возможно проблема вот в чем: хочется погнаться за двумя зайцами. Но в глубине души понимаете, что и за одним то не просто угнаться (и времени и сил уйдет значительно больше, чем хотелось бы)… И вот эта внутренняя борьба: жадность говорит беги за двумя, разумный смысл говорит умерь свой аппетит и выбери одно. А всякая борьба (даже внутренняя) — это потеря и времени и сил.
Бывает хуже. Выбрал одно, но оно, по независящим от вас причинам, повисло. Ну ждете решения другого человека. Или ждете пока посылка дойдет. И это время ожидания, казалось бы, нужно использовать со смыслом (особенно когда ждать хрен знает сколько). А не получается… Ведь в любой момент ожидаемое событие наступит и придется бросить начатое недоделанным — 2 начатых дела на вашей шее будет висеть.
Я, было, загорелся идеей полной виртуализации рабочего пространства. Главная причина: переносимость между железом (как то сменил комп — не нужно тратить 2 дня на установку и конфигурацию софта).
Но, проверив разные варианты, пришел к выводу о малополезности данной затеи. Причины такие:
1. Железо. Моя проблема — на ноуте нет Intel VT и маловато памяти (всего 4 Гб). Чуток притормаживает даже без вирт. машины, покупать новый ради виртуализации пока смысла нет. Виртуализация отъест ~1 Гиг. памяти.
2. Как оказалось, операционная система обновляется чаще чем железо. Ноутом пользуюсь 5 год и за это время сменилось уже 3 версии операционки: Vista, 7, 8. Может доживет и до IX (хотя вряд ли, начал барахлить).
По этому, если вы используете современный софт, тратить время на переустановки все равно придется.
3. Восстановить систему быстрее всего с помощью ImageX и Windows PE. Образ диска вашей вирт. машины будет дольше копироваться, чем пройдет восстановление моего системного диска со всеми программами.
4. Переносимость между железом возможна и без вирт. машины (есть Sysprep /generalize). У меня, правда, такой необходимости не возникало, т.к. использую всегда один ноут (подключаю к монитору и клавиатуре).
Было бы выгодно, если бы не выпускали новые версии операционных систем. Настроил все раз в жизни — и пользуйся на любом железе до конца дней своих да еще и детям по наследству можно передать. Или если бы рабочаее пространство обновлялось не мной а предоставлялось мне третьей стороной для использования по подписке. Тогда бы не тратилось время на установки. А если поддерживаешь сам — то экономия времени сомнительна.
Жестоко. Очень жестко. К вам пришел молодой специалист, а вы его так опустили да еще и, по сути, обобрали. Вы что не понимаете, что человек без опыта не может оценить сложность работы и продумать подходящую архитектуру? Тут с 10 годами опыта заявляют, что оценка сроков и стоимости — это задача менеджера, а не разработчика.
С чего бы это? NoSQL-решения не используют файловых индексов?
Как переводится, думаю, тут все знают. Но в психологии/медицине такого термина нет — каждый подразумеваент что ему вздумается. Вы что подразумеваете?
Если вы подразумеваете буквальный перевод (ака «проигрывать») — значит ли это, что вы советуете не сотрудничать с людьми, которые рискуют проиграть (вероятность успеха проекта не значительна)?
Если понятие алкаш, халявщик, псих и даже пофигист — более менее определены, то лузер — это что-то абсолютно эмпирическое. Того же Гитлера в начале его жизненного пути считали лузером, Тараса Шевченко…
Поясните более конкретно кто подпадает под эту категорию людей и с кем не нужно иметь дело? Вы имели в виду несостоятельного человека или кого?
А как сейчас отличить человека со 100% здоровыми зубами от имеющего пломбы и импланты?
Не факт… Причина может быть и в другом.
Реально в молодом возрасте не так уж много людей болеет. Можно сказать медицина свела на нет видимую разницу между физически слабыми и сильными.
Хороший такой запасик… Индия 1 млрд., Китай 1.2 млрд.… США 0.3 млрд., Россия 0.14 млрд.
На регуляцию никак не похоже — ведь численное превосходство, по сравнению с развитыми странами, в десятки раз.
Кстати, в долгосрочной перспективе медицина и понижение детской смертности может быть даже вредным. Если медицины нет — слабые умирают (оставим пока вопрос жалости) а сильные выживают. И с каждым годом генофонд улучшается. А когда лечим слабых — то становимся все слабее и слабее и в один прекрасный момент будем настолько слабы, что сами себе не сможем помочь.
Вот и думай теперь кто мудрее поступает: образованные европейцы или грязные индусы…
Java, первая ссылка в гугле (отправка gmail):
PHP, первая ссылка в Google отправка через gmail:
Вполне сопоставимо по сложности. Преимущество этого Java-кода — он более универсален, можно использовать и для консольных, и для десктопных и для Web. PHP более хардкорный.
Хотя ваша идея абсолютно ясна: задачи с одним и тем же названием могут отличаться по сложности в тысячи и десятки тысяч раз. Мой любимый пример — логгер. Самый простой способ логировать в C# — одна строчка: File.Write (ну 2 строчки, если нужен потокобезопасный). Однако почему то возникла необходимость в создании таких продуктов как log4net и NLog — а там работы на несколько человеко-месяцев.