Atraskite visą programėlių ir programinės įrangos kūrimo gyvavimo ciklą. Mūsų vadovas apima viską – nuo idėjos ir strategijos iki diegimo bei palaikymo pasaulinei auditorijai.
Nuo idėjos iki poveikio: išsamus programėlių ir programinės įrangos kūrimo vadovas
Mūsų hiper-susijusiame pasaulyje programinė įranga yra nematomas variklis, skatinantis pažangą. Nuo mobiliųjų programėlių, kurios organizuoja mūsų gyvenimą, iki sudėtingų verslo sistemų, kurios palaiko pasaulio ekonomiką, programinės įrangos kūrimas yra viena svarbiausių ir labiausiai transformuojančių XXI amžiaus disciplinų. Bet kaip paprasta idėja išsivysto į funkcionalią, patikimą ir paveikią programinę įrangą, kurią naudoja milijonai?
Šis išsamus vadovas demistifikuoja visą procesą. Nesvarbu, ar esate pradedantis verslininkas, turintis žaidimą keičiančią programėlės idėją, produkto vadovas, kuriam pavesta vadovauti naujai iniciatyvai, informatikos studentas ar patyręs programuotojas, norintis patobulinti savo supratimą apie visą gyvavimo ciklą, šis straipsnis skirtas jums. Keliausime per kiekvieną kritinį etapą – nuo idėjos kibirkšties iki nuolatinio palaikymo ir augimo proceso, pateikdami profesionalų, pasaulinį požiūrį į šiuolaikinių programų ir programinės įrangos kūrimą.
1 skyrius: Pamatas – idėja ir strategija
Kiekvienas sėkmingas programinės įrangos projektas prasideda ne nuo kodo eilutės, o nuo tvirto strateginio pagrindo. Šiame pradiniame etape svarbiausia užduoti teisingus klausimus, atlikti išsamius tyrimus ir apibrėžti aiškų kelią į priekį. Skubėjimas šiame etape yra dažna projekto nesėkmės priežastis.
Sprendžiamos problemos nustatymas
Sėkmingiausios programėlės ir programinė įranga yra ne tik techniškai genialios; jos sprendžia realią problemą konkrečiai žmonių grupei. Pradėkite klausdami:
- Kokį neefektyvumą galima pašalinti?
- Kokį procesą galima supaprastinti?
- Koks poreikis šiuo metu nepatenkintas?
- Kokį esamą sprendimą galima ženkliai pagerinti?
Jūsų idėjos stiprumas yra tiesiogiai proporcingas problemos, kurią ji sprendžia, svarbai. Sprendimas, ieškantis problemos, retai randa rinką.
Rinkos tyrimas ir konkurencinė analizė
Kai turite problemos sprendimo hipotezę, turite ją patikrinti atsižvelgdami į rinkos realybę. Tai apima gilų pasinėrimą į pasaulinę ir vietinę aplinką.
- Konkurencinė analizė: Nustatykite tiesioginius ir netiesioginius konkurentus. Išanalizuokite jų stipriąsias ir silpnąsias puses, kainodaros modelius ir vartotojų atsiliepimus. Įrankiai, tokie kaip G2, Capterra B2B programinei įrangai, ir data.ai (buvęs App Annie) mobiliesiems programėlėms, yra neįkainojami. Dėl ko skundžiasi vartotojai? Šie skundai yra jūsų galimybės.
- Rinkos dydžio nustatymas: Kiek žmonių ar verslų susiduria su šia problema? Ar rinka pakankamai didelė, kad išlaikytų jūsų projektą? Ar tai auganti, ar mažėjanti rinka? Naudokite rinkos tyrimų ataskaitas iš tokių firmų kaip Gartner, Forrester ir Statista, kad surinktumėte kiekybinius duomenis.
- Tendencijų analizė: Kokios yra vyraujančios technologinės ir kultūrinės tendencijos? Ar jūsų tiksliniame sektoriuje pastebimas poslinkis link „mobile-first“ patirčių, dirbtinio intelekto integravimo ar prenumeratos modelių?
Tikslinės auditorijos ir naudotojų profilių (personas) apibrėžimas
Negalite kurti visiems. Detalių naudotojų profilių (personas) kūrimas yra kritiškai svarbus pratimas. Persona – tai išgalvotas personažas, atstovaujantis jūsų idealų vartotoją. Jis turėtų apimti:
- Demografinius duomenis (amžius, vieta, profesija – laikomi bendro pobūdžio, siekiant pritaikyti pasaulinei auditorijai).
- Tikslus ir motyvaciją (ko jie nori pasiekti).
- Skausmingas vietas ir nusivylimus (problemas, kurias jūsų programinė įranga išspręs).
- Techninį raštingumą.
Pavyzdžiui, projekto valdymo įrankio persona galėtų būti „Priya, 35 metų nuotolinio marketingo vadovė Singapūre, kuriai sunku koordinuoti užduotis skirtingose laiko juostose ir reikia vieno patikimo informacijos šaltinio savo komandos projektams.“ Tai iškart paaiškina pagrindinių poreikių rinkinį.
Unikalaus vertės pasiūlymo (UVP) nustatymas
Jūsų UVP yra aiškus, glaustas teiginys, paaiškinantis, kaip jūsų produktas naudingas vartotojams ir kuo jis skiriasi nuo konkurentų. Stiprus UVP atsako į tris klausimus:
- Kas yra jūsų produktas?
- Kam jis skirtas?
- Kodėl jis geresnis?
Pavyzdys: Slack atveju tai galėtų būti: „Slack yra bendradarbiavimo centras komandoms (kas/kam), kuris pakeičia el. paštą, kad jūsų darbas taptų paprastesnis, malonesnis ir produktyvesnis (kodėl tai geriau).“
Monetizacijos strategijos: pasaulinė perspektyva
Kaip jūsų programinė įranga generuos pajamas? Šis sprendimas daro įtaką dizainui, architektūrai ir rinkodarai. Dažniausi modeliai yra šie:
- Freemium: Nemokama versija su pagrindinėmis funkcijomis ir mokama premium versija su išplėstinėmis galimybėmis. Populiarus tarp tokių įrankių kaip Spotify ir Dropbox.
- Prenumerata (SaaS - Software as a Service): Vartotojai moka pasikartojantį mokestį (mėnesinį ar metinį) už prieigą. Dominuojantis modelis B2B ir daugeliui vartotojų programėlių, tokių kaip Netflix ir Adobe Creative Cloud.
- Vienkartinis pirkimas: Vartotojai moka vieną kartą, kad įsigytų programinės įrangos licenciją. Dabar retesnis, bet vis dar naudojamas kai kuriems profesionaliems įrankiams ir žaidimams.
- Pirkimai programėlėje: Dažnas mobiliuosiuose žaidimuose ir programėlėse, perkant skaitmenines prekes ar atrakinant turinį.
- Reklama: Siūloma nemokama programėlė, o pajamos gaunamos rodant reklamas vartotojams.
Kuriant kainų lygius pasaulinei auditorijai, atsižvelkite į regioninę perkamąją galią ir mokėjimo įpročius.
2 skyrius: Planavimas ir projektavimas – sėkmės brėžinys
Turint patvirtintą idėją ir aiškią strategiją, laikas kurti brėžinį. Šis etapas paverčia abstrakčias idėjas apčiuopiamais planais ir vizualiniais projektais, kurie vadovaus kūrėjų komandai.
Programinės įrangos gyvavimo ciklas (PĮGC)
PĮGC yra struktūrizuotas procesas, suteikiantis sistemą programinei įrangai kurti. Nors egzistuoja daug modelių, ryškiausi yra šie:
- Krioklio (Waterfall): Tradicinis, linijinis modelis, kuriame kiekvienas etapas (reikalavimai, projektavimas, įgyvendinimas, testavimas, diegimas) turi būti užbaigtas prieš pradedant kitą. Jis yra nelankstus ir netinka projektams, kuriuose reikalavimai gali keistis.
- Agile: Šiuolaikinis standartas. Agile yra iteratyvus metodas, kai darbas skaidomas į mažus, valdomus prieaugius, vadinamus „sprintais“. Jis teikia pirmenybę lankstumui, bendradarbiavimui su klientais ir greitam pristatymui. Šis modelis leidžia komandoms prisitaikyti prie kintančių reikalavimų ir anksti bei dažnai gauti vartotojų atsiliepimus.
Agile revoliucija: Scrum ir Kanban
Agile yra filosofija, o Scrum ir Kanban yra sistemos jai įgyvendinti.
- Scrum: Labai struktūrizuota sistema, pagrįsta sprintais, paprastai trunkančiais 1–4 savaites. Ji apima konkrečius vaidmenis (produkto savininkas, Scrum meistras, kūrėjų komanda) ir ceremonijas (sprinto planavimas, kasdienis susirinkimas, sprinto apžvalga, sprinto retrospektyva). Ji suteikia nuspėjamą kūrimo ritmą.
- Kanban: Lankstesnė sistema, orientuota į darbo eigos vizualizavimą ir nebaigtų darbų ribojimą. Užduotys juda per Kanban lentą (pvz., „Užduotys“, „Vykdoma“, „Atlikta“). Ji puikiai tinka komandoms, kurios turi valdyti nuolatinį užduočių srautą, pavyzdžiui, palaikymo ir priežiūros komandoms.
Produkto gairių kūrimas ir funkcijų apibrėžimas
Produkto gairės yra aukšto lygio vizualinė suvestinė, kuri apibrėžia jūsų produkto viziją ir kryptį laikui bėgant. Ji perteikia „kodėl“ to, ką kuriate.
Remdamiesi gairėmis, darbą suskaidote į funkcijas. Svarbiausia čia yra apibrėžti minimalų gyvybingą produktą (MVP). MVP nėra pusiau užbaigtas produktas; tai yra paprasčiausia jūsų produkto versija, kurią galima išleisti, kad suteiktų pagrindinę vertę pradiniams vartotojams ir leistų pradėti rinkti atsiliepimus. Tai apsaugo jus nuo mėnesių ar metų, praleistų kuriant produktą, kurio niekam nereikia.
UI/UX dizainas: vartotojo patirties kūrimas
Čia jūsų programinė įranga pradeda įgauti vizualinę formą. Tai yra kritinė disciplina, turinti du skirtingus, bet tarpusavyje susijusius komponentus:
- UX (User Experience) dizainas: Tai yra „kaip tai veikia“ dalis. UX dizaineriai sutelkia dėmesį į bendrą produkto pojūtį. Jie tiria vartotojų keliones, informacijos architektūrą ir sąveikos dizainą, siekdami užtikrinti, kad programinė įranga būtų logiška, efektyvi ir maloni naudoti. Tikslas – sklandžiai išspręsti vartotojo problemą.
- UI (User Interface) dizainas: Tai yra „kaip tai atrodo“ dalis. UI dizaineriai sutelkia dėmesį į vizualinius elementus – mygtukus, piktogramas, tipografiją, spalvų schemas ir tarpus. Jie sukuria vizualiai patrauklią, nuoseklią ir intuityvią sąsają, kuri veda vartotoją.
Projektavimo procesas paprastai vyksta šiais etapais:
- Karkasai (Wireframes): Žemo detalumo, pagrindiniai brėžiniai, kurie apibrėžia kiekvieno ekrano struktūrą ir išdėstymą.
- Maketai (Mockups): Aukšto detalumo statiniai dizainai, kurie parodo, kaip atrodys galutinė sąsaja, įskaitant spalvas, šriftus ir vaizdus.
- Prototipai: Interaktyvūs maketai, leidžiantys vartotojams spustelėti programėlės srautą. Tai būtina vartotojų testavimui prieš pradedant rašyti bet kokį kodą.
Pasaulinės kompanijos, tokios kaip Figma, Sketch ir Adobe XD, yra pramonės standartiniai įrankiai šiam procesui. Svarbus aspektas turi būti prieinamumas (pvz., laikantis WCAG gairių), kad jūsų programinę įrangą galėtų naudoti žmonės su negalia.
3 skyrius: Kūrimas – architektūra ir programavimas
Tai etapas, kai projektai ir planai paverčiami veikiančia programine įranga. Tam reikalingi apgalvoti techniniai sprendimai, disciplinuotos kodavimo praktikos ir stiprus bendradarbiavimas.
Tinkamo technologijų rinkinio (Tech Stack) pasirinkimas
„Tech stack“ yra technologijų ir programavimo kalbų rinkinys, naudojamas kuriant programą. Tai vienas svarbiausių techninių sprendimų. Rinkinys paprastai skirstomas į kelis sluoksnius:
- Front-End (kliento pusė): Tai, ką vartotojas mato ir su kuo sąveikauja. Žiniatinklio programoms tai reiškia HTML, CSS ir JavaScript karkasus, tokius kaip React, Angular ar Vue.js. Mobiliosioms programėlėms tai Swift (iOS) ir Kotlin (Android) arba kelių platformų karkasai, tokie kaip React Native ar Flutter.
- Back-End (serverio pusė): Programos „variklis“. Jis tvarko verslo logiką, sąveiką su duomenų baze ir vartotojų autentifikavimą. Populiarūs pasirinkimai yra Node.js (JavaScript), Python (su Django ar Flask karkasais), Ruby on Rails, Java (su Spring) arba PHP (su Laravel).
- Duomenų bazė: Vieta, kur saugomi visi programos duomenys. Dažnai renkamasi tarp SQL (reliacinių) duomenų bazių, tokių kaip PostgreSQL ir MySQL, kurios puikiai tinka struktūrizuotiems duomenims, ir NoSQL duomenų bazių, tokių kaip MongoDB, kurios siūlo daugiau lankstumo nestruktūrizuotiems duomenims.
- Debesija ir DevOps: Infrastruktūra, kurioje talpinama jūsų programa. Pagrindiniai pasauliniai debesijos paslaugų teikėjai yra Amazon Web Services (AWS), Google Cloud Platform (GCP) ir Microsoft Azure. Jie teikia serverių, duomenų bazių, saugumo ir kitas paslaugas. DevOps įrankiai automatizuoja programinės įrangos kūrimo, testavimo ir diegimo procesus.
Technologijų rinkinio pasirinkimas priklauso nuo tokių veiksnių kaip projekto reikalavimai, mastelio keitimo poreikiai, programuotojų talentų prieinamumas ir kaina.
Kūrimo metodologijos veiksme
Geras kūrimas yra daugiau nei tik kodo rašymas. Tai yra kokybiško kodo rašymas struktūrizuotame procese.
- Švarus, palaikomas kodas: Programuotojai turėtų laikytis nustatytų kodavimo standartų ir geriausių praktikų, skirtų jų pasirinktai kalbai. Kodas turėtų būti gerai komentuotas ir logiškai struktūrizuotas, kad kiti programuotojai galėtų jį suprasti ir plėtoti ateityje.
- Versijų valdymas su Git: Neįmanoma įsivaizduoti šiuolaikinio programinės įrangos kūrimo be versijų kontrolės sistemos, tokios kaip Git. Ji leidžia keliems programuotojams vienu metu dirbti su ta pačia kodo baze be konfliktų. Platformos, tokios kaip GitHub, GitLab ir Bitbucket, talpina Git saugyklas ir teikia galingus bendradarbiavimo įrankius, tokius kaip „pull requests“ ir kodo peržiūros.
- Nuolatinė integracija / nuolatinis diegimas (CI/CD): Tai pagrindinė DevOps praktika. CI automatiškai sukuria ir testuoja kodą kiekvieną kartą, kai programuotojas įkelia pakeitimą. CD automatiškai įdiegia kodą į testavimo ar produkcinę aplinką, jei jis praeina visus testus. Ši praktika dramatiškai pagreitina kūrimo ciklą ir sumažina žmogiškųjų klaidų tikimybę.
4 skyrius: Testavimas ir kokybės užtikrinimas (QA) – patikimumo garantavimas
Kodo rašymas yra tik pusė darbo. Užtikrinimas, kad kodas veikia kaip tikėtasi, neturi kritinių klaidų ir gerai veikia esant apkrovai, yra kokybės užtikrinimo (QA) vaidmuo. Šio etapo praleidimas ar skubėjimas lemia prastą vartotojo patirtį, saugumo pažeidžiamumus ir brangius pataisymus vėliau.
Tvirtos testavimo strategijos svarba
Būtina daugiasluoksnė testavimo strategija. Tikslas yra kuo anksčiau kūrimo procese aptikti klaidas, nes kuo vėliau jos randamos, tuo brangiau jas ištaisyti.
Programinės įrangos testavimo tipai
Testavimas atliekamas įvairiais lygiais, dažnai vizualizuojamas kaip „testavimo piramidė“:
- Vienetų testai (Unit Tests): Jie sudaro piramidės pagrindą. Programuotojai rašo šiuos testus, kad patikrintų, ar atskiros kodo dalys (vienetai ar funkcijos) veikia teisingai atskirai.
- Integraciniai testai (Integration Tests): Jie tikrina, kaip skirtingos programos dalys veikia kartu. Pavyzdžiui, ar front-end teisingai iškviečia back-end API ir apdoroja atsakymą?
- Sistemos testai (End-to-End): Jie tikrina visą programą kaip visumą, imituodami realius vartotojų scenarijus nuo pradžios iki galo, siekiant užtikrinti, kad visa sistema veiktų kaip numatyta.
- Vartotojo priėmimo testavimas (UAT): Tai paskutinis testavimo etapas, kai tikri galutiniai vartotojai ar klientai testuoja programinę įrangą, kad patvirtintų, jog ji atitinka jų reikalavimus ir yra paruošta išleidimui.
Našumo, apkrovos ir saugumo testavimas
Be funkcinio testavimo, yra keletas kritiškai svarbių ne-funkcinių testų:
- Našumo testavimas: Kaip greitai ir jautriai programa veikia normaliomis sąlygomis?
- Apkrovos testavimas: Kaip programa veikia, kai ja vienu metu naudojasi daug vartotojų? Ar ji gali atlaikyti piko srautą nesugriūdama?
- Saugumo testavimas: Aktyvus pažeidžiamumų, kuriuos galėtų išnaudoti užpuolikai, ieškojimas. Tai apima dažnų problemų, tokių kaip SQL injekcijos, XSS (cross-site scripting) ir netinkamos prieigos kontrolės, paiešką.
Automatizavimo vaidmuo QA
Rankiniu būdu testuoti kiekvieną didelės programos aspektą yra neįmanoma. Automatizuotas testavimas apima scenarijų rašymą, kurie automatiškai vykdo testus. Nors tai reikalauja pradinių investicijų, tai atsiperka, leisdama komandoms per kelias minutes atlikti tūkstančius testų, suteikiant greitą grįžtamąjį ryšį ir užtikrinant, kad nauji pakeitimai nesugadintų esamo funkcionalumo (tai žinoma kaip regresinis testavimas).
5 skyrius: Diegimas ir paleidimas – išėjimas į viešumą
Diegimas yra tiesos akimirka, kai jūsų programinė įranga tampa prieinama vartotojams. Šis procesas turi būti kruopščiai suplanuotas ir įvykdytas, siekiant užtikrinti sklandų paleidimą.
Pasiruošimas diegimui: priešpaleidimo kontrolinis sąrašas
Prieš „paspaudžiant mygtuką“, jūsų komanda turėtų peržiūrėti išsamų kontrolinį sąrašą:
- Galutinis kodo „įšaldymas“ ir saugumo peržiūros.
- Duomenų migracijos planai (jei keičiama sena sistema).
- Produkcinės aplinkos infrastruktūros (serverių, duomenų bazių) paruošimas.
- Stebėjimo ir registravimo (logging) įrankių įdiegimas.
- Rinkodaros medžiagos ir vartotojo dokumentacijos paruošimas.
- Palaikymo komandos apmokymas.
Diegimas į debesiją
Šiuolaikinės programos beveik visada diegiamos debesijos platformose, tokiose kaip AWS, GCP ar Azure. Šios platformos leidžia užtikrinti masto keitimą (lengvai pridėti daugiau serverių pajėgumų, augant vartotojų skaičiui) ir patikimumą (paskirstyti programą keliose geografinėse vietose, siekiant išvengti gedimų). DevOps inžinieriai paprastai valdo diegimo vamzdynus (pipelines), kurie automatizuoja naujo kodo perkėlimo į produkcinius serverius procesą.
Pateikimas į programėlių parduotuves
Mobiliosioms programėlėms diegimas reiškia pateikimą į atitinkamas programėlių parduotuves:
- Apple App Store: Žinoma dėl griežto ir kartais ilgo peržiūros proceso. Programuotojai privalo laikytis Apple „Human Interface Guidelines“.
- Google Play Store: Peržiūros procesas paprastai yra greitesnis ir labiau automatizuotas, tačiau programuotojai vis tiek turi laikytis Google politikos.
Abiem platformoms reikės paruošti programėlių parduotuvių aprašymus, įskaitant ekrano nuotraukas, piktogramas, aprašymus ir privatumo politikas.
Paleidimas: rinkodara ir pradinių vartotojų pritraukimas
Techninis paleidimas nėra verslo paleidimas. Jums reikia strategijos, kaip pritraukti pirmuosius vartotojus. Tai gali apimti socialinės medijos kampanijas, turinio rinkodarą, ryšius su spauda ar mokamą reklamą, priklausomai nuo jūsų produkto ir tikslinės auditorijos.
6 skyrius: Po paleidimo – palaikymas ir augimas
Kelionė nesibaigia ties paleidimu. Daugeliu atžvilgių tai tik pradžia. Sėkmingai programinei įrangai reikia nuolatinio dėmesio, tobulinimo ir prisitaikymo.
Stebėjimas ir našumo valdymas
Kai jūsų programėlė paleista, ją reikia nuolat stebėti. Įrankiai, tokie kaip Datadog, New Relic ir Sentry, padeda sekti:
- Programos našumą: Serverio atsako laikas, duomenų bazės užklausų greitis ir kt.
- Klaidas ir strigimus: Realaus laiko įspėjimai, kai kas nors sugenda, su detaliais žurnalais, padedančiais programuotojams pašalinti problemą.
- Infrastruktūros būklę: CPU naudojimas, atmintis ir tinklo srautas.
Vartotojų atsiliepimų rinkimas ir iteravimas
Jūsų esami vartotojai yra didžiausias informacijos šaltinis. Rinkite atsiliepimus per:
- Atsiliepimų formas programėlėje.
- Vartotojų apklausas.
- Pagalbos užklausas ir el. laiškus.
- Programėlių parduotuvių atsiliepimus.
- Analitikos duomenis apie vartotojų elgseną.
Šis atsiliepimų ciklas yra Agile filosofijos pagrindas. Naudokite šiuos duomenis, kad nustatytumėte skaudulius, nustatytumėte naujų funkcijų prioritetus ir nuolat tobulintumėte vartotojo patirtį.
Atnaujinimų ciklas
Programinė įranga niekada nėra tikrai „baigta“. Būsite nuolatiniame planavimo, kūrimo, testavimo ir atnaujinimų diegimo cikle. Šie atnaujinimai apims:
- Klaidų taisymus: Problemų, kurias atrado vartotojai ar stebėjimo įrankiai, sprendimas.
- Funkcijų patobulinimus: Esamų funkcijų gerinimas remiantis atsiliepimais.
- Naujas funkcijas: Produkto galimybių plėtimas remiantis produkto gairėmis ir vartotojų paklausa.
Programos mastelio keitimas pasaulinei auditorijai
Augant vartotojų bazei, susidursite su naujais iššūkiais. Mastelio keitimas apima tiek techninius, tiek operacinius aspektus:
- Techninis mastelio keitimas: Duomenų bazės optimizavimas, srauto paskirstymo balansavimo priemonių (load balancers) naudojimas ir galimas sistemos dalių perarchitektūravimas, siekiant atlaikyti didesnes apkrovas.
- Pasaulinis mastelio keitimas: Turinio pristatymo tinklo (CDN) naudojimas, siekiant greičiau pateikti turinį vartotojams visame pasaulyje, ir jūsų programos lokalizavimas (jos vertimas ir pritaikymas skirtingoms kultūroms).
Išvada: Jūsų kelionė programinės įrangos kūrime
Programinės įrangos kūrimas yra sudėtingas, bet nepaprastai naudingas užsiėmimas. Tai kelionė, kuri paverčia paprastą idėją apčiuopiamu įrankiu, galinčiu spręsti problemas, jungti žmones ir kurti vertę pasauliniu mastu. Kaip matėme, procesas yra ciklas, o ne tiesi linija. Jis reikalauja kūrybiškumo, strateginio mąstymo, techninės patirties ir nenuilstamo dėmesio galutiniam vartotojui.
Suprasdami ir gerbdami kiekvieną programinės įrangos gyvavimo ciklo etapą – nuo kritinio idėjų ir strategijos pagrindo iki nuolatinio palaikymo ir augimo įsipareigojimo – jūs apsiginkluojate žiniomis, kad sėkmingai naršytumėte šioje dinamiškoje aplinkoje. Pasaulis laukia jūsų kitos puikios idėjos. Dabar jūs turite žemėlapį, kaip ją sukurti.