Архив метки: программирование

Мультипроектность по Сазерленду

За годы проведённые на фрилансе я, как правило, занимался огромным количеством проектов одновременно. Данная практика была обусловлена тем, что в самом начале этого невероятно сложного пути — работы не было вообще никакой. И последующие появления любого намёка на удачный проект — бронировался авансом наперёд (т.к. часть проектов непременно само собой отваливалось). «Вы заняты?Нет!«. Именно поэтому никто на фрилансе (сейчас раскрою одну большую тайну) никогда не ставит статус «Занято». Никто, кроме меня 🙂

Так вот, недавно прочитал книжку Джеффа Сазерленда: «SCRUM. Революционный метод управления проектами» — довольно-таки спорную, но достаточно интересную. И вот в одной из глав там был описан забавный эксперимент, который меня определённо заставил задуматься.

Суть такова: возьмите лист бумаги, нарисуйте три колонки: «Арабские числа«, «Римские числа«, «Буквы«. Приготовьте таймер. Задача следующая — заполнить данную матрицу 3×10, обязательно слева-направо. Т.е. начинаем с «1» арабской, следующую пишем «I» римскую, затем латинскую букву «A«; переходим к следующему ряду — «2«, «II«, «B» и т.д. до 10 включительно. У вас это займёт какое-то время, запомните его. Теперь выполним вторую часть эксперимента — заполните эту же матрицу, но теперь вертикально, а не горизонтально — т.е. сверху-вниз. Сначала вводим все арабские цифры: «1«, «2«… «10«; римские «I«, «II«… «X» и латинские буквы «A«, «B«…

У вас вторая часть опыта займёт куда меньшее время, в среднем от половины до трети экономии. Наш мозг намного производительнее работает в рамках какой-то одной выбранной системы, контекста. Любое переключение за рамки — добавляют обязательное время «на это самое переключение, т.е. потери в чистом виде. Это означает, что контора (команда, фрилансер), которая делает два проекта одновременно — закончит их через (абстрактно) 3 месяца, а занимаясь сначала исключительно 1м, затем 2м проектом — завершит оба за ~2-2.3 месяца. Всё остальное — потери. Согласно Сазерленду, работа над двумя проектами не означает, что вы будете уделять 50% времени на проект. Всего сорок. Сорок процентов и двадцать на потери. Три проекта — не тридцать три процента, а 20% (!!!) с суммарной величиной потерь — 40% (!!!).

Не меняя количества работы, не добавляя ресурсов — мы экономим колоссальное время.

Где-то с лета 2015 года стараюсь перевести себя на «академический» SCRUM (пока выходит частично, не все принципы «заезжают»). Работа над одним проектом «здесь и сейчас» — наверное, самое важное, что я получил в этой книге (второе — спринты). С лета 2015 на «поддержку» и «допиливания» выделяю отдельный какой-то конкретный день (или выходные), без вмешательства в основной рабочий процесс.

И я обязательно расскажу про эту интересную книгу ещё.. )

Написать игру размером в твит или знай наших!

Утро началось в маршрутке со статьи в «хакере» на тему того, что какой-то чувак бросил вызов девелоперам мира сия на предмет «а слабо ли сделать игру размером в твит?». И  что вроде как кое-кому даже это удалось. Дома, с рабочего компьютера я поковырял тему глубже — оказывается, что предоставленная игра — «игрой» по сути не является. Можете попробовать сами: твит. Суть такова — тыкать в крестик и не промахиваться. Но я не знаю при каких обстоятельствах можно промахнуться по крестику, поэтому игра.. она теоретически влезла в твит, но игра ли это — большой вопрос.

Параллельно я вспомнил про реализацию игры «угадай число», которую я писал на qbasic лет так 16 назад. Суть такова: компьютер загадывает число и предлагает пользователю угадать. Если введённое число больше загаданного — компьютер пишет «загаданное число меньше» и т.д. Параллельно считая количества попыток на угадывание и т.д.. Вот эту вот задачу я и попытался втиснуть в твит. Понадобилось чуть более получаса, чтобы я всунул всё-таки всё, что планировал всунуть без особого вреда к геймплею 🙂

Итак, код моей фантастической игры размером в 139 символов (а это означает, что на ещё один байт можно ой как разгуляться):

static void Main(){int n=new Random().Next(100);int v=-1;while(v!=n){v=int.Parse(Console.ReadLine());Console.Write(v==n?’W’:v>n?'<‘:’>’);}}

Соответственно, размещёно и здесь. Данный код являет собой консольное приложение, написанное на C# и выглядит всё это примерно так:

C# Console

C# Console

Фидбек от автора запроса был получен скромным «фавом«, но буду считать, что задачу выполнил:

UPD:

Оказывается задача была сделать игру на JS, ну я потратил времени ещё меньше. Код вышел следующим (здесь получилось сделать всё за 130 символов):

<script>var c=Math.floor(Math.random()*100)+1;function r(v){alert(v==c?»w»:v>c?»<«:»>»);}</script><input onchange=r(this.value);>

Эта фантастическая игра доступна здесь.

Работа до седьмого пота

Итак, я безработный. Пришло время и тут об этом поплакать. Хотя, конечно, вы догадывались. Но не то, чтобы я сильно расстроен. Как истинный буддист (почему-то мне так кажется), я принимаю всё это, как данность, как период, перед чем-то большим и значимым. Другими словами — не парюсь, а даже вполне себе наслаждаюсь. Жить без денег трудно, но, оказывается, можно. Во-первых, я предательски вспомнил всех, кто мне должен денег. Во-вторых, ходить пешком — это полезно, не кушать на ночь в рЭсторанах и похудение — прекрасный мотиватор.

Но.

Нужно шевелиться. Иначе мои мечты о квартире и форде мустанге 67 года так и останутся мечтами, что просто недопустимо. Даже предположить такое — кощунство по отношению ко мне. Сейчас буду говорить вещи банальные, наивные и детские. У бизнесменов со стажем должны выступить слёзы и другие железы закровоточить. Объясню кое что. Поскольку я человек наглый, хитрый, умный (скромный) и красивый (очень скромный) — всегда добивался того, чего хотел. Мне главное пункт Бэ для себя обозначить и как-то я к нему приходил. Апосему, план созрел у меня.

Хочу стать shareware программистом. Вот так. Конечно, принимая во внимание того, что золотая эра шароварщиков прошла, что в суровых буднях пиратства и всего-такого прожить тяжело… но пробовать стоит. Силу великую чувствую в себе я (недавно пересматривал классику, да). Поковырял я значится забугорный ресурс с программным обеспечением и диву даюсь, что люди продают. Глюки и кошмары. То, что я могу за два вечера одним пальцем написать — 15 долларов. Оп-па. А то, что за месяц — 59, а-оп-па! И, хоть все и талдычат, что в шароварном бизнесе программирование стоит на втором месте (после маркетинга) — буду пробовать. Потому что: а) денег хочется, б) в офисе не хочется сидеть, в) хочется работать на дядю в лице себя, г) хочется денег, д) хочется денег.

Я тут выбрал три тулзы, которые безбожно сопру сделаю. Сделаю лучше. И к концу января я думаю начну. А там уже и посмотрим. Положа руку на сердце, если я дойду до отметки хотя бы в 1000 000$ ~500 долларов в месяц — то брошу на реализацию этой своей мечты все свободные силы. Так-то.

И, да. Быстро желайте мне удачи и записывайтесь в бета тестеры 🙂