Ако програмистите строяха къщи

Този текст ми попада на няколко пъти из мрежата. Не знам кой е автора, но донякъде отразява как се работи в някои проекти. Подчертавам някои, защото много екипи работят качествено, в срок и бюджет и задоволяват напълно изискванията на клиента.

Ако си програмист и си попадал в подобна ситуация, забавлявай се 🙂


Ако програмистите строяха къщи.

1.03. Ура! Предложиха ни огромен договор за построяването на 12 етажен жилищен блок. У всички има бурен ентусиазъм. Изпихме от радост 2 каси бира.

2.03. На възложителя не му се харесва израза, “когато стане, тогава”. Иска да кажем, конкретни срокове. Идиотът нищо не разбира от високи технологии.

3.03. Обсъждахме сроковете. Изпихме 3 каси бира. Петров казва, че ще стане за 4 месеца. Значи за 8 месеца. В договора записахме 12 месеца, но едва ли ще се оправим за по-малко от 16.

6.03. Петров отиде да върне бутилките.

8.03. Празнуваме 8 март. Във фирмата няма жени, така че никой не ни пречи на празника.

2.04. Петров казва, че трябва да започнем работа. Какво му стана на този човек. Изчистихме строителната площадка и закачихме красиви плакати “Строежът се изпълнява от компания “Allstroy” (www.allstroy.bg)”. С чувство на изпълнен дълг играем “Quake”.

20.04. Дойде възложителят, пита как върви работата. Сложихме го да играе Quake и го оставихме да ни бие всички.

21.04. Обсъждахме проекта. Сидеров предлага панелна архитетура. Петров настоява, че всичко трябва да се строи по стария начин от тухли, а не по ламерски. Най-радикалния проект предложи Алекс. Предлага да построим няколко десетки дървени бараки и да ги съединим с подземни тунели. На Запад било модно. Напомнихме му, че все пак клиента иска 12 етажен блок. Опитахме се да решим въпроса, чрез дуели на Quake. Алекс с неговите дървени бараки, бързо отпадна, но резултата между Сидеров и Петров излезе равен. Решихме всеки да строи по свой план и след това да ги съединим, за да не падне.

30.04. Първият етаж е готов. Показахме го на възложителя. Той се интересува, защо в различните стаи таваните са различно високи, защо от стените падат тухли и защо няма врата а трябва да се влиза през прозореца. Обяснихме му, че това са ограничения на демо-версията. Тръгваме да празнуваме горди от себе си.

10.05. Петров изтрезня първи и дълго псува. Мислехме, че Алекс е изпил всичката бира. Оказа се по лошо. Забравили сме за основите. В проекта са описани, но документацията я четат само идиоти.

11.05. Разрушихме първия етаж. Обидно е.

11.07. Работим. Петров довършва втория етаж, Сидеров – петия. Алекс е направил асансьорната шахта до деветия етаж, но при силен вятър се клати подозрително. Засега сме я подпрели с дървено скеле.

17.07. Алекс прави терасите и покрива. На земята. После ще ги вдигнем с кран.

13.08. На Сидеров не му се засрещат панелите. Дупката е почти метър. Сидеров помоли Петров, но той каза,че има достатъчно работа и изобщо без знание на вътрешната архитектура на панелите нищо не може да се направи.

14.08. Разбихме няколко панела за да може Петров да изучи вътрешната архитектура. Петров псува и казва, че проектантите на панелите са пълни идиоти.

17.08. Петров запуши дупката. Панелите малко се изкривиха, но това е дреболия. Между панелите останаха малки процепи, които Петров залепи с тиксо. Казва, че ще работи стига да не вали дъжд.

1.09. Строителният комбинат пусна нова версия панели, с повишена устойчивост и здравина, с вградени стенни шкафчета. Истината е, по форма и размер не са съвместими със старите и са три пъти по тежки. На каква архитектура разчитат в строителния комбинат?

16.09. Дойде Алекс, пълен с идеи. Предлага да направим всички прозорци в блока със различни размери. Възложителят щял да ги хареса. Казахме му да не се ебава.

2.10. Петров стигна до 5 етаж. Горд е от себе си. Обърнахме му внимание, че стените са под ъгъл 40 градуса. Той псува, вика, каза че сме идиоти и нищо не разбираме. После обеща да помисли.

3.10. Дойде възложителят. Пита защо стената е наклонена под ъгъл 40 градуса. Обяснихме му за кориолисовата сила. Той ни изслуша, после каза, че той от строителство не разбира, но до неговата къща има точно такъв блок и всички стени са прави. После този идиот Алекс се лепна за него и му разказа за изменените прозорци. Възложителят естесвено ги хареса. Мамка му.

4.10. Питаме Алекс, дали ще се наложи да разбием всичко заради неговите прозорци. Уверява ни, че няма нужда – в стандартните панели има недокументирана функция.

5.10. Петров призна, че със стената има проблем. Казва че неправилно сложил, някаква тухла. Но за да разбере коя, трябва да ги провери всички. По-лесно е да направи всичко наново.

6.10. Убеждаваме Петров, че да построи всичко наново няма да му стигне времето. Демострираме му изчисления с калкулатор. Петров псува, вика, каза че калкулатора са го измислили идиоти. После се съгласи, да правим всичко от панели и с мъка отиде да се напие.

8.10. Разбихме тухлената част. Повредихме и част от панелната. Цялата сграда скърца и се клати заплашително. Укрепихме я с дървени подпори и отидохме да играем Quаkе.

17.10. Петров се върна от запоя. Работим.

7.11. Празнуваме 7 ноември – или както се нарича сега? Комунисти във фирмата няма, затова никой не разваля празника.

15.11. Спомнихме си, че крана стига само до 8 етаж. Пратихме Сидеров за нов кран. Играем Quаkе. Алекс победи Петров. Расте нова смяна.

24.11. Върна се Сидеров. Не е намерил кран, но достави ескаватор. Предлага да изкопаем дълбока шахта и да построим блока не на горе, а на долу. Казва, че никъде в договора не пише, че блока трябва да е на повърхността.

25.11. Направихме мозъчна атака за крана. На последната бутилка бира намерихме решение. Зарязваме основното строителство. Ще строим 4 етажен блок. После ще сложим крана на покрива му.

25.12. Празнуваме католическото Рождество. Католици във фирмата няма, затова никой не разваля празника.

14.01. Нищо не помня. Главата ме боли. Коя година сме?

2.02. Най после сме готови със 12-я етаж. Утре ще сложим покрива, който направи Алекс.

3.02. Алекс е идиот. Покрива пада редовно. Засега сме го подпрели с крана. Ще мислим, какво да правим по нататък.

4.02. Алекс казва, че не виновен. Просто 12 етаж на Сидеров е пет метра по-широк и четири метра по-висок от 12 етаж на Петров. Става ясно, че са строили от различни панели. Но Алекс все пак е идиот, защото неговия покрив не става и за двата варианта. Асансьорната шахта също.

5.02. Лепихме, закрепвахме покрива. Петров казва, че ще издържи ако не завали сняг.

7.02. Заваля сняг…

10.02. Направихме покрива от щпертплат и тенекия и боядисахме всичко. Да се надяваме, възложителят няма да забележи.

11.02. Тествахме ансансьора. Спира между етажите, но може да се излезе от кабината. На четните етажи с пълзене, на нечетните с подскачане. Да не забравя да го опиша в документацията.

12.02. И изобщо ансансьора работи много бавно. Петров псува всички идиоти. Казва, че ще започне да го оптимизира.

13.02. Петров оптимизира ансансьора. Той се засили, проби покрива и отлетя в неизвестна посока. Добре, че покривът е от щпертплат и се оправя лесно. Падна и асансьорната шахта. Спомнихме си, че така и сменихме дървените подпори с нещо по-надежно. Нищо. Да се ходи пеша е полезно.

15.02. Започнахме довършителните работи. Някъде постояно изчезват бояджии. Обадихме се да пратят още.

17.02. Изясни се, че заради грешка на Сидеров, вратите на апартаментите от втори до шести етаж, се отварят само отвън. В резултат на това на тези етажи е пълно със заклещени бояджии, които не могат да излязат. Сидеров обеща да я оправи. Засега ги храним през отдушниците.

20.02. Алекс най накрая направи изменящите се прозорци. Тествахме. Изясни се, че при промяна на размера са разбиват стъклата. Освен това се наблюдават и някои странични ефекти. Например от гостната на един апартамент може да се влезе в банята и тоалетната на друг. Освен това постоянно изчезват вратите и падат балконите. Да се жалваме в строителния комбинат е безполезно – ще кажат, че не дават гаранция за недокументирани функции.

21.02. Дойде възложителят. Пита може ли да направим незначителни промени в проекта. И по точно, вместо 12 етажен блок, да построим няколко десетки дървени бараки и да ги съединим с подземни тунели. Чел, че така било модно на Запад. Неутрализирахме Алекс, още преди да си отвори устата и вежливо и твърдо обяснихме на възложителя, че не е прав.

22.02. Балконите продължават да падат, макар че не пипаме прозорците. Явно е независим бъг. Какъв е късно да търсим, така че махнахме и останалите. Ще опитаме да обясним на възложителя, че сме го направили за оптимизация

23.02. Празнуваме 23 февруари. Военни във фирмата няма, затова никой не ни пречи на празника. Жени също няма затова никой не раздаде подаръци. Обидно е.

25.02. Алекс се опита да довърши изменящите се прозорци. В резултат половината се свиха до нулев размер и не искат да се върнат обратно. Казахме му да не се ебава повече, че ще стане по лошо.

27.02. Спомнихме си, че сме забравили да направим входа. Мислим няма ли да падне блока, ако го пробием сега. Сидеров казва – по-добре да не рискуваме. Петров, го нарече идиот и се съгласи. Да не забравя да опиша в документацията, че влизането през прозореца е особеност на дизайна.

1.03. Как така първи март ?! Откъде?! Вчера беше… Мамка му! Кой да знае, че този смотан февруари е 28 дни. Излиза, че трябва да сме готови вдруги ден, а не след седмица.

2.03. На работа. Работим 24 в денонощие, непробудно.

3.03. Убедихме възложителя, че ни е нужен още един ден за финално тестване. Мдаа, добре поработихме вчера… В крайна сметка не е толкова страшно.Голяма работа, че някои врати са на пода, други на тавана или от 10 етаж водят направо на улицата, че някои апартамените е невъзможно да се достигнат, в други тоалетната е заедно с кухнята, че в половината няма вода, а в останалата ток, че канализацията се излива на шестия етаж и се наложи да направим стълбите между осмия и деветия етаж въжени? НО главното е да – покажем блока на възложителя по правилния маршрут. А да – и да сложим снимки на мястото на изчезналите прозорци…

4.03. Yes! Yes! Направихме го! Отбелязваме предаването на обекта. Пия малко, трябва да успея да изчезна, преди всичко това си е-о майката.


Моята любимата част е

“21.02. Дойде възложителят. Пита може ли да направим незначителни промени в проекта. И по точно, вместо 12 етажен блок, да построим няколко десетки дървени бараки и да ги съединим с подземни тунели. Чел, че така било модно на Запад.”

Обърнете внимание на “незначителни промени” 🙂 🙂 🙂

Hackafe

Всичко започна в края на месец май 2013. Група ентусиасти се събрахме за да основем, както тогава му казвахме “лаб” (от лаборатория). Идеята беше, да направим място, където хората да могат да се събират и да творят заедно. Място отворено за всички и независимо от фирми, община или правителство.

Събрахме се и го направихме. Около 40 (четиридесет) човека. По онова време не познавах почти никой от тях, а тези които познавах ги знаех бегло, само по физиономия, не помнех имената им.

Откриването на Хакафе
Откриването на Хакафе

Сградата на Хакафе
Сградата на Хакафе
Събрахме пари (наши джобни, спестени, никой не ни е финансирал). Търсихме и намерихме едно чудесно място (около 140 кв.м) в перфектния супер център, на невероятно място, с тераса със страхотна гледка към хълмовете на града.

Пуснахме Интернет, намерихме някакви маси и столове и се настанихме.

И клубът започна да функционира 🙂

Всеки е свободен, да дойде когато пожелае, да дойде с лаптопа си, или с компютъра си или с приятели. Да остане колкото време пожелае и да творят каквото пожелаят. Място отворено за всички.

За изминалите девет месеца, съдействахме за организирането на две конференции по компютърни технологии (PlovdivConf и PlovDev). Организирахме няколко курса по компютърни технологии (в момента тече един и се подготвят нови на различни теми). Курсовете до сега бяха безплатни – повтарям напълно безплатни, обучаемите не плащат нищо.

Защо го правим?

Честно – не знам. Вероятно всеки си има причина. Аз искам да има място, огнище в града, където себеподобните да се събираме и да общуваме, да се запознавам с нови хора, да предаваме каквото знаем и можем на другите (безплатно) и така да съдействаме за подобряване на обстановката в града.

Това, което забелязвам за хората от Хакафе е, че всички се включват в някакви доброволчески дейности в полза на обществото (освен Хакафе).

И другото, което забелязвам – през пролетта на 2013-та имаше Startup Weekend в София на тема мобилни приложения. В отборът, който спечели имаше едно момиче от Хакафе. Есента на 2013-та имаше Startup Weekend в Пловдив. Отборът, който спечели беше половината от членове на Хакафе. Януари 2014-та имаше Game Jam в Пловдив. В отборът, който спечели имаше един младеж от Хакафе.

Накратко, хората които са членове на Хакафе, не са случайни. Аз лично го считам за привилегия да съм част от това 🙂

Какво означава, да си член на Хакафе?

В интерес на истината, дори и да не си член на Хакафе, никой няма да те върне, ако дойдеш на някое от събитията, които организираме – конференция, презентация, hackaton, лекция, курс, семинар или парти.

Но ако си член на Хакафе, това означава първо, да станеш член на едно общество от изключителни хора, отдадени в своята професия, които искат да променят себе си, града си и страната си. И второ, ще спонсорираш тази кауза, защото без парите, които всеки месец заделяме това благо за града ни няма да го има.

Учредителното Събрание на Хакафе
Учредителното Събрание на Хакафе
Преди няколко седмици излезе регистрацията на Сдружение с Идеална Цел, в Обществена Полза “Хакафе”. Вече можем да получаваме официални дарения. Така че, ако ти или фирмата ти имате желание и възможност – свържете се с нас 🙂

Сайтът на Хакафе с повече информация, адрес и как да се свържете с нас е
www.hackafe.org

Ако просто искаш да следиш какво се случва, харесай страницата ни във Facebook. Там редовно известяваме за престоящи събития – добре си дошъл на всяко едно от тях!
Хакафе във Facebook

Plovdiv Game Jam

Миналата седмица за първи път в България се проведе Game Jam – събитие от веригата Global Game Jam. Както си му е редно, започнахме ударно с два града едновременно – Пловдив и София.

game-jam-map

Ето кратко описание какво е Game Jam:

The Global Game Jam (GGJ) is the world’s largest game jam event. Think of it as a hackathon focused on game development. It is the growth of an idea that in today’s heavily connected world, we could come together, be creative, share experiences and express ourselves in a multitude of ways using video games – it is very universal.

Преди съм бил на Startup Weekend и други подобни конференции. Формата на Game Jame е много подобен на Startup Weekend – събират се хора на едно място, предлагат идеи за игри, сформират се екипи и за 48 часа трябва да се направят.

Това, което отличава Game Jame от Startup Weekend, е че на Startup-а основната идея е да се направи бизнес. Основните въпроси и критерии винаги са “Как ще изкараш пари от тази идея?” На Game Jam обаче, въобще не се говори за пари. Основния въпрос е как да направим добра игра. И какво всъщност е добра игра? Това предполага напълно различна атмосфера по време на цялото събитие. Хората са дошли с идеята да направят игра и да се забавляват.

Ето един репортаж за събитието

Наградата

plovdiv-game-jam-prizeАз се включих в екипа на играта Poetry Run (Поетично надбягване). Идеята на играта е да се сътворят рими (стихове). Не каквото обикновено си представяме за игра – стрелби, екшън, страхотни графики. Няма зашеметяващи технологии. Може би заради това, че успяхме да направим работещ прототип, да го представим на журито и публиката и да демонстрираме забавната част на играта, спечелихме наградата на журито. Пак ще го кажа: Спечелихме наградата на журито! 🙂

Играта вече е достъпна публично тук PoetryRun.com

И понеже спечелихме, взеха че ни интервюираха

Запознах се със страхотни хора и се забавлявах (освен че спечелихме и награда). Препоръчвам на всеки да се включи в следващото издание на Plovdiv Game Jame. Можете да следите за новини тук PlovdivGameJam.org

А, и да не забравя: Направихме си парти преди и парти след събитието 🙂

Ето малко снимки от Plovdiv Game Jam и партитата

10 вида хора

Скоро ми попадна тази шега

Има само 10 вида хора: такива които разбират от бинарен код и такива които не разбират.

В ежедневието си обикновено използваме десетична бройна система – използваме цифрите от 0 до 9 за да записваме числата. Например числото петнадесет записваме така: 15.

binary-nailsОсвен този начин на записване, има и други. Една от тях е двоичната система. При нея се използват само две цифри за записване на всички числа – 0 и 1. Например, числото петнадесет се записва така: 1111, числото десет се записва така: 1010. А числото две се записва така: 10 и от тук идва тънкия смисъл на шегата 🙂

Двоичната система се използва от компютрите. На най-ниско ниво, до хардуера, компютрите боравят с тази информация. За тях няма букви, картинки или други знаци. Всичко за компютрите е 0 или 1. А те все повече влияят на живота ни, така че хората които разбират 10 (в двоична система) стават все по-необходими.

Силата и слабостта на C++

На 12 октомври открихме есенния сезон на конференциите с PlovDev – конференция чиято цел е да укрепи ИТ общността. Бях един от лекторите, като моята презентация беше на тема “Силата и слабостта на C++”.

Бях забелязал през годините, че има програмисти които подценяват C++ или се страхуват от него. А други го използват по начин, който на практика вреди на проектите по които работят. Затова исках да покажа на слушателите силните страни на езика и как да ги използват в практиката си. В същото време исках да им покажа слабостта на езика и как да я използват в полза на работата. Основната идея, която исках да покажа е много добре описана в този текст:

freedomСвободата е основна концепция в езика C++.

1. Той има всички функции, но никога не принуждава програмистите да ги използват. Можете да изберете да програмирате по все-възможни начини, като например: асемблерен стил, структурно, обектно-ориентирано, функционално, мета, объркано и т.н…

2. Можете да изключите всичко. Ако не искате обектно ориентирано програмиране, можете да използвате под-множеството на C. Ако искате да изключите STL и да използвате Boost C++ библиотеките, можете да го направите. Ако искате да изключите C++ runtime – можете да го направите.

C++ се отнася с вас като към зрял човек.
C++ ви дава огромна мощ.
А с огромната мощ идва огромна отговорност.

Ето самата презентация в PDF формат. А това е видео запис на презентацията.

 

Конференцията беше много интересна с теми, които засягаха различни области от програмирането. Запознах се с хора от различни градове на страната, обменихме идеи или просто общувахме.

Благодаря на организаторите за перфектната организация и се надявам скоро да има нови издания, които да популяризират добрите практики в програмирането.

Ето снимки от конференцията