Lines Of Code (aka Лайна От Код) :-)

Публикувано / posted 2012-05-19 в категория / in category: Android, Java, PHP, Web development
  

Заради предстоящата презентация пред инвеститори днес седнах да генерирам малко статистика за мегаломанския проект, по който работя последните 12+ месеца. При все уговорката, че нещата са писани с доста бързане, все пак, кода е в изтествано и добро състояние (поне за PHP частта гарантирам, че е по-добра от 90% от проектите, които съм виждал (както open source, така и proprietary)). Java (android) приложенията, не са толкова добре направени -- имам само година и половина опит в тази област (сравнено с PHP: 8+ год), а и доста бързах(м) с нещата и тук-там минавам напряко… Интересното е, че и за двата програмни езика производителността ми като LOC на ден е почти една и съща: ~250 непразни, некоментирани реда.

За HTML, CSS и javascript умишлено не се опитвах да правя статистика, защото там термина LOC е много (по-)непоказателен.

Фрапиращото в случая е, че когато съм си мерил производителността при работа в средно голям екип (5-6 човека), никога не съм преминавал границата от 100 LOC. Очевидния извод е, че когато повече хора трябва да синхронизират работата си се губи страшно много време в комуникация, стиковане, пренаписване на код, а и подмотмоване. По дебелите книги пише, че е нормално един и същи човек да има разлика в производителността до 5x в зависимост от това колко се налага да комуникира, каква и колко му е мотивацията, доколко подходящи са условията за работа (като офис среда). Едно е обаче да четеш дебелите книги, друго е да го "изпитваш" на гърба си. В случая нещата са в положителна посока, но ми се е случвало и да са в тотално негативна посока -- преди години, като фриилансер се наложи да работя една седмица в една от големите webdev фирми, на която 1:. Офисът им беше на майната си на Цариградско, малко преди Пловдив (едва ли не); 2. Беше пренаселен, шумен и задушен -- постоянно някой викаше нещо, други си говореха по телефоните, трети си пуснали музика на колонки. Посред зима бяха набичили отоплението на 26-27 градуса и беше адска жега и задух; 3. Налагаше се да работя с колеги, повечето от които не бяха особено компетентни; 4. Цялата атмосфера беше една такава отровена и демотивираща, както е характерно обикновено за държавните ведмоства. Та в тази фирма, 4-5 човека бяха работили няколко месеца по проекта, за който трябваше да им помагам и го бяха забатачили зверски. Като направих една статистика на LOC се оказа, че пичовете имаха средна производителност от ~20 реда на ден, което за PHP е пълен ташак. Както и да е, свърших си работата  и избягах оттам с възможно най-голяма скорост…

И докато съм на вълна офис условия и производителност -- тези дни разбрах, че любимата ми бивша фирма Up2Technology са се преместили в нов офис. Докато още работех в нея бяхме в ето този разкош в Изток: стаи за по 2-3-4 човека, градинка, тишина и спокойствие, да ти е кеф да работиш. В новата сграда ги били наредили на принципа -- един отдел -- едно помещение, т.е. хамбарен тип организация… Не е трудно да се предвиди, че производителността ще падне с около 10-20% само заради това.

"Не моем ги рАзбера"… Хората глей кви неща правят (и тук), за да имат програмистите максимална производителност и концентрация, а ние вместо да подобряваме нащата ги влошаваме. После защо имало бъгове и кода бил като спагети с лайнян сос…

 

Забележка: В заглавието "(aka Лайна От Код)" да се чете "(also known as…" :-)


2 Responses to “Lines Of Code (aka Лайна От Код) :-)”

  1. gn. nikoi says:

    Интересна статия ,но не знам доколко LOC може да бъде някаква обективна мярка за това как върви даден проект .Все пак ,това че даден софтуер има повече LOC не го прави по добър .Даже обратното ,ако същото нещо може да се направи 2х по малко код е по добре .
    За пред не технически лица от тип инвеститори може да е добра мярка, но за технически мерки може би ще е по добре колкото features си направил и колко теста си минал от началните изисквания .
    Поне това е моето мнение де.

  2. Огнян says:

    @gn. nikoi
    Да, прав си. LOC не дава добра представа дали наистина има свършена добра/лоша работа. В случая го използвам за оценяване на собствената си производителност, за да знам какво темпо поддържам спрямо предишни сходни проекти.

Leave a Reply

Внимание: Моля, въведете само ПЪРВИТЕ ТРИ цифри от картинката
Important: Please enter just the first three digits from the image