Obsah článku / Contents
The Neverending Story: Keď manažment hľadí len na čísla - Problém (Časť 1)

The Neverending Story: Keď manažment hľadí len na čísla

"Turn around, look at what you see..." 🎵

Pamätáte si ten kultový film z 80-tych rokov? Chlapec číta knihu o nekonečnom príbehu. Príbeh, ktorý sa zdá byť... nekonečný. Nikdy nekončí. Stále dookola.

Vitajte v IT verzii. Projekt, ktorý nikdy neskončí. Lebo stále opravujeme to, čo sme pokazili minule.


Prológ: Pondelok ráno, 9:00

Poznám túto scénu naspamäť. Zažil som ju na každom projekte.

Manager: "Team, skvelá správa! Dosiahli sme míľnik!"
Developer: "Fajn, ale potrebovali by sme 2 týždne na refaktoring..."
Manager: "Nemáme čas! Musíme shipnúť ďalší feature!"

// O 6 mesiacov neskôr

Manager: "Prečo trvá každý feature 3× dlhšie?!"
Developer: "Lebo... technický dlh..."
Manager: "Nemáme čas na dlhy! Potrebujeme features!"

// A kolotoč sa točí ďalej...

Vitajte v The Neverending Story. 🔄


Kapitola 1: Staviate dom na piesku

Predstavte si, že staviate dom. Normálny dom z tehál.

Verzia manažéra:

Týždeň 1:
Manager: "Výborne, máme základy!"
Stavbár: "Ale betón potrebuje vyzrieť 28 dní..."
Manager: "Nemáme 28 dní! Postavte druhé poschodie!"

Týždeň 2:
Manager: "Prečo sa steny nakláňajú?"
Stavbár: "Lebo betón nevyzrel..."
Manager: "Nemám čas na výhovorky, postavte strechu!"

Týždeň 3:
*Dom sa zrúti*
Manager: "Prečo ste nepovedali že to nevydrží?!"
Stavbár: *mlčky zbiera životopis*

Smiešne? Možno. Ale presne takto vyzerá väčšina IT projektov.

Verzia developera:

Týždeň 1:
Developer: "Potrebujem zrefaktorovať ten modul"
Manager: "Prečo? Funguje!"
Developer: "Áno, ale je to technický dlh..."
Manager: "Dlh? To zaplatíme neskôr. Teraz potrebujeme features!"

Týždeň 10:
Manager: "Prečo každý bug fix trvá 3 dni?!"
Developer: "Lebo kód je spaghetti..."
Manager: "Tak ho opravte!"
Developer: "To by trvalo 2 týždne refaktoringu..."
Manager: "NEMÁME ČAS!"

*A kolotoč sa točí ďalej...*

Kráľovstvo copy-paste

Tu je reálny príklad, ktorý som videl na vlastné oči:

typescript
// Týždeň 1: Rýchle riešenie
function calculateUserDiscount(user) {
  if (user.isPremium) return 0.2;
  if (user.isVIP) return 0.3;
  return 0;
}

// Týždeň 5: Nová požiadavka
function calculateOrderDiscount(order) {
  // Manager: "Len to skopíruj, nemáme čas!"
  if (order.user.isPremium) return 0.2;
  if (order.user.isVIP) return 0.3;
  return 0;
}

// Týždeň 10: Ďalšia požiadavka
function calculateCartDiscount(cart) {
  // Manager: "Skopíruj to znova, potrebujeme to HNEĎ!"
  if (cart.user.isPremium) return 0.2;
  if (cart.user.isVIP) return 0.3;
  return 0;
}

// Týždeň 20: Nájdený bug v logike zliav
Manager: "Oprav ten bug so zľavami!"
Developer: "Ktorý? Mám 12 kópií toho istého kódu..."
Manager: "VŠETKY!"
Developer: "To bude trvať týždeň..."
Manager: "Prečo ste to od začiatku nespravili poriadne?!"

// Developer ticho aktualizuje LinkedIn

Kapitola 2: Štatistika smrti

Teraz niečo zábavné. Čísla. Manažéri predsa milujú čísla, nie?

Vedeli ste, že:

  • 68% IT projektov je "marginálnych" – nie úspech, nie zlyhanie, len... meh
  • 70% projektov úplne zlyhá
  • 25% času vývoja sa míňa na technický dlh
  • 40-50% času je neplánovaná práca (čítaj: opravovanie starých chýb)

Preklad do ľudskej reči:

python
def sanca_na_uspech():
    celkove_projekty = 100

    uplne_zlyhania = 19      # Projekt zrušený
    marginalne = 68          # "Funguje" (ale ledva)
    skutocne_uspesne = 29    # Načas, v rozpočte, kvalitne

    return skutocne_uspesne / celkove_projekty
    # Výsledok: 29%

# Záver
print("Vaša šanca na úspech: 29%")
print("Šanca vyhrať v lotérii: 0.0000007%")
print("Paradox: Postaviť úspešný softvér je ťažšie než vyhrať v lotérii")

Prečo projekty zlyhávajú?

Top 5 dôvodov:

1

Nejasné ciele

(30%) – "Sprav to lepšie" nie je požiadavka
2

Nafukovanie rozsahu

(29%) – Nekonečné nové features
3

Zlá komunikácia

(28%) – "Ja som myslel že ty..."
4

Nereálne termíny

(27%) – "2 týždne? Potrebujem 6 mesiacov"
5

Technický dlh

(25%) – O tom je tento článok

Kapitola 3: Technický dlh je hypotéka

Toto je analógia, ktorú manažéri pochopia.

Hypotéka na dome:

Možnosť A: Kúpime na hypotéku
✅ Rýchle (máte dom hneď)
❌ Platíte úroky každý mesiac
❌ Celkovo zaplatíte 2× viac

Možnosť B: Nasporíme a kúpime za hotové
❌ Pomalé (čakanie roky)
✅ Žiadne úroky
✅ Celkovo lacnejšie

Možnosť C: Hypotéka + extra splátky
✅ Máte dom relatívne rýchlo
✅ Splácate dlh postupne
✅ Neplatíte úroky večne

Technický dlh v kóde funguje úplne rovnako:

Možnosť A: "Quick and dirty"
✅ Rýchle teraz
❌ Spomalí vás neskôr
❌ Celkovo 3× viac práce

Možnosť B: "Poriadne od začiatku"
❌ Trvá dlhšie teraz
✅ Žiadne spomalenie neskôr
✅ Celkovo menej práce

Možnosť C: Pragmatický prístup
✅ Akceptovateľne rýchle
✅ Pravidelne splácate dlh
✅ Udržateľné dlhodobo

Úroková sadzba technického dlhu

typescript
const rychlyHack = {
  usetreny_cas: 2,        // Ušetrené 2 hodiny
  urokova_sadzba: 0.5,    // 50% navyše pri každej zmene
  pocet_zmien: 10         // Koľkokrát to budete meniť
};

let celkovy_naklad = rychlyHack.usetreny_cas;
for (let i = 0; i < rychlyHack.pocet_zmien; i++) {
  celkovy_naklad += 1 * (1 + rychlyHack.urokova_sadzba);
}

console.log(`Ušetrené: ${rychlyHack.usetreny_cas} hodín`);
console.log(`Zaplatené: ${celkovy_naklad} hodín`);
console.log(`Na úrokoch: ${celkovy_naklad - rychlyHack.usetreny_cas} hodín`);

// Výstup:
// Ušetrené: 2 hodín
// Zaplatené: 17 hodín
// Na úrokoch: 15 hodín
//
// Ušetrili ste 2 hodiny. Zaplatili ste 15 hodín navyše.
// To je -750% návratnosť investície.

V ďalšej časti sa pozrieme na divadlo v zasadačke, pokusy o komunikáciu s manažmentom a ako prelomiť tento nekonečný cyklus.

Všetky články