В случае непонятных багов — это другая ситуация, тут не возникает такого состояния, когда «точно известно, что делать дальше». А вот, например, когда баг найден и исправлен, и следующее действие — просто скопировать то же самое исправление ещё в 3 похожих участка кода, то тут я бы как раз и остановился (если, конечно, это не критичный баг в продакшене и подождёт до завтра).
На мой взгляд, в этом отношении программирование ни на йоту не отличается от многих других областей деятельности. Вот менеджеры в ходе почтовой переписки какое-то решение выработали, потом в протоколе его зафиксировали, и оно стало обязательным к исполнению. Сколько будет стоить их ошибка? Вот технический писатель готовит комплект документации и допускает ошибку. Сколько она будет стоить, учитывая тысячи возможных пользователей?
Примеры, которые вы приводите, тоже относятся к системному решению задач (для решения задачи создаётся и продумывается система) и, да, в них отчасти справедливы те же принципы.
Разница тут, на мой взгляд, не в цене ошибки, а в «дискретности» результата. Т.е. например менеджеры решили, что для замены сломанного компьютера работники должны писать заявку, а соответствующий отдел должен её регистрировать и высылать ответ. Если они не оговорили точный формат заявки и ответа, то люди на месте разберутся, «что-нибудь придумают». Программа же без чёткого формата просто не отработает.
И если менеджерам просто укажут на недоработку, то программисту ещё нужно будет доказать, что он вообще что-то делал, а не просто так сидел. И это не всегда возможно.
Поэтому, с точки зрения прокрастинации, менеджер и может себе позволить ответить на email-переписку невыспавшимся и прочитавшим по-диагонали, он не будет перед этим часами сидеть и приходить в нужное состояние.
Было бы также интересно почитать, как вы справляетесь с частой проблемой low-cost разработки — капризными клиентами, которые выбирают малобюджетные варианты, а потом пытаются «выжать все соки» из заказа, потому что денег на доработку не предвидится.
Меня всегда в таких задачках напрягает их оторванность от реальности. Они, конечно, неплохо подойдут как «тема для разговора» на собеседовании, но делать прямое соответствие «кол-во правильных ответов — шанс на приём» я бы крайне не рекомендовал. Потому что в реальности многие эти «решения» неприменимы и ущербны.
Поясню мысль.
Первая задачка (с последовательностью без числа) в реальности может встретиться, например, при работе с БД. Есть список каких-то записей (юзеры, товары, транзакции — не важно), у них есть ID от 1 до N (autoincrement), есть некая функция, которая их удаляет, нам нужно узнать, что было удалено.
Тут стоит заметить, что во-первых, обычно используется не удаление, а установка какого-нибудь status: disabled (или установка null в поле, если прямо так необходимо избавится от информации). Удаление может вызвать кучу проблем и головной боли в последствии, не надо так.
Во-вторых, обычно всё-таки не должно возникать ситуации «у нас в БД что-то пропало, неизвестно что». ID удалённого объекта должен записываться в момент удаления и обрабатываться сразу же.
Но ок, допустим, какое-то вероисповедание нам не позволяет исключить возникновение такой ситуации. Тогда в-третьих: даже если мы делаем проверку суммы сразу после удаления чего-то, никогда нет гарантии, что в самом деле что-то было удалено, или что была удалена только одна запись. Даже если сегодня это так, завтра функцию могут переписать.
В итоге, человек, который считает, что ответ с суммой — окончательный и достаточный для продакшена будет просто не прав. Тут либо переделка структуры, либо полный перебор ID'ов.
Вторая задачка (кувшины) — ну ок, лёгкая, математическая, чтобы решающий почувствовал себя увереннее. К IT отношения не имеет от слова «совсем».
Но вообще в реальных задачах такого типа (когда есть возможность что-то решить, нестандартно используя существующие объекты), нужно в первую очередь начать задавать вопросы.
Почему такая задача вообще возникла и к ней не готовы? Может, в ТЗ опечатка и нужно всё-таки 3 литра?
Почему у нас нет кувшина на 4 литра? Может, он всё-таки есть и стоит его поискать? Чтобы не занимать те два кувшина, которые явно уже предназначены для других целей и могут понадобиться остальным.
А если скоро опять возникнет такая задача? А если в следующий раз — 1/4 литра? Может, стоит озаботиться покупкой кувшина с литровыми отметками, а не тратить своё время на «костыльные» переливания?
Третья задачка (поменять переменные местами) — да, задачка интересная. В реальности встречается, но крайне редко. Тут только нужно пояснить, в этой самой реальности для решения используют встроенную функцию (обычно называется Swap), либо (на худой конец) третью переменную. А за неожиданный уход в побитовые операции пускают лучи неневисти (те, кому потом придётся поддерживать такой код).
А стоило оно того? Такие деньги можно и на обычной IT-работе заработать (возможно, не за такое же время, но всё же).
Зато теперь достоверно известно, что есть люди, которые финансово заинтересованы вас вычислить, найти и привести в РОВД. Как минимум, они точно смогут в суде оспорить сделку (сложно будет доказать, что вы выполнили «свою часть» сделки) и обязать вернуть деньги. Как максимум (как уже указали выше), тут может быть достаточно на статью. Да и налоговой тоже будет интересно.
Тратить значительную часть денег на комиссии, переводы и мини-аккаунты для вывода? Постоянно ограничивать себя в тратах, чтобы не светиться? Ворочаться, вспоминая, не забыл ли включить тор, когда в последний раз заходил на аккаунт? Вздрагивать от каждого стука в дверь?
Так себе, честно говоря.
Вычислить можно по тому, куда идут деньги, кто владеет сайтом/доменом, кто оплачивает его рекламу и хостинг. «Можно» тут в смысле «теоретически возможно», а не что каждый это может сам.
У кого в итоге оседают деньги? У рекламщиков. Такие сайты не выходят по поисковым запросам, поэтому существуют по принципу, грубо «вкинул 1к в рекламу, повезёт — вернётся 2к, не повезёт — 500». Рекламой могут быть баннеры, всплывающие окна, спам. Можете сами провести аналогию с казино и кто в этом случае является его «владельцем».
Мне уже страшно от того, что через пару лет придётся разгребать код людей, вдохновившихся этой статьёй. Особенно при доведении этих принципов до абсолюта.
function getMapValues(map) {
return [...map.values()];
}
Вот это вообще гениально. На ровном месте создаётся обёртка для синтаксиса языка, которая не несёт вообще никакой пользы.
Просто представьте, что через пару лет после написания этого кода у вас возникла ошибка — вы захотели вывести несколько коллекций в порядке возрастания суммы, но результат вас удивил — порядок явно не тот. В чём проблема — неправильные исходные данные ('null' вместо null), ошибка в сортировке или в функции определения веса?
Вы начинаете копать функцию определения веса и видите этот спагетти-код из микро-функций, которые разбросаны по разным местам разных файлов вашего проекта (код-то «переиспользуемый»). И каждый раз, встретив функцию, вам нужно её индивидуально искать, разбираться, что она делает, и потом возвращаться к тому месту, где остановились.
Не забывайте, мы лишь рассматривали простую функцию подсчёта веса коллекций. Примитив. А теперь представьте, что у нас что-то сложнее и ближе к реальному миру — например, функция, которая определяет, сколько нужно коробок, чтобы переслать N предметов разных габаритов (с учётом всех нюансов — габаритов, ограничений по весу, требований не класть в одну коробку тяжёлое с хрупким, таможенных особенностей). Сколько там можно написать микро-функций? Сколько времени у вас займёт найти среди них ошибку округления?
От статьи как-то веет маркетологической «игрой в слова», без всякой чёткой теории.
Если блок со скидкой 90% и таймером повысил продажи — так естественно, это же M — мотивация.
Если тот же самый блок понизил продажи — так чего ж вы хотели, это же T — доверие, кто же в здравом уме будет доверять скидке в 90%?
Если нужно повысить продажи, как определить, чего именно из S T M не хватает на сайте? Есть ли примеры «golden ratio»? Кейсы «было-стало» с цифрами повышения конверсии? «На глаз»-то и без всякой теории можно что-нибудь придумать.
Просто если брать изначальные вопросы как «стоит ли вносить правку Х? повысит ли она конверсию? насколько? это оправдает затрату человеко-часов?», то теория вообще не может дать уверенного ответа, даже в примере с «игрой со шрифтами».
Если задав себе вопрос: повлияет ли эта правка на удовлетворенность пользователя, его доверие к нам или мотивацию к покупке? — не получается дать определенного ответа, её вносить не следует. Это относится к игре со шрифтами, цветами, «сделать красным жирным телефоном в шапке» и прочему. Только конверсия и максимальная эффективность.
Привлекательность — приятное графическое оформление, соответствующее идеи бренда, вызывает у пользователя доверие и желание изучить сайт более глубоко. [+ S, + T]
Сроки. Это важный критерий для заказчика, особенно для малого бизнеса. Клиент может говорить, что это для него не важно, но это не правда. Чем быстрее вы сдадите ему рабочий сайт, тем с большей вероятностью он вам заплатит и порекомендует знакомым. Определите адекватные сроки, чуть меньше чем по рынку. В последствии я расскажу, как их выполнять.
От сроков напрямую зависит себестоимость выполнения работы для вас. Больше сроки — больше уходит на з/п.
Цена. Начинать советую с минимальной среди конкурентов цены, но не ниже рентабельности. Минимальная цена даст вам возможность создать профицит заказов, который очень потребуется что бы внедрять все последующие советы. Понятно, что только лишь благодаря низкой цене – заказы не появятся, но пока у вас ничего больше то и нет (если есть, то отлично!).
А вот тут я бы поспорил. Конечно, казалось бы, снизив цены мы увеличиваем поток заказчиков и снижаем их ожидания (никто не будет от простого сайтика за 20 т.р. требовать чего-то сверхъестественного), ведь так? На деле всё куда хуже.
Проблема в том, что обычно те заказчики, которые гонятся за низкой ценой — самые проблемные и дотошные на приёмке. У них ведь нет денег заплатить потом за доработку сайта кому-то ещё — вот они и будут пробовать выжать из вас все соки за свою оплату. Обычно это начинается с того, что просят дополнительную скидку. Откажешь — и ты уже психологически «подписался» под то, что приёмка будет идти «до последней запятой» — раз уж такая премиум услуга, что дешевле нельзя. Это как по тому, что было чётко прописано в ТЗ, так и по тому, что не было — «поиграйтесь со шрифтами», «чего-то скучно выглядит, переделайте».
И, да, попробуйте только предложить таким заказчикам платное составление подробного ТЗ — много узнаете о том, сколько должна стоить «какая-то бумажка».
Поверьте, сейчас есть достаточно людей, готовых платить нормальные деньги за нормальную работу. Таких, с которыми и в будущем приятно будет работать. А занижение цен, это просто путь в никуда.
Ну почему же «нет шансов». Могут ввести рейтинг ВУЗов (кто больше правок внёс), те в свою очередь поручат преподавателям, а те — студентам.
Не так уж и плохо, в конце концов — куда больше стимула неделями писать/править статью «за зачёт», чем «за просто так», а потом ещё и получать «удалено за отсутствие значимости».
Но это если не окажется просто очередным распилом, конечно.
«Печально, что менеджмент превалирует над техническим процессом.»
Единственный способ превалирования технического процесса — работать на себя. Бесплатно. Либо проинвестировать компанию из своего кошелька.
Не получится вот так просто придти в компанию, и сказать «платите мне среднюю месячную зарплату по стране каждую неделю, а я буду сам решать, будет релиз продукта в этом году или нет».
«Вопреки мнению автора, производство – это написание и отладка программного кода. Именно это и является продуктом, а остальное – не более чем схема его реализации.»
Зависит от бизнеса. В большинстве стартапов, даже чисто технологических это совсем не так. Часто продуктом являются просмотры пользователей, которые продаются рекламодателям. А пользователей ведёт маркетинг, а не качество реализации (см. фейсбук, ранние дни твиттера (картинка с китом)).
Но даже в тех компаниях, где качество продукта чего-то стоит, менеджмент и маркетинг не являются лишь «обслуживающим персоналом единственных работающих людей — программистов». Они выполняют работы и принимают решения, в основном стремясь к тому, чтобы компания выжила, а не ради соблюдения «ритуала техпроцесса».
«А что до рисков… Ну вы же сами хотели капитализм? Получите, распишитесь!»
Предположим, вам предложили работать в компании за процент от прибыли. Компания получила большую прибыль — вы получаете миллионы. Компания понесла убытки — вам нужно продать квартиру и взять кредит, чтобы их покрыть. Вышла в ноль — все остаются при своих. Вы бы хотели такой капитализм?
Это естественно, что люди, берущие на себя риск, стараются его минимизировать. И инвесторы тут не исключение — потому им и нужно сначала убедиться, что «криво, быстро и на коленке» — хоть немного работает.
«Уже давно пора наплевать на весь мир и жить своими реалиями, которые требуют весьма жёсткого и принципиального планирования, не считающегося с рыночными «реалиями» никак.»
Вся статья выше как раз о том, реалии не требуют жёсткого и принципиального планирования. Реалии требуют гибкости и скорости.
Не поймите меня неправильно, я бы тоже был рад если бы все эти «жадные» инвесторы перестали уже трястись над своими деньгами, перестраховываясь и ожидая возврата, а просто раздавали бы их стартапам для развлечения.
«А давайте три года делать сервис с геолокацией, вот миллион, как закончится — просите ещё.»
«Надоела геолокация? Проект ещё не успели в третий раз переписать перед запуском, а конкуренты уже заняли весь рынок? Ну ладно, зато как хорошо посидели. Вот ещё миллион, давайте теперь big data поковыряем.»
Но так уж лучше было бы помечтать, что мне просто в карман деньги сразу положат, без всей этой имитации бурной деятельности.
Всё бы хорошо, вот только такой проект требует публичной поддержки, а с таким названием ему это вряд ли светит (никого не научил горький опыт ГМО?).
Обывателю достаточно показать по первому каналу кадр, где автор заявляет о своём проекте «Атака на СОРМ», а затем объяснить, что СОРМ расшифровывается как «Система (технических средств для обеспечения функций) оперативно-розыскных мероприятий». То есть человек покушается (атакует!) на систему, которая ловит «плохих парней». Вот и всё, у обывателя уже сложилось мнение, а дальше читать по теме он и не станет.
Тут смысл не столько в попрошайничестве, сколько в механике такого заработка. Могут потом возникать неудобные вопросы к себе. Не буду полностью расписывать свою точку зрения, просто перечислю примеры:
«Люди заплатили мне за книгу (качество и писательский талант) или за известность? Если Алла Пугачёва (или Тёма Лебедев) решит закраудфандить свою книгу и получит больше, что это будет значить?»
«Если человек оплатил четверть книги, а потом озвучил своё небольшое пожелание — как быть? Как ни решишь, сам факт просьбы уже повлияет на то, как ты будешь писать книгу — пусть даже подсознательно. С какой суммы начинать прислушиваться к просьбам? А если они будут противоречить?»
«Люди не отдают свои деньги за всё подряд — есть те, кто делает это, чтобы успокоить совесть на время. Значит ли это, что я потенциально отобрал деньги у тех сирот, которым они помогли бы вместо меня?»
«Блин, нужно новую машину покупать, родственник приболел, заказчик сценария кинул. Денег не хватает. А ведь я бы мог просто написать пост в своём блоге, ни о чём даже специально не просить, просто описать ситуацию. Незаметная кнопка „помочь деньгами“ в углу сайта за несколько лет принесла бы меньше, чем один такой пост. А если не писать, то что теперь, совсем про свою личную жизнь не упоминать?»
Именно поэтому, вероятно, Леонид так и оформил свой запрос, чтобы избежать части из них.
Зависит от клиента. Если клиент — технически подкованный и может сам потом его снять — отлично. Если нет, то он может очень резко отреагировать на фразу:
«Я тут у вас поработал, все файлы закрыл от изменений. Теперь чтобы что-нибудь поменять, вам нужно будет сначала связаться со мной, чтобы я поставил права.»
Но статья там была скорее про то, как решить проблему, а не как можно было ранее подстелить соломы в нужную яму.
Вы явно недооцениваете влияние массовой культуры на любую человеческую деятельность, если вам нужны какие-то доказательства корреляции.
Вот например, знаменитая (на весь мир) российская черта — гопники. Да-да, те самые, что в кепках, коротко стриженные, в спортивной одежде, сидят на корточках, грызут семечки, пьют пиво и разговаривают на тюремном жаргоне.
Конечно, не все из них полностью соответствуют этим приметам, и сами по себе эти приметы ни о чём не говорят. Но вы никогда не задумывались, почему они так часто встречаются именно среди гопников? Вы же не будете, в самом деле, утверждать, что каждый гопник дошёл до всего этого самостоятельно и независимо, без всякого влияния массовой культуры? Нет конечно, просто в определённых кругах принято, что «реальные пацаны» выглядят именно так — вот они так и стараются выглядеть. А ещё в этих же кругах принято, что «реальные пацаны» должны/могут совершать определённые поступки — вот они так и поступают, не важно как это соответствует уголовному кодексу и моральным нормам остального общества.
И это проблема. Серьёзная. И её надо как-то решать. И другие, подобные ей, тоже.
Можно, конечно, вспомнить очень русскую цитату «вот когда убьют — тогда и приходите» и оставить проблему решать саму себя. (спойлер — тюремными заключениями за преступления эта проблема только усугубляется)
А можно стараться хоть что-то сделать с массовой культурой. Хоть как-то повлиять. И в интернете, и по ТВ, и на улицах. А что ещё предлагаете делать?
Всё, что я хочу показать этими комментариями, это что несмотря на всю абсурдность, на первый взгляд, подобных запретов, само по себе направление изначально имеет в себе разумные зёрна. И если не загубить их реализацией, то и результат будет в целом положительный.
Вот на секунду, оглянитесь сейчас на весь этот тред и прочувствуйте всю глубину иронии. Два типа обсуждений:
1) Бравые гиктаймовцы _борются с бюрократией_, прикапываясь к строкам в документах, которые можно интерпретировать в свою пользу. Про здравый смысл и правильность конкретных действий разговор не идёт, главное «чтобы соответствовало букве Документа». Применимость Документа к реальной жизни под вопрос не ставится.
2) Бравые гиктаймовцы высмеивают аргументацию правительства в стиле «сегодня он прочитал статью про воровство, а завтра воровать начнёт», при этом свою аргументацию «сегодня закрывают статьи, а завтра закроют детективы, шансон и лично тебя» считают незыблимой.
Не хотите перевести разговор в конкретику? Если бы у вас была возможность закрытием 1% статей в интернете предотвратить N тысяч реальных преступлений — сделали ли бы вы это? Начиная от какого минимального N? Вопрос, заметьте, не в том, откуда берётся N, а в том, что по-вашему лучше — мир с N преступлений или мир с M закрытых статей.
Да тут дело не только в контроле и Трудовом Кодексе, я считаю. Просто не удобно это большинству работодателей.
Сразу очерчу область своего опыта — сфера IT, РФ.
Нужно подписать что-то — проблема. Особенно, когда это нужно сделать до конца рабочего дня (на это может быть много причин, особенно в РФ).
Помочь коллеге — «сходи, пожалуйста, посмотри, что у него там не получается» — тоже проблема. Screen-sharing и skype тут работают только в теории.
Работодателю/менеджеру увидеть, что у работника что-то не получается и помочь (обратная ситуация) — тоже не выйдет. В лучшем случае он узнает о проблеме только когда работник уже испробовал все способы самостоятельно её решить, в худшем — по провалу сроков.
Сам по себе человек в офисе просто полезен, особенно айтишник. И, конечно, некоторые айтишники с гордостью будут заявлять, что не нанимались заниматься низкоуровневой «сисадминской» работой или, боже упаси, «коробки таскать». Однако, на деле такая необходимость порой возникает. И тут у офисного работника несомненное преимущество по сравнению с удалёнщиком — его хотя бы попросить можно и, скорее всего, он не откажет.
Ну и просто обычное общение и обмен опытом. Удалёнщику неудобно будет написать «Слушай, а ты каким браузером сейчас пользуешься? Я вот думал на Хром перейти...», мало ли чем он сейчас занят или вообще не на связи. А подойти к офисному работнику в курилке или после работы с подобным вопросом — обычное дело. А из таких разговоров можно почерпнуть много нового, в том числе и того, что в итоге пригодится в работе.
Это всё не значит, что нанимать удалёнщика — явная ошибка для работодателя. Просто многие из них уже привыкли надеяться на эти дополнительные плюсы и потому, при прочих равных, предпочтут нанять себе офисного работника, даже если новое рабочее место придётся за свой счёт содержать. Тут либо удалёнщик должен обходиться заметно дешевле, либо качеством работы полностью компенсировать эти недостатки.
Да зачем, обычные тролли, которые будут посылать «подозрительные смс» мужу/жене, либо обличительные письма «он/она тебе изменяет», либо писать гадости про человека начальнику (уволили-спился-развёлся — не редкая последовательность). Мало ли подобных вещей можно придумать.
Я бы поостерёгся иметь людей, которые на 10k+ долларов заинтересованы в моём разводе.
Примеры, которые вы приводите, тоже относятся к системному решению задач (для решения задачи создаётся и продумывается система) и, да, в них отчасти справедливы те же принципы.
Разница тут, на мой взгляд, не в цене ошибки, а в «дискретности» результата. Т.е. например менеджеры решили, что для замены сломанного компьютера работники должны писать заявку, а соответствующий отдел должен её регистрировать и высылать ответ. Если они не оговорили точный формат заявки и ответа, то люди на месте разберутся, «что-нибудь придумают». Программа же без чёткого формата просто не отработает.
И если менеджерам просто укажут на недоработку, то программисту ещё нужно будет доказать, что он вообще что-то делал, а не просто так сидел. И это не всегда возможно.
Поэтому, с точки зрения прокрастинации, менеджер и может себе позволить ответить на email-переписку невыспавшимся и прочитавшим по-диагонали, он не будет перед этим часами сидеть и приходить в нужное состояние.
Было бы также интересно почитать, как вы справляетесь с частой проблемой low-cost разработки — капризными клиентами, которые выбирают малобюджетные варианты, а потом пытаются «выжать все соки» из заказа, потому что денег на доработку не предвидится.
Поясню мысль.
Первая задачка (с последовательностью без числа) в реальности может встретиться, например, при работе с БД. Есть список каких-то записей (юзеры, товары, транзакции — не важно), у них есть ID от 1 до N (autoincrement), есть некая функция, которая их удаляет, нам нужно узнать, что было удалено.
Тут стоит заметить, что во-первых, обычно используется не удаление, а установка какого-нибудь status: disabled (или установка null в поле, если прямо так необходимо избавится от информации). Удаление может вызвать кучу проблем и головной боли в последствии, не надо так.
Во-вторых, обычно всё-таки не должно возникать ситуации «у нас в БД что-то пропало, неизвестно что». ID удалённого объекта должен записываться в момент удаления и обрабатываться сразу же.
Но ок, допустим, какое-то вероисповедание нам не позволяет исключить возникновение такой ситуации. Тогда в-третьих: даже если мы делаем проверку суммы сразу после удаления чего-то, никогда нет гарантии, что в самом деле что-то было удалено, или что была удалена только одна запись. Даже если сегодня это так, завтра функцию могут переписать.
В итоге, человек, который считает, что ответ с суммой — окончательный и достаточный для продакшена будет просто не прав. Тут либо переделка структуры, либо полный перебор ID'ов.
Вторая задачка (кувшины) — ну ок, лёгкая, математическая, чтобы решающий почувствовал себя увереннее. К IT отношения не имеет от слова «совсем».
Но вообще в реальных задачах такого типа (когда есть возможность что-то решить, нестандартно используя существующие объекты), нужно в первую очередь начать задавать вопросы.
Почему такая задача вообще возникла и к ней не готовы? Может, в ТЗ опечатка и нужно всё-таки 3 литра?
Почему у нас нет кувшина на 4 литра? Может, он всё-таки есть и стоит его поискать? Чтобы не занимать те два кувшина, которые явно уже предназначены для других целей и могут понадобиться остальным.
А если скоро опять возникнет такая задача? А если в следующий раз — 1/4 литра? Может, стоит озаботиться покупкой кувшина с литровыми отметками, а не тратить своё время на «костыльные» переливания?
Третья задачка (поменять переменные местами) — да, задачка интересная. В реальности встречается, но крайне редко. Тут только нужно пояснить, в этой самой реальности для решения используют встроенную функцию (обычно называется Swap), либо (на худой конец) третью переменную. А за неожиданный уход в побитовые операции пускают лучи неневисти (те, кому потом придётся поддерживать такой код).
Зато теперь достоверно известно, что есть люди, которые финансово заинтересованы вас вычислить, найти и привести в РОВД. Как минимум, они точно смогут в суде оспорить сделку (сложно будет доказать, что вы выполнили «свою часть» сделки) и обязать вернуть деньги. Как максимум (как уже указали выше), тут может быть достаточно на статью. Да и налоговой тоже будет интересно.
Тратить значительную часть денег на комиссии, переводы и мини-аккаунты для вывода? Постоянно ограничивать себя в тратах, чтобы не светиться? Ворочаться, вспоминая, не забыл ли включить тор, когда в последний раз заходил на аккаунт? Вздрагивать от каждого стука в дверь?
Так себе, честно говоря.
Вычислить можно по тому, куда идут деньги, кто владеет сайтом/доменом, кто оплачивает его рекламу и хостинг. «Можно» тут в смысле «теоретически возможно», а не что каждый это может сам.
У кого в итоге оседают деньги? У рекламщиков. Такие сайты не выходят по поисковым запросам, поэтому существуют по принципу, грубо «вкинул 1к в рекламу, повезёт — вернётся 2к, не повезёт — 500». Рекламой могут быть баннеры, всплывающие окна, спам. Можете сами провести аналогию с казино и кто в этом случае является его «владельцем».
Вот это вообще гениально. На ровном месте создаётся обёртка для синтаксиса языка, которая не несёт вообще никакой пользы.
Просто представьте, что через пару лет после написания этого кода у вас возникла ошибка — вы захотели вывести несколько коллекций в порядке возрастания суммы, но результат вас удивил — порядок явно не тот. В чём проблема — неправильные исходные данные ('null' вместо null), ошибка в сортировке или в функции определения веса?
Вы начинаете копать функцию определения веса и видите этот спагетти-код из микро-функций, которые разбросаны по разным местам разных файлов вашего проекта (код-то «переиспользуемый»). И каждый раз, встретив функцию, вам нужно её индивидуально искать, разбираться, что она делает, и потом возвращаться к тому месту, где остановились.
Не забывайте, мы лишь рассматривали простую функцию подсчёта веса коллекций. Примитив. А теперь представьте, что у нас что-то сложнее и ближе к реальному миру — например, функция, которая определяет, сколько нужно коробок, чтобы переслать N предметов разных габаритов (с учётом всех нюансов — габаритов, ограничений по весу, требований не класть в одну коробку тяжёлое с хрупким, таможенных особенностей). Сколько там можно написать микро-функций? Сколько времени у вас займёт найти среди них ошибку округления?
Если блок со скидкой 90% и таймером повысил продажи — так естественно, это же M — мотивация.
Если тот же самый блок понизил продажи — так чего ж вы хотели, это же T — доверие, кто же в здравом уме будет доверять скидке в 90%?
Если нужно повысить продажи, как определить, чего именно из S T M не хватает на сайте? Есть ли примеры «golden ratio»? Кейсы «было-стало» с цифрами повышения конверсии? «На глаз»-то и без всякой теории можно что-нибудь придумать.
Просто если брать изначальные вопросы как «стоит ли вносить правку Х? повысит ли она конверсию? насколько? это оправдает затрату человеко-часов?», то теория вообще не может дать уверенного ответа, даже в примере с «игрой со шрифтами».
От сроков напрямую зависит себестоимость выполнения работы для вас. Больше сроки — больше уходит на з/п.
А вот тут я бы поспорил. Конечно, казалось бы, снизив цены мы увеличиваем поток заказчиков и снижаем их ожидания (никто не будет от простого сайтика за 20 т.р. требовать чего-то сверхъестественного), ведь так? На деле всё куда хуже.
Проблема в том, что обычно те заказчики, которые гонятся за низкой ценой — самые проблемные и дотошные на приёмке. У них ведь нет денег заплатить потом за доработку сайта кому-то ещё — вот они и будут пробовать выжать из вас все соки за свою оплату. Обычно это начинается с того, что просят дополнительную скидку. Откажешь — и ты уже психологически «подписался» под то, что приёмка будет идти «до последней запятой» — раз уж такая премиум услуга, что дешевле нельзя. Это как по тому, что было чётко прописано в ТЗ, так и по тому, что не было — «поиграйтесь со шрифтами», «чего-то скучно выглядит, переделайте».
И, да, попробуйте только предложить таким заказчикам платное составление подробного ТЗ — много узнаете о том, сколько должна стоить «какая-то бумажка».
Поверьте, сейчас есть достаточно людей, готовых платить нормальные деньги за нормальную работу. Таких, с которыми и в будущем приятно будет работать. А занижение цен, это просто путь в никуда.
Не так уж и плохо, в конце концов — куда больше стимула неделями писать/править статью «за зачёт», чем «за просто так», а потом ещё и получать «удалено за отсутствие значимости».
Но это если не окажется просто очередным распилом, конечно.
Единственный способ превалирования технического процесса — работать на себя. Бесплатно. Либо проинвестировать компанию из своего кошелька.
Не получится вот так просто придти в компанию, и сказать «платите мне среднюю месячную зарплату по стране каждую неделю, а я буду сам решать, будет релиз продукта в этом году или нет».
«Вопреки мнению автора, производство – это написание и отладка программного кода. Именно это и является продуктом, а остальное – не более чем схема его реализации.»
Зависит от бизнеса. В большинстве стартапов, даже чисто технологических это совсем не так. Часто продуктом являются просмотры пользователей, которые продаются рекламодателям. А пользователей ведёт маркетинг, а не качество реализации (см. фейсбук, ранние дни твиттера (картинка с китом)).
Но даже в тех компаниях, где качество продукта чего-то стоит, менеджмент и маркетинг не являются лишь «обслуживающим персоналом единственных работающих людей — программистов». Они выполняют работы и принимают решения, в основном стремясь к тому, чтобы компания выжила, а не ради соблюдения «ритуала техпроцесса».
«А что до рисков… Ну вы же сами хотели капитализм? Получите, распишитесь!»
Предположим, вам предложили работать в компании за процент от прибыли. Компания получила большую прибыль — вы получаете миллионы. Компания понесла убытки — вам нужно продать квартиру и взять кредит, чтобы их покрыть. Вышла в ноль — все остаются при своих. Вы бы хотели такой капитализм?
Это естественно, что люди, берущие на себя риск, стараются его минимизировать. И инвесторы тут не исключение — потому им и нужно сначала убедиться, что «криво, быстро и на коленке» — хоть немного работает.
«Уже давно пора наплевать на весь мир и жить своими реалиями, которые требуют весьма жёсткого и принципиального планирования, не считающегося с рыночными «реалиями» никак.»
Вся статья выше как раз о том, реалии не требуют жёсткого и принципиального планирования. Реалии требуют гибкости и скорости.
Не поймите меня неправильно, я бы тоже был рад если бы все эти «жадные» инвесторы перестали уже трястись над своими деньгами, перестраховываясь и ожидая возврата, а просто раздавали бы их стартапам для развлечения.
«А давайте три года делать сервис с геолокацией, вот миллион, как закончится — просите ещё.»
«Надоела геолокация? Проект ещё не успели в третий раз переписать перед запуском, а конкуренты уже заняли весь рынок? Ну ладно, зато как хорошо посидели. Вот ещё миллион, давайте теперь big data поковыряем.»
Но так уж лучше было бы помечтать, что мне просто в карман деньги сразу положат, без всей этой имитации бурной деятельности.
Обывателю достаточно показать по первому каналу кадр, где автор заявляет о своём проекте «Атака на СОРМ», а затем объяснить, что СОРМ расшифровывается как «Система (технических средств для обеспечения функций) оперативно-розыскных мероприятий». То есть человек покушается (атакует!) на систему, которая ловит «плохих парней». Вот и всё, у обывателя уже сложилось мнение, а дальше читать по теме он и не станет.
«Люди заплатили мне за книгу (качество и писательский талант) или за известность? Если Алла Пугачёва (или Тёма Лебедев) решит закраудфандить свою книгу и получит больше, что это будет значить?»
«Если человек оплатил четверть книги, а потом озвучил своё небольшое пожелание — как быть? Как ни решишь, сам факт просьбы уже повлияет на то, как ты будешь писать книгу — пусть даже подсознательно. С какой суммы начинать прислушиваться к просьбам? А если они будут противоречить?»
«Люди не отдают свои деньги за всё подряд — есть те, кто делает это, чтобы успокоить совесть на время. Значит ли это, что я потенциально отобрал деньги у тех сирот, которым они помогли бы вместо меня?»
«Блин, нужно новую машину покупать, родственник приболел, заказчик сценария кинул. Денег не хватает. А ведь я бы мог просто написать пост в своём блоге, ни о чём даже специально не просить, просто описать ситуацию. Незаметная кнопка „помочь деньгами“ в углу сайта за несколько лет принесла бы меньше, чем один такой пост. А если не писать, то что теперь, совсем про свою личную жизнь не упоминать?»
Именно поэтому, вероятно, Леонид так и оформил свой запрос, чтобы избежать части из них.
«Я тут у вас поработал, все файлы закрыл от изменений. Теперь чтобы что-нибудь поменять, вам нужно будет сначала связаться со мной, чтобы я поставил права.»
Но статья там была скорее про то, как решить проблему, а не как можно было ранее подстелить соломы в нужную яму.
Вот например, знаменитая (на весь мир) российская черта — гопники. Да-да, те самые, что в кепках, коротко стриженные, в спортивной одежде, сидят на корточках, грызут семечки, пьют пиво и разговаривают на тюремном жаргоне.
Конечно, не все из них полностью соответствуют этим приметам, и сами по себе эти приметы ни о чём не говорят. Но вы никогда не задумывались, почему они так часто встречаются именно среди гопников? Вы же не будете, в самом деле, утверждать, что каждый гопник дошёл до всего этого самостоятельно и независимо, без всякого влияния массовой культуры? Нет конечно, просто в определённых кругах принято, что «реальные пацаны» выглядят именно так — вот они так и стараются выглядеть. А ещё в этих же кругах принято, что «реальные пацаны» должны/могут совершать определённые поступки — вот они так и поступают, не важно как это соответствует уголовному кодексу и моральным нормам остального общества.
И это проблема. Серьёзная. И её надо как-то решать. И другие, подобные ей, тоже.
Можно, конечно, вспомнить очень русскую цитату «вот когда убьют — тогда и приходите» и оставить проблему решать саму себя. (спойлер — тюремными заключениями за преступления эта проблема только усугубляется)
А можно стараться хоть что-то сделать с массовой культурой. Хоть как-то повлиять. И в интернете, и по ТВ, и на улицах. А что ещё предлагаете делать?
Всё, что я хочу показать этими комментариями, это что несмотря на всю абсурдность, на первый взгляд, подобных запретов, само по себе направление изначально имеет в себе разумные зёрна. И если не загубить их реализацией, то и результат будет в целом положительный.
1) Бравые гиктаймовцы _борются с бюрократией_, прикапываясь к строкам в документах, которые можно интерпретировать в свою пользу. Про здравый смысл и правильность конкретных действий разговор не идёт, главное «чтобы соответствовало букве Документа». Применимость Документа к реальной жизни под вопрос не ставится.
2) Бравые гиктаймовцы высмеивают аргументацию правительства в стиле «сегодня он прочитал статью про воровство, а завтра воровать начнёт», при этом свою аргументацию «сегодня закрывают статьи, а завтра закроют детективы, шансон и лично тебя» считают незыблимой.
Не хотите перевести разговор в конкретику? Если бы у вас была возможность закрытием 1% статей в интернете предотвратить N тысяч реальных преступлений — сделали ли бы вы это? Начиная от какого минимального N? Вопрос, заметьте, не в том, откуда берётся N, а в том, что по-вашему лучше — мир с N преступлений или мир с M закрытых статей.
Сразу очерчу область своего опыта — сфера IT, РФ.
Нужно подписать что-то — проблема. Особенно, когда это нужно сделать до конца рабочего дня (на это может быть много причин, особенно в РФ).
Помочь коллеге — «сходи, пожалуйста, посмотри, что у него там не получается» — тоже проблема. Screen-sharing и skype тут работают только в теории.
Работодателю/менеджеру увидеть, что у работника что-то не получается и помочь (обратная ситуация) — тоже не выйдет. В лучшем случае он узнает о проблеме только когда работник уже испробовал все способы самостоятельно её решить, в худшем — по провалу сроков.
Сам по себе человек в офисе просто полезен, особенно айтишник. И, конечно, некоторые айтишники с гордостью будут заявлять, что не нанимались заниматься низкоуровневой «сисадминской» работой или, боже упаси, «коробки таскать». Однако, на деле такая необходимость порой возникает. И тут у офисного работника несомненное преимущество по сравнению с удалёнщиком — его хотя бы попросить можно и, скорее всего, он не откажет.
Ну и просто обычное общение и обмен опытом. Удалёнщику неудобно будет написать «Слушай, а ты каким браузером сейчас пользуешься? Я вот думал на Хром перейти...», мало ли чем он сейчас занят или вообще не на связи. А подойти к офисному работнику в курилке или после работы с подобным вопросом — обычное дело. А из таких разговоров можно почерпнуть много нового, в том числе и того, что в итоге пригодится в работе.
Это всё не значит, что нанимать удалёнщика — явная ошибка для работодателя. Просто многие из них уже привыкли надеяться на эти дополнительные плюсы и потому, при прочих равных, предпочтут нанять себе офисного работника, даже если новое рабочее место придётся за свой счёт содержать. Тут либо удалёнщик должен обходиться заметно дешевле, либо качеством работы полностью компенсировать эти недостатки.
Я бы поостерёгся иметь людей, которые на 10k+ долларов заинтересованы в моём разводе.