{"id":77783,"date":"2020-04-14T01:42:28","date_gmt":"2020-04-13T23:42:28","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/metodika-razvyortyvaniya-proektov-primenyaemaya-v-slack"},"modified":"2020-04-14T01:42:28","modified_gmt":"2020-04-13T23:42:28","slug":"metodika-razvyortyvaniya-proektov-primenyaemaya-v-slack","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/metodika-razvyortyvaniya-proektov-primenyaemaya-v-slack","title":{"rendered":"Metodologjia e vendosjes s\u00eb projekteve q\u00eb p\u00ebrdoret n\u00eb Slack","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>L\u00ebshimi i nj\u00eb versioni t\u00eb ri t\u00eb projektit n\u00eb prodhim k\u00ebrkon nj\u00eb balancim t\u00eb kujdessh\u00ebm midis shpejt\u00ebsis\u00eb s\u00eb zhvillimit dhe besueshm\u00ebris\u00eb s\u00eb zgjidhjes. N\u00eb kompanin\u00eb Slack, vler\u00ebsojn\u00eb iteracione t\u00eb shpejta, cikle t\u00eb shkurtra t\u00eb feedback-ut dhe reagim t\u00eb shpejt\u00eb ndaj k\u00ebrkesave t\u00eb p\u00ebrdoruesve. P\u00ebr m\u00eb tep\u00ebr, n\u00eb kompani ka qindra programues q\u00eb synojn\u00eb produktivitet maksimal.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/496838\/\"><img decoding=\"async\" alt=\"Metodologjia e vendosjes s\u00eb projekteve q\u00eb p\u00ebrdoret n\u00eb Slack\" src=\"\/wp-content\/uploads\/2020\/04\/a3d3cec330e9b9bd402035c22bda48ff.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Autor\u00ebt e materialit, p\u00ebrkthimi i t\u00eb cilit po publikojm\u00eb sot, thon\u00eb se nj\u00eb kompani q\u00eb synon t\u00eb ndjek\u00eb vlera t\u00eb tilla dhe p\u00ebr m\u00eb tep\u00ebr po rritet, duhet t\u00eb p\u00ebrmir\u00ebsoj\u00eb vazhdimisht sistemin e saj t\u00eb zhvillimit t\u00eb projekteve. Kompanit\u00eb duhet t\u00eb investojn\u00eb n\u00eb transparenc\u00eb dhe besueshm\u00ebri t\u00eb proceseve t\u00eb pun\u00ebs p\u00ebr t\u00eb siguruar q\u00eb k\u00ebto procese t'i p\u00ebrshtaten p\u00ebrmasave t\u00eb projektit. Ky artikull do t\u00eb flas\u00eb p\u00ebr proceset e pun\u00ebs q\u00eb jan\u00eb krijuar n\u00eb Slack dhe disa zgjidhje q\u00eb e \u00e7uan kompanin\u00eb n\u00eb p\u00ebrdorimin e sistemit aktual t\u00eb zhvillimit t\u00eb projekteve.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Si funksionojn\u00eb sot proceset e zhvillimit t\u00eb projekteve<\/h2>\n<p>\n\u00c7do PR (pull request) n\u00eb Slack duhet patjet\u00ebr t\u00eb kaloj\u00eb n\u00ebp\u00ebr nj\u00eb rishikim kodi dhe duhet t\u00eb kaloj\u00eb me sukses t\u00eb gjitha testet. Vet\u00ebm pas p\u00ebrmbushjes s\u00eb k\u00ebtyre kushteve, programuesi mund t\u00eb kryej\u00eb bashkimin e kodit t\u00eb tij me deg\u00ebn master t\u00eb projektit. Megjithat\u00eb, zhvillimi i k\u00ebtij kodi realizohet vet\u00ebm n\u00eb orar t\u00eb pun\u00ebs sipas koh\u00ebs s\u00eb Amerik\u00ebs s\u00eb Veriut. Si rezultat, ne, p\u00ebr shkak se punonj\u00ebsit tan\u00eb jan\u00eb n\u00eb pun\u00eb, jemi plot\u00ebsisht t\u00eb gatsh\u00ebm p\u00ebr t\u00eb zgjidhur \u00e7do problem t\u00eb papritur.<\/p>\n<p>\u00c7do dit\u00eb ne realizojm\u00eb rreth 12 zhvillime t\u00eb planifikuara. N\u00eb procesin e \u00e7do zhvillimi, programuesi i em\u00ebruar si p\u00ebrgjegj\u00ebs p\u00ebr zhvillimet, \u00ebsht\u00eb p\u00ebrgjegj\u00ebs p\u00ebr nxjerrjen e nj\u00eb nd\u00ebrtese t\u00eb re n\u00eb prodhim. Ky \u00ebsht\u00eb nj\u00eb proces me shum\u00eb hapa q\u00eb siguron nj\u00eb kalim t\u00eb qet\u00eb t\u00eb nd\u00ebrtese n\u00eb modin aktiv. Fal\u00eb k\u00ebtij qasje, ne mund t\u00eb identifikojm\u00eb gabimet para se ato t\u00eb ndikojn\u00eb te \u00e7do p\u00ebrdorues tonin. N\u00ebse ka shum\u00eb gabime, zhvillimi mund t\u00eb anulohet. N\u00ebse nj\u00eb problem i ve\u00e7ant\u00eb zbulohet pas l\u00ebshimit, \u00ebsht\u00eb e leht\u00eb t\u00eb l\u00ebshosh nj\u00eb rregullim p\u00ebr t\u00eb.<\/p>\n<p><img decoding=\"async\" alt=\"Metodologjia e vendosjes s\u00eb projekteve q\u00eb p\u00ebrdoret n\u00eb Slack\" src=\"\/wp-content\/uploads\/2020\/04\/e05d8ecf210832734a7bb691621a1f96.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Interfaca e sistemit Checkpoint, e cila p\u00ebrdoret n\u00eb Slack p\u00ebr zhvillimin e projekteve<\/i><\/p>\n<p>Procesi i zhvillimit t\u00eb nj\u00eb versioni t\u00eb ri n\u00eb prodhim mund t\u00eb p\u00ebrfaq\u00ebsohet nga kat\u00ebr hapa.<\/p>\n<h3>\u258d1. Krijimi i deg\u00ebs s\u00eb l\u00ebshimit<\/h3>\n<p>\n\u00c7do l\u00ebshim fillon me nj\u00eb deg\u00eb t\u00eb re t\u00eb l\u00ebshimit, nga momenti n\u00eb historin\u00eb ton\u00eb Git. Kjo lejon q\u00eb t\u00eb caktojm\u00eb etiketat p\u00ebr l\u00ebshimin dhe krijon nj\u00eb hap\u00ebsir\u00eb ku mund t\u00eb b\u00ebjm\u00eb korrigjime t\u00eb menj\u00ebhershme p\u00ebr gabimet e gjetura gjat\u00eb p\u00ebrgatitjes s\u00eb l\u00ebshimit p\u00ebr publikim n\u00eb prodhim.<\/p>\n<h3>\u258d2. Shp\u00ebrndarja n\u00eb mjedisin e nd\u00ebrmjet\u00ebm<\/h3>\n<p>\nHapi tjet\u00ebr i pun\u00ebs \u00ebsht\u00eb shp\u00ebrndarja e nd\u00ebrtimit n\u00eb servera nd\u00ebrmjet\u00ebs (staging) dhe ekzekutimi i testit automatik p\u00ebr funksionalitetin e p\u00ebrgjithsh\u00ebm t\u00eb projektit (smoke test). Mjedisi nd\u00ebrmjet\u00ebs \u00ebsht\u00eb mjedisi i prodhimit, ku nuk kalon trafiku i jasht\u00ebm. N\u00eb k\u00ebt\u00eb mjedis ne kryejm\u00eb testime manuale t\u00eb tjera. Kjo na jep nj\u00eb besim t\u00eb shtuar se projekti i ndryshuar funksionon si\u00e7 duhet. Vet\u00ebm testet automatizuar nuk jan\u00eb t\u00eb mjaftueshme p\u00ebr t\u00eb fituar nj\u00eb besim t\u00eb till\u00eb.<\/p>\n<h3>\u258d3. Shp\u00ebrndarja n\u00eb mjediset dogfood dhe canary<\/h3>\n<p>\nShp\u00ebrndarja n\u00eb prodhim fillon me mjedisin dogfood, i cili p\u00ebrb\u00ebhet nga nj\u00eb grup hostesh q\u00eb sh\u00ebrbejn\u00eb hap\u00ebsirat tona t\u00eb pun\u00ebs n\u00eb Slack. Duke qen\u00eb se jemi p\u00ebrdorues shum\u00eb aktiv\u00eb t\u00eb Slack, ky qasje ka ndihmuar n\u00eb zbardhjen e shum\u00eb gabimeve n\u00eb fazat e hershme t\u00eb shp\u00ebrndarjes. Pasi t\u00eb jemi siguruar q\u00eb funksionaliteti baz\u00eb i sistemit nuk \u00ebsht\u00eb thyer, shp\u00ebrndajm\u00eb nd\u00ebrtimin n\u00eb mjedisin canary. Ky p\u00ebrb\u00ebn sisteme q\u00eb marrin rreth 2% t\u00eb trafikut t\u00eb prodhimit.<\/p>\n<h3>\u258d4. Nxjerrja graduale n\u00eb prodhim<\/h3>\n<p>\nN\u00ebse treguesit e monitorimit p\u00ebr l\u00ebshimin e ri jan\u00eb t\u00eb q\u00ebndruesh\u00ebm, dhe pas shp\u00ebrndarjes s\u00eb projektit n\u00eb mjedisin canary nuk kemi marr\u00eb ankesa, vazhdojm\u00eb me transferimin gradual t\u00eb server\u00ebve t\u00eb prodhimit n\u00eb l\u00ebshimin e ri. Procesi i shp\u00ebrndarjes \u00ebsht\u00eb i ndar\u00eb n\u00eb faza: 10%, 25%, 50%, 75% dhe 100%. K\u00ebshtu ne mund t\u00eb kalojm\u00eb ngadal\u00eb trafikun e prodhimit n\u00eb l\u00ebshimin e ri t\u00eb sistemit. Gjat\u00eb k\u00ebsaj kohe kemi hap\u00ebsir\u00eb p\u00ebr t\u00eb hetuar situat\u00ebn n\u00eb rast se shfaqen anomali t\u00eb caktuara.<\/p>\n<h3>\u258d\u00c7far\u00eb t\u00eb b\u00ebjm\u00eb n\u00ebse gjat\u00eb shp\u00ebrndarjes ndodhi di\u00e7ka q\u00eb shkoi keq?<\/h3>\n<p>\nModifikimi i kodit gjithmon\u00eb p\u00ebrmban rrezik. Por ne e menaxhojm\u00eb k\u00ebt\u00eb fal\u00eb t\u00eb pasurive t\u00eb mira t\u00eb \u00abshefave t\u00eb shp\u00ebrndarjes\u00bb, t\u00eb cil\u00ebt drejtojn\u00eb procesin e daljes s\u00eb versioneve t\u00eb reja n\u00eb prodhim, monitorojn\u00eb parametrat dhe koordinojn\u00eb pun\u00ebn e programuesve q\u00eb l\u00ebshojn\u00eb kodin.<\/p>\n<p>N\u00ebse ndonj\u00ebher\u00eb di\u00e7ka shkon keq, ne p\u00ebrpiqemi ta zbulojm\u00eb problemin sa m\u00eb her\u00ebt t\u00eb jet\u00eb e mundur. Ne shqyrtojm\u00eb problemin, gjejm\u00eb PR-in q\u00eb shkakton gabime, e rrotullojm\u00eb at\u00eb, e analizojm\u00eb me kujdes dhe krijojm\u00eb nj\u00eb nd\u00ebrtim t\u00eb ri. E v\u00ebrteta \u00ebsht\u00eb se ndonj\u00ebher\u00eb problemi mbetet i paditur deri n\u00eb daljen e projektit n\u00eb prodhim. N\u00eb nj\u00eb situat\u00eb t\u00eb till\u00eb, gj\u00ebja m\u00eb e r\u00ebnd\u00ebsishme \u00ebsht\u00eb rikthimi i funksionimit t\u00eb sh\u00ebrbimit. Prandaj, para se t\u00eb fillojm\u00eb hetimin e problemit, ne menj\u00ebher\u00eb kthehemi n\u00eb nd\u00ebrtimin e m\u00ebparsh\u00ebm t\u00eb pun\u00ebs.<\/p>\n<h2>Blloqet nd\u00ebrtuese t\u00eb sistemit ton\u00eb t\u00eb shp\u00ebrndarjes<\/h2>\n<p>\nLe t\u00eb shqyrtojm\u00eb teknologjit\u00eb q\u00eb q\u00ebndrojn\u00eb pas sistemit ton\u00eb t\u00eb shp\u00ebrndarjes s\u00eb projekteve.<\/p>\n<h3>\u258dShp\u00ebrndarje t\u00eb shpejta<\/h3>\n<p>\nProcesi i pun\u00ebs i p\u00ebrshkruar m\u00eb sip\u00ebr mund t\u00eb duket, n\u00eb retrospektiv\u00eb, si di\u00e7ka krejt\u00ebsisht e qart\u00eb. Por sistemi yn\u00eb i shp\u00ebrndarjes nuk u b\u00eb k\u00ebshtu menj\u00ebher\u00eb.<\/p>\n<p>Kur kompania ishte shum\u00eb m\u00eb e vog\u00ebl, gjith\u00eb aplikacioni yn\u00eb mund t\u00eb funksiononte n\u00eb 10 instanca Amazon EC2. Shp\u00ebrndarja e nj\u00eb projekti n\u00eb nj\u00eb situat\u00eb t\u00eb till\u00eb do t\u00eb thoshte p\u00ebrdorimin e rsync p\u00ebr sinkronizimin e shpejt\u00eb t\u00eb t\u00eb gjith\u00eb server\u00ebve. Disa koh\u00eb, kodi i ri nga prodhimi ndaheshin vet\u00ebm me nj\u00eb hap, t\u00eb paraqitur nga ambienti nd\u00ebrmjet\u00ebs. Nd\u00ebrtimet krijoheshin dhe kontrolloheshin n\u00eb nj\u00eb ambient t\u00eb till\u00eb dhe pastaj shkonin menj\u00ebher\u00eb n\u00eb prodhim. T\u00eb kuptuarit e nj\u00eb sistemi t\u00eb till\u00eb ishte shum\u00eb e leht\u00eb, ai lejonte \u00e7do programues t\u00eb shpejtoj\u00eb kodin e shkruar n\u00eb \u00e7do koh\u00eb.<\/p>\n<p>Por nd\u00ebrsa numri i klient\u00ebve tan\u00eb rritej, rritej edhe shkalla e infrastruktur\u00ebs q\u00eb nevojitej p\u00ebr t\u00eb mb\u00ebshtetur projektin. Shpejt, duke marr\u00eb parasysh rritjen e vazhdueshme t\u00eb sistemit, modeli yn\u00eb i shp\u00ebrndarjes, i bazuar n\u00eb d\u00ebrgimin e kodit t\u00eb ri n\u00eb server\u00eb, nuk ishte m\u00eb n\u00eb gjendje t\u00eb p\u00ebrmbushte detyr\u00ebn e tij. Konkretisht, shtimi i \u00e7do serveri t\u00eb ri do t\u00eb thoshte rritje t\u00eb koh\u00ebs s\u00eb nevojshme p\u00ebr t\u00eb realizuar shp\u00ebrndarjen. Edhe strategjit\u00eb q\u00eb bazohen n\u00eb aplikimin paralel t\u00eb rsync kan\u00eb kufizime t\u00eb caktuara.<\/p>\n<p>Si n\u00eb fund, ne zgjidh\u00ebm k\u00ebt\u00eb problem duke kaluar n\u00eb nj\u00eb sistem t\u00ebr\u00ebsisht paralel t\u00eb implementimit, i cili nuk ishte i nd\u00ebrtuar si sistemi i vjet\u00ebr. Tani, ne nuk d\u00ebrgonim kodin n\u00eb server\u00eb duke p\u00ebrdorur nj\u00eb skritp sinkronizimi. \u00c7do server tani ngarkohej automatikisht me nj\u00eb version t\u00eb ri, duke e m\u00ebsuar k\u00ebt\u00eb nevoj\u00eb p\u00ebrmes ndjekjes s\u00eb ndryshimit t\u00eb \u00e7el\u00ebsit Consul. Server\u00ebt ngarkonin kodin paralelisht. Kjo na lejoi t\u00eb mbajm\u00eb nj\u00eb shpejt\u00ebsi t\u00eb lart\u00eb t\u00eb implementimit edhe n\u00eb nj\u00eb ambient me rritje t\u00eb vazhdueshme t\u00eb sistemit.<\/p>\n<p><img decoding=\"async\" alt=\"Metodologjia e vendosjes s\u00eb projekteve q\u00eb p\u00ebrdoret n\u00eb Slack\" src=\"\/wp-content\/uploads\/2020\/04\/baf52b60024eb9881e8a31fbf0da08bd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>1. Server\u00ebt e prodhimit ndjekin \u00e7el\u00ebsin Consul. 2. \u00c7el\u00ebsi ndryshon, duke i njoftuar server\u00ebt se duhet t\u00eb fillojn\u00eb ngarkimin e kodit t\u00eb ri. 3. Server\u00ebt ngarkojn\u00eb skedar\u00eb tarball me kodin e aplikacionit.<\/i><\/p>\n<h3>\u258dImplementime atomike<\/h3>\n<p>\nNj\u00eb tjet\u00ebr zgjidhje q\u00eb na ndihmoi t\u00eb arrijm\u00eb nj\u00eb sistem t\u00eb ndar\u00eb t\u00eb implementimit ishte implementimi atomic.<\/p>\n<p>Para p\u00ebrdorimit t\u00eb implementimeve atomike, \u00e7do implementim mund t\u00eb \u00e7onte n\u00eb nj\u00eb num\u00ebr t\u00eb madh mesazhesh gabimi. Kjo ndodhte sepse procesi i kopjimit t\u00eb skedareve t\u00eb rinj n\u00eb server\u00ebt e prodhimit nuk ishte atomic. Kjo kishim p\u00ebr pasoj\u00eb q\u00eb p\u00ebr nj\u00eb periudh\u00eb t\u00eb shkurt\u00ebr, kodi q\u00eb th\u00ebrriste funksionet e reja b\u00ebhej i qassh\u00ebm para se vet\u00eb funksionet t\u00eb ishin t\u00eb disponueshme. Kur ky kod th\u00ebrritej, kjo sillte kthimin e gabimeve t\u00eb brendshme. Kjo shfaqej n\u00eb k\u00ebrkesat e d\u00ebshtuara ndaj API-s\u00eb dhe n\u00eb faqe t\u00eb \u201cprishura\u201d web.<\/p>\n<p>Ekipa q\u00eb merrej me k\u00ebt\u00eb problem e zgjidhi at\u00eb duke p\u00ebrdorur konceptet e direktorive \u201ct\u00eb nxehta\u201d (hot) dhe \u201ct\u00eb ftohta\u201d (cold). Kodi n\u00eb direktorin\u00eb \u201ct\u00eb nxeht\u00eb\u201d p\u00ebrgjigjet p\u00ebr p\u00ebrpunimin e trafikut t\u00eb prodhimit. Nd\u00ebrsa n\u00eb direktorive \u201ct\u00eb ftohta\u201d, kodi p\u00ebrgatitet p\u00ebr p\u00ebrdorim gjat\u00eb pun\u00ebs s\u00eb sistemit. Gjat\u00eb implementimit, kodi i ri kopjohet n\u00eb nj\u00eb direktorin\u00eb \u201ct\u00eb ftoht\u00eb\u201d q\u00eb nuk p\u00ebrdoret. Pastaj, kur n\u00eb server nuk ka procese aktive, b\u00ebhet nj\u00eb kalim i menj\u00ebhersh\u00ebm i direktorive.<\/p>\n<p><img decoding=\"async\" alt=\"Metodologjia e vendosjes s\u00eb projekteve q\u00eb p\u00ebrdoret n\u00eb Slack\" src=\"\/wp-content\/uploads\/2020\/04\/05ab374f047e53e408f3e75ad3a73d68.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>1. Zhbllokimi i kodit t\u00eb aplikacionit n\u00eb direktorin\u00eb \u201ct\u00eb ftoht\u00eb\u201d. 2. Kalimi i sistemit n\u00eb direktorin\u00eb \u201ct\u00eb ftoht\u00eb\u201d, e cila b\u00ebhet \u201ct\u00eb nxeht\u00eb\u201d (operacion atomic).<\/i><\/p>\n<h2>P\u00ebrfundime: kalimi n\u00eb fokusin te q\u00ebndrueshm\u00ebria.<\/h2>\n<p>\nN\u00eb vitin 2018, projekti arriti nj\u00eb shkall\u00eb ku shp\u00ebrndarja e shpejt\u00eb filloi t\u00eb d\u00ebmtonte stabilitetin e produktit. Kishim nj\u00eb sistem t\u00eb avancuar shp\u00ebrndarjeje, n\u00eb t\u00eb cilin kishim investuar shum\u00eb p\u00ebrpjekje dhe koh\u00eb. Na nevojitej vet\u00ebm t\u00eb ristrukturojm\u00eb dhe p\u00ebrmir\u00ebsojm\u00eb proceset e organizimit t\u00eb shp\u00ebrndarjes. U b\u00ebm\u00eb nj\u00eb kompani mjaft t\u00eb madhe, zhvillimet e s\u00eb cil\u00ebs p\u00ebrdoren n\u00eb t\u00eb gjith\u00eb bot\u00ebn p\u00ebr t\u00eb organizuar komunikimin e pand\u00ebrprer\u00eb dhe p\u00ebr t\u00eb zgjidhur probleme t\u00eb r\u00ebnd\u00ebsishme. Prandaj, fokusimi yn\u00eb ishte n\u00eb besueshm\u00ebri.<\/p>\n<p>Na nevojitej t\u00eb b\u00ebnim procesin e shp\u00ebrndarjes s\u00eb versioneve t\u00eb reja t\u00eb Slack m\u00eb t\u00eb sigurta. Kjo nevoj\u00eb na \u00e7oi n\u00eb p\u00ebrmir\u00ebsimin e sistemit ton\u00eb t\u00eb shp\u00ebrndarjes. N\u00eb thell\u00ebsit\u00eb e sistemit, ne vazhdojm\u00eb t\u00eb p\u00ebrdorim teknologjit\u00eb e shp\u00ebrndarjes s\u00eb shpejt\u00eb dhe atomike. Ajo q\u00eb ndryshoi \u00ebsht\u00eb m\u00ebnyra se si konkretisht b\u00ebhet shp\u00ebrndarja. Sistemi yn\u00eb i ri \u00ebsht\u00eb dizajnuar p\u00ebr t\u00eb realizuar gradualisht shp\u00ebrndarjen e kodit t\u00eb ri n\u00eb nivele t\u00eb ndryshme, n\u00eb mjedise t\u00eb ndryshme. Tani p\u00ebrdorim mjete ndihm\u00ebse dhe instrumente monitorimi m\u00eb t\u00eb avancuara se m\u00eb par\u00eb. Kjo na jep mund\u00ebsin\u00eb t\u00eb kapim dhe zgjidhim gabimet shum\u00eb p\u00ebrpara se ato t\u00eb ken\u00eb mund\u00ebsin\u00eb t\u00eb arrijn\u00eb te p\u00ebrdoruesi i fundit.<\/p>\n<p>Por ne nuk planifikojm\u00eb t\u00eb ndalemi k\u00ebtu. Ne vazhdimisht po e p\u00ebrmir\u00ebsojm\u00eb k\u00ebt\u00eb sistem duke aplikuar mjete ndihm\u00ebse dhe metoda automatizimi m\u00eb t\u00eb avancuara.<\/p>\n<p><b>T\u00eb nderuar lexues!<\/b> Si \u00ebsht\u00eb organizuar procesi i shp\u00ebrndarjes s\u00eb versioneve t\u00eb reja t\u00eb projekteve atje ku punoni ju?<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/ruvds.com\/ru-rub\/#order\"><img decoding=\"async\" alt=\"Metodologjia e vendosjes s\u00eb projekteve q\u00eb p\u00ebrdoret n\u00eb Slack\" src=\"\/wp-content\/uploads\/2020\/04\/1aeb4af5770ce139b651be62e955f130.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/496838\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u044b\u0432\u043e\u0434 \u043d\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u043b\u0438\u0437\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u043d \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0442\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043e\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0438 \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u0412 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Slack \u0446\u0435\u043d\u044f\u0442 \u0431\u044b\u0441\u0442\u0440\u044b\u0435 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438, \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0446\u0438\u043a\u043b\u044b \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u0432\u044f\u0437\u0438, \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u0440\u0435\u0430\u043a\u0446\u0438\u044e \u043d\u0430 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0438\u043c\u0435\u044e\u0442\u0441\u044f \u0441\u043e\u0442\u043d\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0442\u0440\u0435\u043c\u044f\u0442\u0441\u044f \u043a \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438. \u0410\u0432\u0442\u043e\u0440\u044b \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430, \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u044b \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u043c, \u0433\u043e\u0432\u043e\u0440\u044f\u0442, \u0447\u0442\u043e \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":77784,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-77783","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u044b\u0432\u043e\u0434 \u043d\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u043b\u0438\u0437\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u043d \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0442\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043e\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0438 \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u0435\u0448\u0435\u043d\u0438\u044f.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/metodika-razvyortyvaniya-proektov-primenyaemaya-v-slack\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041c\u0435\u0442\u043e\u0434\u0438\u043a\u0430 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c\u0430\u044f \u0432 Slack | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u044b\u0432\u043e\u0434 \u043d\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u043b\u0438\u0437\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u043d \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0442\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043e\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0438 \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u0435\u0448\u0435\u043d\u0438\u044f.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/metodika-razvyortyvaniya-proektov-primenyaemaya-v-slack\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-04-13T23:42:28+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-04-13T23:42:28+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Metodologjia e shp\u00ebrndarjes s\u00eb projekteve e p\u00ebrdorur n\u00eb Slack | ProHoster","description":"\u00c7do l\u00ebshim i nj\u00eb versioni t\u00eb ri t\u00eb projektit n\u00eb prodhim k\u00ebrkon nj\u00eb balancim t\u00eb kujdessh\u00ebm midis shpejt\u00ebsis\u00eb s\u00eb shp\u00ebrndarjes dhe besueshm\u00ebris\u00eb s\u00eb zgjidhjes.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/metodika-razvyortyvaniya-proektov-primenyaemaya-v-slack","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041c\u0435\u0442\u043e\u0434\u0438\u043a\u0430 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c\u0430\u044f \u0432 Slack | ProHoster","og:description":"\u0412\u044b\u0432\u043e\u0434 \u043d\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u043b\u0438\u0437\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u043d \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0442\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043e\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0438 \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u0435\u0448\u0435\u043d\u0438\u044f.","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/metodika-razvyortyvaniya-proektov-primenyaemaya-v-slack","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-04-13T23:42:28+00:00","article:modified_time":"2020-04-13T23:42:28+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"77783","title":null,"description":null,"keywords":null,"keyphrases":{"focus":[],"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 17:11:30","updated":"2026-08-11 12:50:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/77783","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=77783"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/77783\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/77784"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=77783"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=77783"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=77783"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}