Blockchain er det nye barn på blokken (ordspil beregnet). Der er meget buzz omkring det, om, hvor forstyrrende det er, at det vil ændre en række industrier og vil starte en bølge af innovation. Du har måske overvejet at bruge det i dit næste produkt eller projekt, men ikke sikker på, hvad din tilgang skal være? Lad os se, hvad du kan forvente på vejen!
Forstyrrelse har altid en pris, fordi du bringer noget radikalt nyt til bordet. At vedtage noget nyt tager tid. Det indebærer at komme ud af komfortzonen - for dig, for dit team, for dine brugere, for branchen. Derfor kan forstyrrelser ske på et vendepunkt: Når behovet for innovation og fordelene ved forstyrrelser vil opveje ulemperne ved processen. Sådan blev blockchain også født: at løse et problem.
Indtil videre så godt. Det lyder spændende. Bortset fra, det kommer til en pris. Blockchain løser en række problemer på en innovativ måde, og brugen af det indebærer således et paradigmeskift. Dette paradigmeskifte, selvom det er meget lovende, kommer med sine udfordringer. Nogle af disse er ikke indlysende fra starten, fordi forstyrrelser sætter spørgsmålstegn ved de samme ting, som vi er vant til og tager for givet. Lad os dykke ind!
Du arbejder i et decentraliseret miljø.
Blockchain har succes med at levere sit løfte om at skabe tillid i et tillidsløst miljø ved at sikre, at ingen central part kontrollerer informationen på blockchain. Ikke engang dig! Denne overførsel af kontrol og ejerskab kommer med en række overvejelser:
- Hvordan opnår jeg overholdelse af forskellige regler (f.eks. GDPR)?
- Hvad sker der, hvis jeg laver en ærlig fejl, når jeg tilføjer data til blockchain?
- Hvad hvis jeg har nye krav, og jeg skal justere eksisterende data?
Naturligvis er der allerede et par teknikker til at klare disse udfordringer, bare husk, at disse normalt indebærer en ændring i den måde, du gør tingene på i modsætning til centraliserede systemer.
Dine brugere skal kommunikere med blockchain.
I et rent decentraliseret miljø skal brugerne ikke have brug for at kommunikere med nogen central myndighed, men med selve blockchain. Dette er ikke en triviel opgave og kræver i øjeblikket en hel del indsats fra dine brugeres side. For at forbruge decentrale applikationer har du brug for specialiseret software. Dine brugere skal være opmærksomme på det, og de bliver nødt til selv at gennemgå en læringskurve.
I den anden ende af spektret er brugerne allerede vant til visse måder at interagere med software på. Afhængigt af din brugsstil er den reelle værdi, du kan bringe, at finde en måde at kombinere centraliserede teknologier med blockchain på en sådan måde, at du kan tilbyde dine brugere alle de gode ting, som de er vant til, samtidig med at du udnytter blockchain-løftet. Og at gå den fine linje kræver noget at fikle med teknologien
Udviklere skal også tilpasse sig det nye paradigme.
På grund af teknologiens natur ligner udvikling af blockchain-applikationer at udvikle firmware: når du først frigiver den, er den derude på tusinder af enheder. Enheder, som du har meget begrænset (hvis nogen) kontrol over. Således er prisen på opdateringer meget høj. Som med firmware skal du få det rigtigt første gang, ellers betaler du prisen senere. Dette indebærer også, at en række bedste fremgangsmåder, som udviklere normalt er bekendt med, måske ikke passer godt: kontinuerlig integration, inkrementelle bygninger, selve Agile. Du er mere end velkommen til at bruge disse internt, men din første udgivelse skal være så komplet og stabil som muligt.
Blockchain er uforanderlig.
Dette betyder også, at du skal levere kvalitetssoftware fra starten. Og implikationen er, at du skal budgettere langt mere design- og testtid end i centraliserede projekter. De siger, at softwaretest ikke kan bevise, at et stykke kode ikke har nogen fejl, det kan kun bevise, at kendte fejl er blevet rettet. Kvalitet starter således med softwaredesign. Du bør budgettere nok tid til at overveje alle hjørnesager, begrænsninger, langsigtede konsekvenser og sikkerhedsmæssige konsekvenser. Du skal have stærke kvalitetsmålinger.
Det er også vigtigt at have et dedikeret testteam. Dine udviklere starter med et fantastisk design, og deres kode kan være af fremragende kvalitet, men alligevel glider fejl gennem processen. Dette skyldes, at det er svært at teste din egen kode nøjagtigt. Folk har en tendens til at opbygge en mental model til løsning af et problem, og udviklere vil bruge den samme mentale model til at teste deres kode. Med andre ord vil de kigge efter bugs ved hjælp af den samme mentale model, som de har oprettet dem med i første omgang. Dette er menneskets natur. Et dedikeret testteam kan sikre, at software verificeres ved hjælp af en anden mental model. Det er også vigtigt at budgettere masser af testtid. Tommelfingerreglen (der kan chokere dig i starten) er '5 til 10x': For hver udviklingsuge skal du overveje 5 til 10 ugers test. Softwaretest til blockchain er ikke kun et aspekt af kvalitetssikring, men en måde at mindske risikoen på.
Sikkerhed er altafgørende.
Din kode er tilgængelig i en eller anden form for alle, der kører en blockchain-node (og i tilfælde af offentlige blockchains for bogstaveligt talt nogen). Sikkerhed spiller således en afgørende rolle i din udviklings livscyklus. Endnu mere, når du først er derude, kan du ikke rigtig ændre det. Hvis der er en sikkerhedsfejl, kan dårlige aktører udnytte den, og der er ikke meget, du kan gøre ved det, da du ikke bare kan programmere din kode, som du ville gøre i et centraliseret miljø.
Teknologien og værktøjssættet er endnu ikke modent.
Økosystemet er stadig i sine tidlige stadier, og selvom nye implementeringer og værktøjer vises ret ofte, er disse ikke så stabile som tilbuddet på konventionelle teknologier. Ofte er udviklere nødt til at se den virkelighed, at noget, der er trivielt at opnå ved hjælp af andre teknologier, viser sig at være ret komplekst med blockchain.
Blockchain er ikke særlig hurtig.
Det vigtigste kendetegn ved blockchain er uforanderlighed og sikkerhed. Efter design vil blockchain-løsninger favorisere disse frem for præstationer. Naturligvis udvikler teknologien sig hurtigt, og nye løsninger foreslås for at øge blockchain-ydeevnen, men nutidens virkelighed er, at blockchain ikke er så præsterende som andre centraliserede teknologier.
På dette tidspunkt kan du være tilbøjelig til at opgive blockchain, men sandheden er, at der er løsninger og praksis på plads, der hjælper dig med at håndtere de udfordringer, du måtte stå over for. Det vigtigste er, at blockchain ikke kun forstyrrer de felter, den bruges i, men det har også lignende effekter på den måde, du bygger dit produkt på.
Så er det det værd?
Som med enhver teknologi er svaret: det afhænger. Blockchain kan faktisk bringe innovation til en hel række industrier, og det har et stort potentiale. I nogle tilfælde er det virkelig uden sidestykke og tilbyder fordele, der simpelthen ikke kan matches af nogen anden teknologi på markedet. Men vi skal bruge det rigtige værktøj til jobbet. Denne teknologi er især god til at sikre, at information ikke kan manipuleres med, og at der er en komplet og uforanderlig historie af begivenheder, en slags permanent registrering. Hvis det er noget, du leder efter, og du kan bygge værdi på det, vil blockchain vise sig at være en god pasform for dig.