Требования собраны, всем все понятно. Только абсурдировать не нужно, понятно что демагогическими приемами все можно свести к абсурду, любая фраза не формальна и не полна. По сути всем все понятно.
Идея такая, что для такой задачи не оптимально писать все с нуля а правильнее найти готовое решение.
Но! Прав ли я? Во-первых, мое решение не доделано — там сортируется сначала по цифре, потом по строке (но это ладно, можно поменять местами). Второе — не учитываются дубликаты (можно прибавить к каждой записи счетчик или задействовать Berkeley DB, вроде там дубликаты разрешены, но это не точно).
Как бы вы это решали? Искали бы сначала готовую библиотеку или же писали бы с нуля?
Ну и как думаете — если мое решение с LevelDB довести до ума — будет ли быстрее чем предложенные самописные решения на сотнях гигабайт данных? Ведь больше 2-3 Гб. никто проверять не хочет, а это размер, который полностью вмещается в ОЗУ. Когда в ОЗУ перестанет влазить — цифры могут быть другими.
Вот я реально не знаю. Нужно только проверять. А проверить с 50 Гб. данных — уже час времени.
S>Многие думают, что главное собрать требования а остальное легко — что требования собрать — это большая часть времени а разработка типа 15%.
Ну и смотрите сами:
S>Ну и как думаете — если мое решение с LevelDB довести до ума — будет ли быстрее чем предложенные самописные решения на сотнях гигабайт данных? Ведь больше 2-3 Гб. никто проверять не хочет, а это размер, который полностью вмещается в ОЗУ. Когда в ОЗУ перестанет влазить — цифры могут быть другими.
И потом вы сами пишете: S>Вот я реально не знаю. Нужно только проверять. А проверить с 50 Гб. данных — уже час времени.
Даже на простом примере вы, кажется, сами показали, что сколько отнимает времени на конкретно этом примере.
И еще раз, в пятый уже, кажется: вы говорите про задачу, одну фичу в рамках продукта. Этих фич в продукте — десятки и сотни. И помимо разработки этих фич нужно эти фичи придумать, продать, обернуть в красивую оболочку, поддерживать, писать документацию...
Патриот здравого смысла
Re[2]: Как бы вы делали эту задачу (переходим к конкретике)...
Здравствуйте, DiPaolo, Вы писали:
S>>Вот я реально не знаю. Нужно только проверять. А проверить с 50 Гб. данных — уже час времени. DP>Даже на простом примере вы, кажется, сами показали, что сколько отнимает времени на конкретно этом примере.
Это время относится к исследованиям.
DP>И еще раз, в пятый уже, кажется: вы говорите про задачу, одну фичу в рамках продукта. Этих фич в продукте — десятки и сотни. И помимо разработки этих фич нужно эти фичи придумать, продать, обернуть в красивую оболочку, поддерживать, писать документацию...
Продать и пр. — я не считаю, это мне не интересно.
Re: Как бы вы делали эту задачу (переходим к конкретике)...
Чтобы предметнее говорить, и так как вы не можете или не хотите разглашать конкретные примеры продуктов/проектов, вот вам пример ТЗ на рефакторинг готовой системы, рассчитанный на год, находящийся в публичном доступе.
DP>>И еще раз, в пятый уже, кажется: вы говорите про задачу, одну фичу в рамках продукта. Этих фич в продукте — десятки и сотни. И помимо разработки этих фич нужно эти фичи придумать, продать, обернуть в красивую оболочку, поддерживать, писать документацию...
S>Продать и пр. — я не считаю, это мне не интересно.
Я поражаюсь вашей неспособностью или упорному нежеланию слушать собеседников.
Патриот здравого смысла
Re[2]: Как бы вы делали эту задачу (переходим к конкретике)...
Здравствуйте, DiPaolo, Вы писали:
DP>Заметьте: там нет ничего про новый функционал. По сути, это про наведение порядка и подготовка площадки под дальнейшее активное использование.
А причем тут сбор требований? Наведение порядка — это как раз и есть имплементация. И это реально сложно и долго.
Re[4]: Как бы вы делали эту задачу (переходим к конкретике)...
Здравствуйте, DiPaolo, Вы писали:
DP>>>И еще раз, в пятый уже, кажется: вы говорите про задачу, одну фичу в рамках продукта. Этих фич в продукте — десятки и сотни. И помимо разработки этих фич нужно эти фичи придумать, продать, обернуть в красивую оболочку, поддерживать, писать документацию... S>>Продать и пр. — я не считаю, это мне не интересно. DP>Я поражаюсь вашей неспособностью или упорному нежеланию слушать собеседников.
Речь была о том, что сбор и анализ требований — это основная часть работы. Причем тут продажи и документация?
Re[5]: Как бы вы делали эту задачу (переходим к конкретике)...
) в разделе Shareware и бизнес. Это раздел, где обсуждают разработку продуктов и их бизнес-составляющие.
Изначальный вопрос ТСа:
Впервые планирую набирать разработчиков на удаленку. Когда человек ходит в офис тут более менее понятно. Как быть с удаленщиками? Может есть готовые схемы, софт и так далее? И в целом насколько по вашему опыту команда в несколько человек из разных городов будет хуже такой же но в офисе?
Ответ от меня:
Удаленка практически ничем в этом смысле не отличается от работы в офисе. При грамотном менеджменте (управлении) все будет тип-топ и вин-вин. Поясню.
[тут пункты]
Ну и еще раз вернусь к своему тезису в другом треде: стоит все же начать с хорошего руководителя/консультанта.
На что ТС просит совета:
Спасибо, интересно. Расскажи пож как ты видишь такого руководителя/консультанта? Какой опыт/стоимость? Фултайм или можно на несколько часов в неделю именно для выстраивания правильных процессов?
Разработчики как я понимаю предполагаются на полном доверии, интересно. Как быть с теми кто на частичной занятости? Изначально каждая задача переводится в часы на этапе планирования? Но тут тоже план от факта может сильно разойтись, в большую сторору разрабочик конечно докажет, в меньшую сомневаюсь. Да и в целом это будет тот еще гемор каждую задачу в часах заранее расписывать.
Тут вступаете вы:
D>Спасибо, интересно. Расскажи пож как ты видишь такого руководителя/консультанта? Какой опыт/стоимость? Фултайм или можно на несколько часов в неделю именно для выстраивания правильных процессов?
Вижу так — даешь конкретный проект с github, когда результат уже есть — и чел. должен сказать сколько времени разработчика определенного уровня заняло написание этого проекта — т.е., по сути, скажет сколько стоит разработка. Назовет сумму.
Если он этого не сможет — то как как сможет оценить то, чего еще нет?
D>Разработчики как я понимаю предполагаются на полном доверии, интересно.
Как разрешать конфликты внутри команды, когда один из разработчиков говорит что второй ничего не делает. Без умения оценить реальную работу — код — ничего не выйдет
D>Изначально каждая задача переводится в часы на этапе планирования?
Нифига не даст. По той причине, что не найдете специалиста, который заранее сможет предвидеть все задачи и как-то понести за это ответственность — как-то деньгами гарантировать, что задач не будет больше (что все учли) и что задачи верно оценены. Т.е. написать план — не проблема. Проблема потом гарантировать его исполнение деньгами, проблема что на этот план согласятся исполнители.
D>Да и в целом это будет тот еще гемор каждую задачу в часах заранее расписывать.
Не геммор а дурная работа.
Дальше вам говорят, что это не только про кодирование. Вы сказали, что ТС спрашивал про кодирование, на что обращают ваше внимание на раздел форума и то, о чем спрашивал ТС.
Патриот здравого смысла
Re[3]: Как бы вы делали эту задачу (переходим к конкретике)...
DP>Пишу вам в 5й, и уже последний раз. Дальше мне неинтересно общаться с человеком, который не слышит собеседника.
В той теме вам ответил — здесь обсуждаем другой вопрос — как бы вы решили конкретную задачу. Что-то требования то собрали, а вот как решить — никто сказать не может. Уже 2 недели обсуждаем.
Re[5]: Как бы вы делали эту задачу (переходим к конкретике)...
S>В той теме вам ответил — здесь обсуждаем другой вопрос — как бы вы решили конкретную задачу. Что-то требования то собрали, а вот как решить — никто сказать не может. Уже 2 недели обсуждаем.
Если нет никаких других требований, то уже в той теме было как минимум 2 решения: от ТСа и от вас. Вот и берем любое. Юзаем. Потому, если вдруг надо будет — оптимизируем. Если изначально было требование по скорости: сразу прикидываем по скорости. Если ни у кого в команде не было очень близкого опыта, чтобы сразу сказать, какое стоит выбрать решение, то создаем специальную задачу на рисерч. Даем ей 3-5 дней на выполнение. На выходе будут несколько рассмотренных вариантов, репорт с цифрами, и уже наброски решения. Потом, исходя из полученных знаний, выбираем окончательное решение и расписываем дальнейшие задачи. После чего делаем финальное решение.
Тут все очень зависит от контекста команды и проекта: какой стек знаний, какой стек CI/CD и прочие подобные вопросы. Одно дело — решить задачу с собеседования, другое — реальная задача в реальном окружении. Это окружение уже задает некоторые рамки, которые также влияют на скорость реализации и принятие решения.
Патриот здравого смысла
Re[6]: Как бы вы делали эту задачу (переходим к конкретике)...
DP>Если нет никаких других требований, то уже в той теме было как минимум 2 решения: от ТСа и от вас. Вот и берем любое. Юзаем. Потому, если вдруг надо будет — оптимизируем. Если изначально было требование по скорости: сразу прикидываем по скорости. Если ни у кого в команде не было очень близкого опыта, чтобы сразу сказать, какое стоит выбрать решение, то создаем специальную задачу на рисерч. Даем ей 3-5 дней на выполнение. На выходе будут несколько рассмотренных вариантов, репорт с цифрами, и уже наброски решения. Потом, исходя из полученных знаний, выбираем окончательное решение и расписываем дальнейшие задачи. После чего делаем финальное решение.
DP>Тут все очень зависит от контекста команды и проекта: какой стек знаний, какой стек CI/CD и прочие подобные вопросы. Одно дело — решить задачу с собеседования, другое — реальная задача в реальном окружении. Это окружение уже задает некоторые рамки, которые также влияют на скорость реализации и принятие решения.
Дополню: в качестве решения можно элементарно выделить тачку с 128 Гигами РАМа (она может быть в компании) и считать все в памяти. Что еще раз говорит о том, что нужно смотреть на контекст в реальности. А он может быть очень разным. А в другой компании это будет выгоднее считать где-то в кластере облаке.
Еще вопросы, которые я бы задал: насколько часто это нужно делать? На каком железе? Может это надо раз в месяц — можно мощный сервер на это время арендовать (да, тут будет вопрос, как туда сотню гигов закинуть). Может — это надо АРМовом мобильном проце делать на слабой железке, используемой для сетевого сниффера или для НАСа.
Патриот здравого смысла
Re: Как бы вы делали эту задачу (переходим к конкретике)...
Здравствуйте, vsb, Вы писали:
vsb>Почитал бы про алгоритмы внешней сортировке, выбрал бы оптимальный по скорости работы и реализации, реализовал бы на жава.
Почему не применить уже готовое решение, на которое у другого разработчика с зарплатой 200 тыс. долларов в год ушло много месяцев работы? Считаешь что ты умнее?
Re[3]: Как бы вы делали эту задачу (переходим к конкретике).
Здравствуйте, Shmj, Вы писали:
vsb>>Почитал бы про алгоритмы внешней сортировке, выбрал бы оптимальный по скорости работы и реализации, реализовал бы на жава.
S>Почему не применить уже готовое решение, на которое у другого разработчика с зарплатой 200 тыс. долларов в год ушло много месяцев работы? Считаешь что ты умнее?
В целом да, я очень редко встречаю код, которым бы я восхищался. Не знаю, умней ли я, или просто у того разработчика были задачи/требования, отличающиеся от моих (более вероятно). Но в целом я редко надеюсь найти подходящий для меня код. Вот недавно искал bloom filter для JS. Посмотрел несколько реализаций — все отстойные. Написал свою, мне она нравится, работает, ничего лишнего не делает, потратил пару часов, получил немножко фана, выучил 2 алгоритма, ну и нормально. Можешь поглумиться над велосипедистом: murmur332.js, BloomFilter.js
Здравствуйте, DiPaolo, Вы писали:
DP>Еще вопросы, которые я бы задал: насколько часто это нужно делать? На каком железе? Может это надо раз в месяц — можно мощный сервер на это время арендовать (да, тут будет вопрос, как туда сотню гигов закинуть). Может — это надо АРМовом мобильном проце делать на слабой железке, используемой для сетевого сниффера или для НАСа.
Всем кроме вас задача ясна. Вы пытаетесь размазать истину и вместо предложения решения — занимаетесь демагогией.
Понятно что по умолчанию мы подразумеваем не очень мощный среднестатистический компьютер, а не спец. железо.
Вместо того, чтобы подобрать хорошее решение — никто не будет закачивать файл по 100 Гб, потом скачивать обратно.
Re: Как бы вы делали эту задачу (переходим к конкретике)...
Здравствуйте, Shmj, Вы писали:
S>Ну ок, чтобы далеко не ходить, давайте популярную задачу, которую уже дважды на днях поднимали:
Чего за задача-то? Видео не смотрел и не буду.
S>Требования собраны, всем все понятно.
Хотелось бы их увидеть (в текстовом варианте, Кирилл и Мефодий даровали нам письменность).
S>Идея такая, что для такой задачи не оптимально писать все с нуля а правильнее найти готовое решение.
Идея правильная.
S>Как бы вы это решали? Искали бы сначала готовую библиотеку или же писали бы с нуля?
Мммм, надо смотреть требования.
S>Ну и как думаете — если мое решение с LevelDB довести до ума — будет ли быстрее чем предложенные самописные решения на сотнях гигабайт данных? Ведь больше 2-3 Гб. никто проверять не хочет, а это размер, который полностью вмещается в ОЗУ. Когда в ОЗУ перестанет влазить — цифры могут быть другими.
Вообще не важно. Важно чтобы удовлетворяло требованиям.
Счастье — это Glück!
Re[2]: Как бы вы делали эту задачу (переходим к конкретике)...
Здравствуйте, Dym On, Вы писали:
S>>Ну ок, чтобы далеко не ходить, давайте популярную задачу, которую уже дважды на днях поднимали: DO>Чего за задача-то? Видео не смотрел и не буду.
Вторая ссылка — там чел. привел под катом в текстовом виде.
S>>Ну и как думаете — если мое решение с LevelDB довести до ума — будет ли быстрее чем предложенные самописные решения на сотнях гигабайт данных? Ведь больше 2-3 Гб. никто проверять не хочет, а это размер, который полностью вмещается в ОЗУ. Когда в ОЗУ перестанет влазить — цифры могут быть другими. DO>Вообще не важно. Важно чтобы удовлетворяло требованиям.
Запустят на среднестатистическом компе с 8 Гб. памяти, половина из которых занято, и выберут самое быстрое решение, которое отработало 100 Гб. данных.
Re[3]: Как бы вы делали эту задачу (переходим к конкретике)...
Здравствуйте, Shmj, Вы писали:
DO>>Вообще не важно. Важно чтобы удовлетворяло требованиям. S>Запустят на среднестатистическом компе с 8 Гб. памяти, половина из которых занято, и выберут самое быстрое решение, которое отработало 100 Гб. данных.
Вот, отсутствуют требования к аппаратному обеспечению, на котором будут проводиться приемо-сдаточные испытания, нет требований по времени, не прописан регламент испытаний. А это все приведет к тому, что заказчики будут мотать вам нервы и шантажировать мотивированными отказами в приемке работ.