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

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

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

Так вот, недавно прочитал книжку Джеффа Сазерленда: “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 долларов в месяц – то брошу на реализацию этой своей мечты все свободные силы. Так-то.

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