Príliš veľa vlastností zničí softvér

Á! Spravíme skvelý softvérový produkt! Super! Dáme tam autentifikáciu, notifikáciu smskami, spravím registráciu cez web formulár, kde bude administračné rozhranie. To všetko bude podporovať single sign-on. Samozrejme nesmú chýbať grafy na hodnotenie a reportovací systém, ktorý generuje všetko v PDF. Ešte to napojíme na možnosť platenia cez Paypal. Administračné rozhranie, na to nesmieme zabudnúť. Hlavne to musí byť user friendly. A ešte tam pravidelne sa budú zobrazovať výsledky z burzy a futbalových zápasov a bude tam podpora pre stromové vyhľadávanie v kategóriách. A to ešte napojíma na podnikový SAP. Hlavne tam ale musí byť táto enterprise komponenta, ktorá je totálne kúl a umožňuje generovať OLAP. A všetko to pobeží na cloude.

Uf?

Rozumiete tomu?

Za ako dlho dokážete vyvinúť takýto produkt?

Vážne, za ako dlho? Manažér sa vás pýta na časový odhad, tak mu nejaký dajte. Veď sa v tej oblasti predsa vyznáte.

Neviete? Ale veď je to úplne jasné. Fakt neviete? Za ako dlho sa dá vyvinúť takýto produkt? Rozmýšľajte, rozmýšľajte…

Ešte stále neviete?

Správna odpoveď! Uvedený príklad je dokonalou ukážkou feature soup. Pokiaľ začnete vyvíjať takýto produkt, tak si pripravte poriadny balík peňazí. Vlastne nie. Pripravte si dva. Jeden použijete na sponzorovanie vývoja a druhý si necháte ako rezervu na doťahovanie aspoň základnej sady vlastností.

V čom je problém?

Je to predsa tak jednoduché. Požiadavky uvedené na začiatku článku vôbec nie sú zadaním, je to čistý chaos.

Dobre, ale my potrebujeme nejako produkt vyvinúť. Čo s tým?

Jedným z možných prístupov je využiť princíp: Minimum feature set. V preklade: minimálna sada vlastností.

Pointou je zamerať sa na minimálne množstvo vlastností, ktoré sú kľúčové pre produkt a pracovať na nich.

Je dôležitá integrácia so SAPom? Prinesie nám niečo? Nóo to by bolo strašne kúl, ale nie. Preč s tým. Potrebujeme multidimezionálny OLAP? Nie? Preč s tým. Atď.

Proces minimalizácie nepodstatných vlastností  rozhodne nie je jednorázová záležitosť. Prehodnotenie by malo prebiehať opakovane, rádovo v týždňových iteráciach. Podpora pre minimalizáciu je často priamou súčasťou agilných metodík, ako napríklad SCRUM.

Dokonca aj Freddy Mercury na túto skutočnosť upozorňoval: Too much features will kill you.

I’m just the pieces of the manager I used to be
Too many bitter tears are raining down on me
I’m far away from goals
And I’ve been facing this alone
For much too long
I feel like no-one ever told the truth to me
About software and what a struggle it would be
In my tangled state of mind
I’ve been looking back to find
Where I went wrong
Too much features will kill you
If you can’t make up your mind
Torn between the products
And the marketing you leave behind
You’re headed for disaster
‘cos you never read the signs
Too much features will kill you
Every time
I’m just the shadow of the manager I used to be
And it seems like there’s no way out of this for me
I used to bring you sunshine
Now all I ever do is bring you down
How would it be if you were standing in my shoes
Can’t you see that it’s impossible to choose
No there’s no making sense of it
Every way I go I’m bound to lose
Too much features will kill you
Just as sure as none at all
It’ll drain the power that’s in you
Make you plead and scream and crawl
And the pain will make you crazy
You’re the victim of your crime
Too much features will kill you
Every time
Too much features will kill you
It’ll make your product a lie
Yes, too much features will kill you
And you won’t understand why
You’d give your life, you’d sell your soul
But here it comes again
Too much features will kill you
In the end…
In the end.

19. June 2010 at 14:08 - Software engineering (Tags: , , , , ).

8 Responses to “Príliš veľa vlastností zničí softvér”

  • numo says:

    Cele zle. Ak vyvoj vobec zacne vetou manazera “Á! Spravíme skvelý softvérový produkt!”, je to recept na vazne problemy. Vizionarskym vynimkam sa vopred ospravedlnujem – osobne ziadnu nepoznam.

    Pokial nereagujete na konkretnu poziadavku, ale sa snazite posunut svet dopredu, mam jeden recept. Zozente si priamo do timu skuseneho potencialneho zakaznika, rovnako nadseneho ako ste vy. Ak takeho nenajdete, na produkt radsej zabudnite. Posudte s nim, ci ste si nevymysleli uplnu blbost. A robte evolucny vyvoj, v ktorom ma on rozhodujuce slovo, ktora feature sa bude robit ako dalsia.

    Nam zatial tento model s nadsenym sefom v oblakoch, ktoreho obcas treba brzdit, a pragmatickym pouzivatelom, ktory je teraz nasim produktovym manazerom, funguje velmi dobre. Ci funguje uplne skvele, poviem o par rokov ;)

  • georgik says:

    @numo: Vďaka za skvelé doplnenie témy ;-)

  • miro novak says:

    Taketo nieco praktizuje Steve Jobs uz dlhe roky a verte-neverte, prave geekovia su najvacsimi oponentami tohoto postupu. Vysledky Steva Jobsa hovoria sami za seba, iPod, iPhone, iPad, iTunes, a nakoniec MacOS X.
    Nechcem vyvolavat flame-war, ale chcem upozornit geekov, ze ma vobec nezaujima, ako MicroSoft a Google a neviem kto ponuka HW a SW s nabuchanymi funkciami, o ktorych sa v clanku pise. Ano, su nabuchane, ale chyba im to “User friendly”.

    Mier v duši
    miro novak

  • numo says:

    Hej, Steve Jobs je presne jeden z tych vizionarov, ktorych som mal na mysli, ze sa im vopred ospravedlnujem :)

    Apple je ale zasa o niecom inom. Apple nie je o features. Apple je o emociach. Rozumovo nechapem, naco je komu dobry predrazeny iPad, ktory vsetko vie polovicato, za pouzitelne aplikacie si este doplatim majlant a navyse nemozem len tak prist a nieco si za poobedie doprogramovat. Ale akurat pred tyzdnom som ho mal v rukach a to je tak uzasne spravena masinka, ze ma clovek po 10 minutach skumania pocit “toto chcem, aj keby mal byt jedinym pouzitim fotoramik na stol”.

  • miro novak says:

    to numo:

    a presne o to tu ide. Si presne ten geek, ktory toto a tamto. Ale je 90% uzivatelov, ktorí nie su toho “toto a tamto” schopni. A ze na Slovensku je to predrazene? Steve Jobs nemoze za to, ze Slovak ma smiesnu kupnu silu. Jobs jednoducho predava tej skupine ludi, ktorí na tom maju.
    Pravda oslobodzuje.

    Mier v duši.
    miro novak

  • miro novak says:

    to numo:

    Nie je dobre, ak pri argumentacii niekto pouziva nepravdive informacie. Chces naozaj povedat, ze za “pouzitelne aplikacie si este doplatim majlant” si stojis? Aplikacie za 1 Eur, max. 10 Eur je pre Teba majlant? Na ziadnej inej platforme tieto aplikacie lacnejsie nekupis. Cize, ak argument, tak taky, aby si sa nemusel za neho hanbit.
    Pravda oslobodzuje.

    Mier v duši.
    miro novak

  • Safason says:

    Jsem naprosto pro. :-)

  • numo says:

    V Europe sa da najlacnejsie zohnat za 600 eur. Ver tomu, ze to ani pre zapadniara, ktory byva a ma rodinu, nie je par susnov a nad takymto vydavkom poriadne rozmysla. Zvlast pokial vie, ze ked tomu po 3 rokoch odide bateria, s vymenou bude znovu odkazany na Apple a moze si pripravit minimalne stovku, ale skor viac. Pre Tvoju informaciu: od 1996 pracujem a celkom slusne zarabam v Rakusku, takze trosku viem ake su tam pomery a viem sa na to pozriet aj z pohladu zapadnej kupnej sily.

    Co sa tyka aplikacii, hovorim o iPade, ktoreho konkurenciou su skor netbooky, ako mobily. Za argumentom, ze na netbooku s Linuxom tieto aplikacie ziskam vyrazne lacnejsie, si skutocne stojim. Android som v rukach zatial podrobnejsie nemal, takze netusim ako je to s dostupnostou a kvalitou aplikacii tam.

    Opakujem, je to krasny stroj a v usability je Apple o dve kola pred vsetkymi. Ale ludia kupuju iPad preto, ze ho chcu mat, a nie preto, ze ho potrebuju mat. Tym sa lisi od vacsiny inych hard- a softwarovych produktov a aj od typickych modelov vyvoja. Nic proti tomu, spustu veci som kupil pretoze som ich chcel mat, a nevylucujem, ze tak raz kupim aj iPad – ale nebudem si navravat ze nie je predrazeny a ze ho mat potrebujem ;)

Leave a Reply

  • Babel fish

      Translate from:

      Translate to:

  • Where’s the fish?

  • Further info

  • Twitter

    Follow @jurajmichalek on twitter.

  • Learning

    lynda.com online training tutorials
  • Tags

  • Topics

  • Comments