Etické princípy pri tvorbe softvéru: Vyvíjaj zodpovedné a dôveryhodné aplikácie

Etické princípy pri tvorbe softvéru sú základom pre kvalitný online zážitok používateľov. V poslednom čase však mnohých znepokojuje rastúca ignorancia voči právam počítačových používateľov. Čoraz častejšie sme svedkami prípadov spyware či iných programov, ktoré nás klamú, zobrazujú vyskakovacie okná alebo presmerujú náš prehliadač tam, kam nechceme. Väčšina webstránok je preplnená reklamnými ponukami. Dodržiavanie etiky je preto čoraz dôležitejšou témou.

Tím vývojárov diskutuje o bezpečnosti softvéru a ochrane osobných údajov pri návrhu aplikácie
Etické princípy pri tvorbe softvéru – bezpečnosť a ochrana údajov

V článku sa dozvieš:

    Softvérové odvetvie by malo dodržiavať jasné etické princípy. V našej spoločnosti msg life, ktorá vyvíja softvér na mieru a testuje moderné informačné systémy pre poisťovne a firmy poskytujúce finančné produkty, sa nimi riadime a povzbudzujeme aj ostatné softvérové spoločnosti či individuálnych vývojárov, aby si ich osvojili.

    Technológie a spôsoby distribúcie softvéru sa neustále vyvíjajú a niektoré programy nemusia vždy reflektovať všetky etické princípy. Nižšie nájdeš základné aj pokročilé zásady, ktoré je potrebné priebežne aktualizovať, aby držali krok s rýchlym vývojom v oblasti IT.

    Základné etické princípy vo vývoji softvéru

    Medzi základné oblasti etických princípov pri tvorbe softvéru patria:

    1. Súkromie

    • Ochrana údajov používateľov: V súlade s GDPR a zásadami ochrany osobných údajov zhromažďuj len to, čo je nevyhnutné.
    • Získanie jasného súhlasu: Používateľ musí vedieť, na čo svoje údaje dáva a súhlasiť s tým.
    • Bezpečné ukladanie: Dáta musia byť uložené tak, aby k nim nemali ostatní neoprávnený prístup.
    • Transparentnosť: Používateľ by mal mať prehľad, ako a na aký účel sa jeho údaje používajú. Mal by mať možnosť si svoje údaje pozrieť, opraviť alebo vymazať.

    2. Bezpečnosť

    • Prevencia zraniteľností: Kód píš bezpečne, aby sa znížilo riziko napadnutia.
    • Pravidelné kontroly: Pravidelne testuj softvér na chyby a slabé miesta.
    • Rýchle opravy: Ak sa objaví bezpečnostná zraniteľnosť, čo najskôr uvoľni opravu (patch), aby sa predišlo zneužitiu.

    3. Transparentnosť a spravodlivosť

    • Predchádzanie zaujatosti: Dáta a modely navrhuj tak, aby neuprednostňovali bezdôvodne žiadnu skupinu.
    • Identifikácia a náprava: Aktívne hľadaj možné predpojatosti v trénovacích dátach alebo algoritmoch a nastav opatrenia na ich elimináciu.
    • Vysvetlenie rozhodnutí: Ak systém robí rozhodnutie (napr. odporúčanie, hodnotenie), poskytni aspoň základné vysvetlenie, prečo bola takáto voľba zvolená, ak je to možné.

    4. Zodpovednosť

    • Priznanie vplyvu: Vývojári a spoločnosti by mali niesť zodpovednosť za dôsledky softvéru, ktorý vytvoria.
    • Jasné komunikovanie: Povedz otvorene, čo softvér dokáže a aké má limity, aby používatelia mali realistické očakávania.
    • Riešenie nežiaducich dôsledkov: Sleduj, či aplikácia nevyvoláva neplánované problémy, a zabezpeč ich rýchle riešenie.
    • Spätná väzba: Zabezpeč mechanizmus, cez ktorý môžu používatelia nahlásiť chyby alebo nápady na vylepšenia (napr. formulár spätnej väzby, e-mail a podobne).

    5. Prístupnosť

    • Inkluzívny dizajn: Softvér by mal byť navrhnutý tak, aby bol použiteľný čo najviac ľuďmi, vrátane tých so zdravotným postihnutím.
    • Dodržiavanie usmernení: Sleduj osvedčené odporúčania (napr. WCAG pri webových aplikáciách), aby ľudia s rôznymi potrebami (zrakové, sluchové, motorické či kognitívne) mohli produkt používať.
    • Testovanie s reálnymi používateľmi: Keď je to možné, over použiteľnosť u ľudí so zdravotným postihnutím a uprav dizajn podľa ich pripomienok.

    Moderné etické princípy a technológie

    Do tejto skupiny patria etické princípy a súvisiace výzvy, ktoré prinášajú moderné technológie.

    1. Environmentálna udržateľnosť

    • Dopad vývoja softvéru na prostredie: Vývoj softvéru (napr. prevádzka serverov, cloudových služieb či dátových centier) má vplyv na životné prostredie.
    • Energeticky efektívny dizajn: Píš kód tak, aby čo najúspornejšie využíval výpočtové zdroje (napr. optimalizované algoritmy, šetrenie CPU/GPU, znižovanie nárokov na pamäť).
    • Optimalizácia zdrojov: Zváž, či spustiť úlohy v čase, keď sú obnoviteľné zdroje energie dostupnejšie (lacnejšie), alebo využiť efektívnejšie cloudové služby.
    • Celý životný cyklus: Pri navrhovaní riešení uvažuj, aký vplyv má ich prevádzka a údržba počas celého životného cyklu (SDLC), od vývoja až po vyraďovanie softvéru či jeho migráciu.

    2. Umelá inteligencia (AI)

    • Automatizované rozhodovanie: Pri systémoch, ktoré robia rozhodnutia (napr. schvaľovanie pôžičiek, personalizované odporúčania, výber obsahu), dbaj na vysvetliteľnosť (explainability), auditovateľnosť a zodpovednosť.
    • Predchádzanie zaujatosti: Overuj, či tréningové dáta a modely nerobia nespravodlivé či diskriminačné rozhodnutia, a maj procesy na nápravu, ak sa takéto problémy objavia.
    • Monitorovanie a revízia: Priebežne sleduj, ako sa AI modely správajú v reálnom prostredí, a aktualizuj ich podľa potreby, aby sa predišlo neželaným dôsledkom.

    3. Blockchain a decentralizované siete

    • Vlastníctvo a kontrola dát: Zváž, ako používatelia spravujú svoje dáta na blockchaine, aké práva k nim majú a aké dôsledky má nezvratnosť záznamov (napr. nemožnosť vymazať citlivé informácie).
    • Energetická náročnosť: Niektoré blockchainy, najmä tie s proof-of-work mechanizmom, môžu mať vysokú spotrebu energie. Premysli si ekologickejšie alternatívy (proof-of-stake, optimalizované konsenzuálne mechanizmy).
    • Právne a etické aspekty: Sleduj regulačné prostredie a etické normy týkajúce sa decentralizovaných riešení (napr. ochrana súkromia, zamedzenie prania špinavých peňazí, transparentnosť).

    4. Internet vecí (IoT)

    • Bezpečné a energeticky šetrné zariadenia: IoT zariadenia často bežia nepretržite, pri nich treba dbať na nízku spotrebu energie a zabezpečenie komunikácie medzi zariadeniami a servermi.
    • Zodpovedné zhromažďovanie dát: Uvažuj, aké údaje sa zbierajú z prostredia či od používateľov, a zabezpeč, aby zber nezasahoval do súkromia, ani nebol zneužitý.
    • Údržba a aktualizácie: Plánuj spôsob, ako aktualizovať zariadenia bezpečne a efektívne počas ich životnosti, aby sa zvýšila bezpečnosť zariadení.

    Ako aplikovať etické princípy v praxi

    Poznať etické princípy pri tvorbe softvéru je prvý a dôležitý krok. No nesmieš zabudnúť ani na ich použitie v praxi. Tieto praktické tipy ti pomôžu.

    Žiadne klamanie pri inštalácii

    Softvér by ťa nemal oklamať, aby sa nainštaloval. Keď niečo na počítač inštaluješ alebo povolíš, musí ti byť jasné, čo sa deje, a máš mať možnosť odmietnuť. Program sa nesmie „potichu“ nainštalovať bez tvojho vedomia ani byť skrytý v inom inštalátore. Ak sú súčasťou balíka viaceré aplikácie, malo by byť zreteľne oznámené, čo všetko obsahuje a aké funkcie budú pridané.

    Predbežné informovanie

    Po inštalácii alebo aktivácii by ťa program mal ihneď oboznámiť so svojimi hlavnými a významnými funkciami. Ak je jeho biznis založený na zobrazovaní reklám, musí to jasne povedať. Táto informácia by nemala byť skrytá v malej poznámke na konci dlhého textu, ktorú musí používateľ dlho hľadať a scrollovať. Napríklad ak program zarába cez vyskakovacie okná alebo zasiela tvoje osobné údaje tretím stranám, malo by to byť zrozumiteľne uvedené predtým, než dáš súhlas.

    Jednoduché odinštalovanie

    Používateľ musí ľahko nájsť postup, ako aplikáciu vypnúť alebo z počítača odstrániť. Proces by mal odstrániť všetky relevantné súčasti, aby program prestal fungovať (viditeľné aj skryté časti), bez toho aby spôsobil problémy systému. Ak aplikáciu odinštaluješ alebo deaktivuješ, nemá sa znovu samovoľne spustiť, ani aktivovať prostredníctvom iného programu.

    Jasné správanie

    Ak program ovplyvňuje alebo mení tvoju prácu v prehliadači či inom softvéri, musí byť zrejmé, že za zmenou stojí on. Napríklad, ak otvorí nové okno, malo by v ňom byť viditeľné meno alebo logo spúšťajúcej aplikácie. Program sa nemá schovávať pod viacerými či zmätočnými názvami. Ovládanie má byť intuitívne, napríklad, ak klikneš na niečo, čo aplikácia zobrazí, tak máš jasnú predstavu, čo program urobí. Reklamy musia byť označené ako reklama a uvedené, že ich zobrazuje daná aplikácia. Ak sa mení napríklad tvoja domovská stránka alebo iné nastavenie prehliadača, zmena má byť jasne komunikovaná.

    Zhromažďovanie údajov

    Ak aplikácia zbiera alebo odosiela tvoje osobné údaje (napríklad meno, e-mail, adresu či iné), musí ťa o tom informovať. Musí ťa jednoznačne požiadať o tvoj súhlas s jasným vysvetlením, aké údaje sa zbierajú a na čo sa použijú. Podrobnejšie informácie by mali byť jednoducho dostupné v zásadách ochrany súkromia, kde sa dozvieš, ako sa údaje používajú a či sa zdieľajú s tretími stranami.

    Starostlivosť o dobré meno spoločnosti

    Poskytovatelia softvéru by si nemali dovoliť, aby ich produkty boli distribuované spolu s programami, ktoré tieto zásady nedodržiavajú. Mnoho používateľov si časom všimne, že majú v počítači nevyžiadané programy – adware, spyware či iné pre používateľa viac, či menej škodlivé aplikácie. To je často dôsledkom toho, že nejaký nainštalovaný program prišiel zabalený s nechcenými doplnkami, ktoré potom potajme vyprodukovali ďalšie nechcené inštalácie. Väčšina z nás by ani nevedela presne povedať čo je to za program a ako sa tam dostal.

    Za všetkým môžu byť na pozadí zložité obchodné vzťahy: firmy, ktoré v dobrej viere môžu získať podiely z príjmov alebo distribúcie spolu s nevyžiadaným softvérom. Takéto platenie za distribúciu alebo platenie iným firmám, aby váš softvér šírili spolu s neželanými programami, podporuje ďalšiu distribúciu a rast nevyžiadaného softvéru. Zodpovední tvorcovia softvéru a inzerenti môžu tieto praktiky obmedziť tým, že sa vyhnú podobným obchodným vzťahom, aj keď sú sprostredkované cez tretie strany.

    Problém je obrovský. Ročne sa odhadom v dôsledku týchto nekalých pochybných praktík „zarobia“ stovky miliónov dolárov. Vzhľadom na rozsah a dopad na používateľov je nevyhnutné, aby odvetvie prijalo dôrazné opatrenia.

    Záver

    Orientácia v etických výzvach softvérového vývoja nie je rozhodne jednoduchá. Vývojári sa často musia vyrovnávať s protichodnými prioritami, napríklad s tlakom na dodržanie termínov alebo s požiadavkami zainteresovaných strán, čo môže niekedy zatlačiť etické hľadiská do úzadia. Dynamický vývoj technológií zároveň znamená, že etické normy a štandardy sa neustále menia, a preto je nevyhnutné, aby vývojári sledovali aktuálne trendy etiky vo vývoji softvéru.

    Napriek týmto výzvam sa v nich ukrýva aj priestor na pozitívne zmeny. Ak vývojári vedome uplatňujú etické princípy v každej fáze vývoja softvéru na mieru, výsledkom je softvér, ktorý nielenže napĺňa potreby používateľov, ale zároveň rešpektuje základné hodnoty ako súkromie, spravodlivosť a transparentnosť. Budovaním kultúry etického povedomia vo svojich tímoch a organizáciách môžu zároveň prispieť k zodpovedným a udržateľným praktikám, ktoré majú priaznivý dopad na spoločnosť aj celé odvetvie.

    O autorovi

    Jozef Wagner

    Java Developer Senior

    Viac ako 10 rokov programujem v Jave, momentálne pracujem v msg life Slovakia ako Java programátor senior a pomáham zákazníkom implementovať ich požiadavky do poistného softvéru Life Factory. Vo voľnom čase si rád oddýchnem v lese, prípadne si zahrám nejakú dobrú počítačovú hru.

    Daj nám o sebe vedieť