Sisältä katsaus Facebookin mobiilisovellusten kehitysprosessiin

Kirjoittaja: Laura McKinney
Luomispäivä: 4 Huhtikuu 2021
Päivityspäivä: 1 Heinäkuu 2024
Anonim
Sisältä katsaus Facebookin mobiilisovellusten kehitysprosessiin - Sovellukset
Sisältä katsaus Facebookin mobiilisovellusten kehitysprosessiin - Sovellukset

Sisältö


Äskettäin vierailin Facebookin pääkonttorissa Lontoossa oppiakseen sen mobiili-Facebook-sovelluksen kehittämis- ja ylläpitoprosessista. Täällä tapahtuu paljon enemmän kuin luultavasti tajuaa: jotkut Facebookin sovelluksista käsitellään täällä kokonaisuutena, kuten WhatsApp for desktop ja yrityslähtöinen Workplace-sovellus.

Toimistot ovat juuri sitä mitä voit odottaa Facebookin kuvasta, vaikkakaan ei ehkä aivan The Social Network -tason ylimääräiselle tasolle. Tämä on paikka, jossa tehdään vakava työ, mutta siellä on kuitenkin trendikäs, omituinen ja rento ilmapiiri. Työntekijät voivat kuljettaa kannettavia tietokoneita työskentelemään missä tahansa he haluavat. Siellä on painotalo julisteiden tekemiseen (vain siksi), tilaamalla taidetta useille seinille ja jättiläinen Ninja Turtle - en koskaan saanut vastausta miksi.


Voi, ja ruoka on uskomatonta. Olin siellä Kiinan uudenvuoden aikana ja minulla oli moninkertainen sianlihan vatsa. Hyvät ajat.

En kuitenkaan ollut siellä nauttimassa sisustuksesta ja keittiöstä, olin siellä oppiakseni Facebookista mobiililaitteissa. Tarkemmin: kuinka maapallolla edes ylläpidät tätä suurta ja kunnianhimoista hanketta? Facebook-taustajärjestelmä palvelee yli kaksi miljardia ihmistä, ja pelkästään Android-sovellus näkee uuden version joka viikko.

Kuinka hallitset sovellusta, jolla on niin kunnianhimoinen määrä ominaisuuksia

Puhuin Tal Kellnerin kanssa Facebookin oman telepresence-järjestelmän kautta. Tal on tekninen ohjelmapäällikkö, joka vastaa Tel Avivin suunnittelutoimistossa sijaitsevasta Release Engineering Team -ryhmästä. Hän oli mielellään jakanut karkeat yksityiskohdat.


Tal ja hänen tiiminsä latasivat ensimmäisen kerran Facebook-versionsa Lite-version iOS: iin

Se, mitä opin, oli aika kiehtovaa sekä kehittäjän näkökulmasta että käyttäjänä. Tässä on mitä sain selville.

Projektinhallinta Facebookissa - Miksi Scrum> Waterfall

Kun tarkastelet mitä tahansa suurta hanketta, sinun on harkittava projektijohtamistapaa. Yksi tällainen esimerkki on nimeltään “vesiputous” projektijohtaminen. Tämä on peräkkäinen ja lineaarinen lähestymistapa, jossa työskentelet vuorotellen tietyllä vaiheella, kuten siirtymällä ideoinnista toteutukseen testaamiseen ja vapauttamiseen.

Facebookin kaltaiset yritykset valitsevat sen sijaan nykyaikaisemman lähestymistavan nimeltä ”scrum”

Tärkeää on, että tässä lähestymistavassa et aloita seuraavaa vaihetta ennen kuin edellinen vaihe on valmis. Järjestelmä on peräisin valmistuksesta, jossa tietyt vaiheet luottavat usein edelliseen vaiheeseen: sinun on hankittava tiilet ennen kuin voit rakentaa seinän!

Ohjelmistojen suhteen tämä lähestymistapa on rajoittava. Pahimmassa tapauksessa päivityksen käyttöönotto voi viedä niin kauan, se on vanhentunut saapumiseen mennessä. Duke Nukem ikuisesti kukaan?

Joten jotkut ohjelmistoyritykset valitsevat sen sijaan nykyaikaisemman lähestymistavan, nimeltään ”scrum”, joka on ketterä menetelmä. Tämä menetelmä priorisoi tärkeimmän työn ja jakaa sen modulaarisiksi paloiksi. Se perustuu viestintään sisäisten osastojen ja jopa yksittäisten agenttien välillä, jotka työskentelevät yksin omien koodin kulmiensa parissa.

Tuloksena on teoriassa se, että jokainen voi työskennellä sen suhteen, mikä on heille kiireellisesti koko ajan, ja että jokainen muu liiketoiminnan osa tietää mitä he tekevät. Jokaisella insinöörillä on korkea omistajuustaso ja jokainen on viime kädessä vastuussa omasta työstään. Tämä ei vain tee yrityksestä ketterämpää, vaan myös toivottavasti lisää työtyytyväisyyttä. Kukaan ei ole vain hammaspyörä koneessa.

kuka tahansa organisaation mistä tahansa voi ehdottaa ideaa uuteen ominaisuuteen

Olin erittäin vaikuttunut kuullessani, että kuka tahansa organisaation mistä tahansa voi ehdottaa uutta ominaisuutta ja sitten työskennellä sen kanssa, jos heille annetaan suuntaviivat. Joskus tämä saattaa jopa kehittyä omaksi erilliseksi sovellukseksi! Facebook on paljon enemmän yhteistyöhanke kuin muutaman ihmisen (tai yhden henkilön) ylhäältä alas toteutettu visio, jota usein kuvataan.

Tämän ansiosta Facebook voi toteuttaa erittäin nopean kehityssyklin, joka mahdollistaa uuden mobiilipäivityksen joka viikko ja tuhansien sitoutumisten (ehdotetut koodimuutokset) välillä. Jos mielestäsi tämä on vaikuttavaa, verkkoversio (jonka taustaohjelma palvelee myös mobiilisovellusta) päivittyy joka toinen tai kolme tuntia!

Facebook tukee yleensä hyvin uusia ideoita ja aloittavia yrityksiä. Sillä on jopa LDN LAB -aloite, joka on omistettu tukemaan uusia ideoita ja yrityksiä.

Tasapainon löytäminen

Otettu Talin omista dioista

Tietenkin on aina oltava raja, kun on kysymys siitä, mitä yritys pystyy käsittelemään. Tällä suurella koodilla on aina parantamisen varaa, mutta on oltava aika, jolloin versiota pidetään "tarpeeksi hyvänä".

Sieltä tulee ”kultainen kolmio”. Tämän kolmion kolme pistettä edustavat ominaisuuksia, laatua ja aikaa. Jokaisella yrityksellä on valinnanvaraa täällä: pitävätkö kriittisen ajankohdan asettamista etusijalle uudet ominaisuudet kuluttamalla hieman kauemmin? Annetaanko pienen olemassa olevan virheen liukua verkon läpi, jos se tarkoittaa, että voit lisätä muita ominaisuuksia? Kun et voi tehdä kaikkea, joudut priorisoimaan.

Facebookissa prioriteetit ovat laatu ja aika. Jos päivitys on menossa varatun ikkunan takana, ominaisuus todennäköisesti työnnetään takaisin; sijaan, että nurkkaa leikataan tai päivitys viivästyy.

Versioiden hallinta ja muutosten jungaaminen

Näiden päivitysten ja koodimuutosten käsittelemiseksi Facebook käyttää omaa muutettua versiotaan Mercurialista. Se on sen sijaan erittäin laajalti käytetystä Gitistä, joka ei ilmeisesti ollut mittakaavassa niin hyvin yrityksen tarkoituksiin. Phabricator on GitHubin vastine, ja se käyttää paljon laajennuksia työn sujuvuuden virtaviivaistamiseen ja joskus vain asioiden tekemiseen hiukan hauskempaan (Facebook pitää ilmeisesti memeistään).

Muille kuin ohjelmoijille, Mercurial, kuten Git, on versionhallintajärjestelmä. Sen avulla suuri joukko ihmisiä voi työskennellä yhden ohjelmiston parissa ja tehdä muutoksia ja korjauksia vaarantamatta pääsovellusversiota, nimeltään ”master haara”. Nämä työkalut auttavat estämään koodiristiriitoja ja mahdollistavat kokeilun. Vasta kun tarkistus on hyväksytty perusteellisesti testihaarassa, se sitoo päällikkölle.

Kuvittele, jos jokin huono ohjelmoija tekisi kirjoitusvirheen, joka rikkoi koko koodin ja siinä oli vain yksi versio! Se olisi huono päivä kaikille.

Mercurialin kaltaiset työkalut mahdollistavat scrum-lähestymistavan toteuttamisen suhteellisen helposti, antaen jokaiselle työskennellä tiettyjen ominaisuuksien ja virheiden parissa samanaikaisesti, ennen kuin ne yhdistetään yhteen suureen pottiin.

Kerran viikossa päästöehdokas leikataan päälliköltä ja tämä käy läpi testausvaiheen. Kooderit, jotka ovat viettäneet koko viikon korjaamalla virheitä tai uusia ominaisuuksia, ovat tässä vaiheessa ylittämässä sormensa toivoen, että heidän työnsä tekee siitä uuden päivityksen.

Jokaisen joukkueen jäsenten tekemän viime hetken korjauksen tai muutoksen on oltava "kirsikka poimittu", jotta vastuuhenkilöt voivat sisällyttää sen uuteen haaraan. Raportoidusti heidän on tiedetty käyttävän lahjuksia suklaan ja alkoholin muodossa päätöksentekijöille lahjoitettuna.

Kääntämiseen Facebook käyttää toista työkalua nimeltään Buck. Tämä yksittäinen rakennustyökalu voi rakentaa mitä tahansa sovelluksen pakkaamiseksi. Eri alustoille kohdistamisessa ei tarvita erillisiä vaihtoehtoja, kuten Gradle tai Ant.

Vikojen löytäminen ajoissa

Kun jokainen työskentelee eri asioiden parissa ja niin paljon päivityksiä tapahtuu säännöllisesti, on erittäin tärkeää, että yritykset varmistavat, että heidän ohjelmistonsa toimii ja että niissä ei ole vakavia virheitä. Suurimmaksi osaksi Facebookilla on melko hyvä aikataulu asioiden pitämisessä.

Tätä varten ryhmä jakaa ohjelmistotestauksen tasoille, joita kutsutaan C1, C2 ja C3.

C1 on sisäinen testaus ja kaikki työntekijät käyttävät tätä versiota. C2: n aikana versio käy läpi 2 prosenttia suuresta yleisöstä, ja C3 on tuotantoa. Jos jotain todella vakavaa löydetään, jokainen työntekijä voi käyttää hätäpysäytyspainiketta tuotannon pysäyttämiseksi.

Vapaaehtoiset, jotka esittivät itsensä eteenpäin asteittaisten tasojen ylläpitämiseksi, käyvät nimellä "puuhalajat" (koska oksat), ja tekevät tämän normaalien töidensä lisäksi.

Mobiililaitteessa samanlaisia ​​tasoja kutsutaan alfa-, beeta- ja prod-tasoiksi. Alfa tarkoittaa sisäistä testiä, jonka kaikki työntekijät suorittavat. Prosessia, jossa kaikki yritykset käyttävät omia tuotteitaan tällä tavalla, kutsutaan ”koiranruokaa” - ”oman koiranruoan syömisestä”.

Testaajilla on myös käytössään joitain ainutlaatuisia ja mielenkiintoisia työkaluja virheiden ilmoittamiseksi nopeasti. Yksi niistä on "Rageshake", jossa laitteen turhauttaminen vain turhautuneena antaa virheraportin, kuten Google Mapsissa.

Testaajilla on myös käytössään joitain ainutlaatuisia ja mielenkiintoisia työkaluja virheiden ilmoittamiseksi nopeasti

Alfa-aikana - joka viittaa tehokkaasti mihin tahansa sisäiseen testaukseen - Facebook käyttää myös automaattista testausta sovelluksen suorittamiseen. Esimerkiksi yksi äskettäin hankittu ohjelmistokappale, nimeltään “Sapienz”, toimii pääasiassa napsauttamalla jokaista painiketta ja käyttämällä kaikkia ominaisuuksia satunnaisessa hyökkäyksessä, kunnes se laukaisee kaatumisen. Sitten se kirjaa pinon jäljen, kirjaa toiminnan ja raportoi takaisin.

Beeta-sovellus (yleisön testaama versio) käy läpi pienen osan (~ 2 prosenttia) yleisöstä. Tämä pieni katkelma saa päivityksen etukäteen, antaen Facebookille reaalimaailman palautetta. Jos kaikki näyttää hyvältä, päivitys menee koko väestölle ja prosessi alkaa uudestaan.

Tehokkaat työkalut automaatioon ja voimankkerointiin

Pitääksesi koko prosessia mahdollisimman nopeana ja sujuvana, Facebook käyttää suurta määrää erilaisia ​​työkaluja. Olemme jo nähneet, kuinka yritys käyttää Phabricatoria ja Sapienzia, mutta sillä on muita työkaluja ja laajennuksia muihin vaiheisiin.

Picknic-niminen työkalu kokoaa kaikki vetämispyynnöt (työntekijöiden tekemät muutokset) yhteen paikkaan nopeaa ja helppoa tarkistamista varten.

Kun testaus tuo esiin virheen, Nagbot-niminen botti ilmoittaa asiasta vastuussa oleville ja antaa heille varoen työn saamisen. Alkuperäisen AI: n käyttäminen tämän prosessin hoitamiseen ei vain takaa työn saatua päätökseen, vaan antaa myös managerille mahdollisuuden välttää olevansa “pahaa kaveria” jatkuvasti nagging!

kun testaus aiheuttaa virheen jonkun korjaamiseksi, Nagbot-niminen botti ilmoittaa asiasta vastuussa oleville ja suosittelee heitä saamaan työn tehtyä

Crashbot on toinen robotti, joka vastaa virheiden ilmoittamisesta niiden tapahtuessa, ja se on parempi kuin Google Consolen tiedot, koska se raportoi reaaliajassa. Crashbot ilmoittaa ongelman, kun ongelmat ylittävät ”hyväksyttävän kaatumisrajan”. Tämä voi johtua virheestä kärsivien ihmisten lukumäärästä tai montako kertaa, että yksi käyttäjä on kohdannut saman virheen. Joko niin, Facebookilla on myös tieto, joka näyttää surullisten käyttäjien määrän.

Sisäiseen viestintään Facebook käyttää jotain nimeltään Workplace. Tämä on käytännössä yrityksille tarkoitettu Facebook-versio, joka tarjoaa hyödyllisen tavan saada tietoa ryhmän jäsenistä ja kommunikoida nopeasti hajauttavan toimiston toisella puolella olevien kanssa. Facebook myy tätä ohjelmistoa myös kolmansille osapuolille.

Tietysti Facebook ei aio tuhlata aikaa lataamalla sovellustensa uudet versiot Play Kauppaan, App Storeen, Amazoniin ja kaikkeen muuhun. Sille on myös sovellus, jota kutsutaan Mobile Push Train -sovellukseksi.

Lopettavat ajatukset

Facebook-sovelluksen pitäminen ajan tasalla on valtava tehtävä, ja yrityksen on edelleen vakuutettava käyttäjät asentamaan kyseiset päivitykset. Tämä on erityisen vaikeaa maissa, joissa yhteyksiä ei taata. Kanadassa vain yksi prosentti käyttäjistä käyttää edelleen yli vuoden vanhaa Facebook-versiota. Etiopiassa tämä luku on lähempänä 50 prosenttia!

Facebook-tiimi työskentelee selvästi erittäin kovasti ja käyttää paljon työkaluja ja prosesseja pitämään kaiken mahdollisimman virtaviivaisena. Päivän lopussa kehitysryhmä pyrkii noudattamaan viittä hallitsevaa periaatetta:

  • Pidä isäntä puhtaana.
  • Sinulla on yksi tiimi, jolla on kokemusta julkaisujen suunnittelusta.
  • Vapauta usein ajoissa.
  • Koiranruokatuotteet.
  • Ole ystävällinen käyttäjien kanssa.

Se kuulostaa yksinkertaiselta, mutta kuten näette, siihen liittyy paljon kehruulautasia. Jopa kaikkien prosessissa käytettyjen työkalujen ylläpito on sinänsä projekti!

Facebook puolestaan ​​ylläpitää ystävällistä ja kevyttä ilmapiiriä Lontoon toimistossa. Joukkue vaihtaa GIF-tiedostoja ja meemiä liitännäisten välityksellä, he nimeävät huoneet perustuen asioihin, joita britit vihaavat ja Shakespearen punoihin, ja he ovat ylpeitä työstään. Facebookissa he työskentelevät kovasti ja pelaavat kovasti, ja näyttää siltä, ​​että suurin osa järjestelmä toimii.

Seuraavan kerran, kun uusi päivitys julkaistaan ​​yhdelle suuremmalle sovelluksellesi, varaa ajatus kaikelle työlle ja organisaatiolle, joka sen saamiseen tarvitsi.

Google Pixel 4 on viimeiin Android-puhelinperhe, joka ottaa käyttöön 3D-kavot lukituken avaamieki. e on yki turvalliimmita biometriitä todennumenetelmitä. Valitettavati BBC hu...

Oikean hetken kaappaaminen voi olla uuri haate, vaikka ominaiuudet, kuten arjakuvautila, helpottavat aioita. Googlella on myö vaihtoehtoinen lähetymitapa, koka uuden Pixel 4 -arjan avulla vo...

Suosittelemme Sinua Lukemaan