Vähän jokainen ohjelmistokehittäjä tai ohjelmoija on törmännyt jonkun toisen kirjoittamaan koodiin, joka todistaa kliseen ”kuka tahansa osaa koodata”. Mutta oletko koskaan törmännyt oletettavasti myyttiseen ”10x-kehittäjään”? 10x-kehittäjänä oleminen ei liity niinkään siihen, että on erinomainen koodin kirjoittamisessa, vaan enemmänkin siihen, että tietää tarkalleen, mitä koodia kirjoittaa.
Monet meistä aloittivat ohjelmoinnin tiettyä tarkoitusta varten. Esimerkiksi minä aloin kirjoittaa koodia tekstipohjaisten MUD-pelien automaattista pelaamista varten, kun nukuin ja olin koulussa. Olin skriptilapsi 13-vuotiaana enkä edes tiennyt sitä. Pystyin keksimään idean, kirjoittamaan koodin ja testaamaan sen – ihan itse.
Ohjelmistokehitys on vaikeaa silloin, kun teemme sitä jonkun toisen puolesta, koska meiltä puuttuu usein samantyyppinen motivaatio ja innostus, joka ajaa meitä, kun tavoittelemme omaa visiotamme. Emme keksi ideoita, vietämme tuntikausia palavereissa yrittäen ymmärtää niitä, ja sitten käytämme suurimman osan ajasta jonkun toisen koodin muokkaamiseen – tai ainakin siihen osallistumiseen. Tämä voi johtaa eristäytyneisyyteen, joka vähentää tuottavuutta.
Ollakseen 10x-kehittäjä on opittava loistamaan tässä ympäristössä tai jopa perustettava oma yritys, joka johtaa kehitystä.
Kuka tahansa voi olla 10x-kehittäjä, ainakin osan päivästä, joka päivä. Uskon, että on kolme asiaa, joihin kaikkien kehittäjien tulisi keskittyä, jotta heistä tulisi tuottavampia ja parempia tiimin jäseniä.
Kolme asiaa
Ollaksesi 10x-kehittäjä tarvitset useiden vuosien kokemuksen työskentelystä käyttämästäsi ohjelmointikielestä ja -työkalupaketista riippumatta. Sinun on oltava hyvä ratkaisemaan ongelmia ja kirjoittamaan koodia; tämä on itsestäänselvyys.
On tärkeää ymmärtää, että se, miten kirjoitat koodia, ei tee sinusta 10x-kehittäjää, 10x-insinööriä, 10x-ohjelmoijaa tai miksi ikinä haluatkin sitä kutsua.
Tiedät 5 W:tä: ”Kuka, mitä, missä, miksi, milloin”. Vaikka nämä kaikki pätevät ohjelmistokehitykseen, haluan keskittyä kolmeen ominaisuuteen, jotka määrittelevät 10x-kehittäjän.Nämä kolme asiaa erottavat keskivertokehittäjän 10x-kehittäjästä:
- Mitä
- Miksi
- Missä
- Milloin
Tietää mitä
Yritysmaailmassa kehittäjät työskentelevät yleensä projekteissa, joita he eivät juurikaan intohimoisesti harrasta ja joita he eivät ymmärrä. Useimmille kehittäjille tämä ei ole suuri ongelma, kunhan he saavat erittäin hyvät ohjeet ja odotukset on määritelty selkeästi.
Ongelma on, että kehittäjille ei yleensä anneta riittäviä ohjeita. Sen sijaan käytämme tätä asiaa nimeltä ”ketterä kehitys”. Saamme Post-it-lapun, jossa on muutama sana, ja meidän odotetaan tietävän tarkalleen, mitä pitää tehdä.
Ohjelmistokehityksessä on kyse viestinnästä. Kehittäjien on tiedettävä, mitä työstämme, mitä ongelmia yritämme ratkaista ja miltä lopputuloksen on tarkalleen ottaen näytettävä. Mitä enemmän tiedämme etukäteen, sitä nopeammin voimme edetä. Tärkeintä on, että tiedämme työn tarkoituksen ja sen, mikä tekee työstä onnistuneen, on ratkaisevan tärkeää onnistumisen kannalta.
Pahat kehittäjät menevät tuntikausia väärään suuntaan projektissa kysymättä yhtään kysymystä. Kutsun heitä -10x-kehittäjiksi, koska he eivät saa mitään aikaan ja tuhlaavat kaikkien työtovereidensa aikaa. Lähes jokainen on törmännyt joihinkin tällaisiin kehittäjiin, ja voi olla turhauttavaa työskennellä heidän rinnallaan. Ja sinun on oltava varovainen, ettet omaksu heidän tapojaan!
Jotkut kehittäjät työskentelevät hyvin myös ilman paljon yksityiskohtia. He käyttävät paljon luovuutta ja kysyvät oikeita kysymyksiä. Nämä yksisarviset ovat todennäköisesti 10x kehittäjiä. He osaavat selvittää asioita ja nostavat usein koko ympärillään työskentelevän tiimin tasoa.
Lopputulos on se, että 10x-kehittäjät ovat todella hyviä päättelemään nopeasti, mitä pitää saada aikaan ja mitä kysymyksiä kannattaa kysyä.
Miksien ymmärtäminen
Periaatteessa ohjelmistokehityksen ehkäpä suurin este on ymmärtää miksi. Jos et ymmärrä ongelmaa, jota yrität ratkaista, sitä on todella vaikea ratkaista.
Miksi hakkasin terminaaliskriptejä yhteen pelatakseni MUD-peliäni, kun nukuin ja olin koulussa? Halusin tietysti saavuttaa pelin korkeimman tason. Tiesin tarkalleen, miksi, ja tein kaikkeni saadakseni sen toteutumaan.
Sama lähestymistapa pätee mihin tahansa ohjelmistokehitysprojektiin. Kehittäjät, jotka ymmärtävät toimialan vertikaalin, jossa he ovat, ja ongelmat, joita he yrittävät ratkaista, ovat paljon tuottavampia. Tieto siitä, miksi ja vertikaalin ymmärtäminen auttaa myös välttämään turhaa työtä ja vapauttaa aikaa keskittyä asioihin, jotka tekevät tuotteesta tai ominaisuudesta arvokkaamman käyttäjille.
Ongelma on, että tieto siitä, miksi, ei riitä. On oltava intohimo ongelmaan ja ymmärrettävä se sisältä ja ulkoa, jotta voi olla todella 10x-kehittäjä. Uskon, että useimmat 10x-kehittäjät ovat pohjimmiltaan myös tuoteihmisiä, joilla on hyvä tuotevisio.
Tietää milloin tehdä mitä
Ajoitus on tärkeää ohjelmistokehitysprojekteissa. Sen valitseminen, missä järjestyksessä takapäiväkirjan kohteita työstetään, on näennäisen helppo tehtävä, joka on todella kriittinen. Työskenteletkö jonkin sellaisen asian parissa, joka voi auttaa yritystäsi saamaan uuden asiakkaan vai menetkö siivoamaan vanhoja teknisiä velkoja?
Kehitystiimeissä meidän on jatkuvasti jongleerattava sen kanssa, mitä työstämme ja milloin työstämme sitä.
Kaikki ohjelmistokehityksen työkohteet jakautuvat näihin kolmeen kategoriaan:
- Tekemistä, jota meidän on tehtävä
- Tekemistä, jota meidän on tehtävä
- Tekemistä, jota haluamme tehdä
Meidän on saatava tämä uusi ominaisuus valmiiksi asiakasta varten. Meidän on korjattava ohjelmistomme virheet. Haluamme työskennellä teknisen velan tai jonkin hienon uuden tuoteominaisuuden parissa. Se on aina tasapainoilua.
Meidän pitäisi tehdä työkohteita kaikista kolmesta näistä kauhoista samanaikaisesti. Emme voi käyttää kaikkea aikaamme tekniseen velkaan, mutta ehkä meidän pitäisi käyttää pieni prosenttiosuus ajastamme siihen.
Kehittäjien on myös tiedettävä, milloin rakentaa monimutkaisia arkkitehtuureja koodiinsa. Pidän koodin mieluummin mahdollisimman yksinkertaisena, kunnes minun on pakko lisätä arkkitehtuuria, jota ilman en muuten voi elää.
Kehittäjien on myös tiedettävä, milloin välttää kiiltävien kohteiden jahtaamista. Heillä on tapana haluta leikkiä uusilla työkaluilla ja teknologioilla, mutta nämä ratkaisut saattavat vain hidastaa projektia sen sijaan, että ne auttaisivat saamaan sen nopeammin valmiiksi.
10x-kehittäjät ovat hyviä jongleeraamaan prioriteettien kanssa ja ymmärtävät, milloin on investoitava aikaa arkkitehtuureihin sen sijaan, että he heittelisivät spagettikoodia saadakseen jonkin asian toimimaan. Muista, että käyttäjät eivät välitä siitä, miten ohjelmasi toimii tai miten hieno arkkitehtuuri on. He haluavat vain, että se toimii. 10x-kehittäjät ymmärtävät tämän.
Mitä, miksi & Milloin tulla 10x-kehittäjäksi
Puhutaan nyt siitä, miten voit hallita tärkeät Mitä, Miksi ja Milloin -taidot tullaksesi 10x-kehittäjäksi.
Aloita Miksi
Ensimmäisenä askeleena tullaksesi 10x-kehittäjäksi on intohimoinen suhtautuminen ohjelmistoon ja ongelmiin, joita yrität ratkaista. Sinun on ymmärrettävä ongelma sisältä ja ulkoa. Se alkaa siitä, että olet innostunut yrityksestä, jossa työskentelet, ja sen missiosta yrityksenä.
Älä tee nappia tekemään jotain vain siksi, että joku on sanonut niin. Pyri ymmärtämään miksi korkeammalla tasolla. Olet paljon arvokkaampi tiimillesi ja yrityksellesi, jos pysyt keskittyneenä siihen, miksi.
Ole hyvä kehittäjä & Erinomainen ongelmanratkaisija, ei paras ohjelmoija
Kuvailisin itseäni pikemminkin hakkeri-kehittäjäksi. Olen sitä tyyppiä, joka osaa heittää rumaa koodia kasaan ratkaistakseen lähes minkä tahansa ongelman hyvin nopeasti. Koodini on harvoin kaunista, mutta se toimii. Ja se on tärkeintä.
Et tarvitse kirjoittaa täydellisesti arkkitehtuuriltaan täydellistä koodia yksikkötesteineen ollaksesi 10x-kehittäjä. Sinun on tiedettävä, milloin ja milloin ei tehdä noita asioita ollaksesi 10x-kehittäjä.
10x-kehittäjä on hyvä ratkaisemaan tiettyjä ongelmia ja tyydyttämään liiketoiminnan tarpeet koodilla. Fiksuinta, mitä voit tehdä, on tietää, kuinka pitkälle projektia kannattaa viedä, ennen kuin luovutat sen jollekin toiselle, joka voi olla parempi viimeistelemään joitakin arkkitehtuurin ja muita pieniä yksityiskohtia.
Milloin se on sisimmässäsi, tai sitten ei
Tietäminen siitä, milloin kannattaa rakentaa monimutkainen arkkitehtuuri ja milloin ei hakkeroida jotakin kasaan, tulee kokemuksen ja hämähäkkiaistiesi kehittymisen myötä. Joko sinulla on tuo vaisto tai sitten ei.
Jotkut fiksuimmista kehittäjistä, joiden kanssa olen koskaan työskennellyt, ovat olleet huonoimpia priorisoimaan malleja ja arkkitehtuureja toiminnallisuuden ja aikataulujen sijaan. He halusivat ylisuunnitella ja kirjoittaa asioita uudestaan ja uudestaan, pyrkien ”täydelliseen koodiin” ”toimituskelpoisen koodin” sijaan.”
10x-kehittäjien on käytettävä kokemustaan ja vaistoaan tietääkseen, milloin keskittyä arkkitehtuuriin ja täydellisyyteen ja milloin ei niinkään siihen, että saadaan jotain tehtyä.”
Tiedä, mitä tehdä ja mitä kysyä
Suuri osa ohjelmistokehityksestä on kiinni kommunikaatiotaidoista. Valitettavasti monet työkohteita varten saamistamme muistiinpanoista ja vaatimuksista eivät ole kovin yksityiskohtaisia. 10x-kehittäjä osaa lukea niitä, soveltaa liiketoiminnasta tietämäänsä ”miksi” ja kysyä asiaankuuluvia kysymyksiä.
Parhaat kehittäjät tietävät, kuinka paljon aikaa he käyttävät johonkin asiaan, ennen kuin he pyytävät apua. He tietävät myös, mitä kysymyksiä on kysyttävä, jotta saadaan selville, mitä on tehtävä, jotta projektia voidaan viedä eteenpäin.
Johtopäätös
Olen kirjoittanut koodia yli 15 vuotta. Sanoisin olevani 10x kehittäjä, tai ainakin voin olla. Tiedän mitä olen hyvä siinä. Kun teen niitä asioita, joissa olen hyvä, saan vakavan määrän työtä tehtyä nopeasti.
Jos haluatte prototyypin uudesta tuotteesta, olen miehenne. Jos tarvitset apua Angularin, Reactin tai muun front-end-kehityksen kanssa, en todellakaan ole kaverisi. Olisin -10x-kehittäjä noissa tehtävissä.
10x-kehittäjät eivät ole myytti. Niitä on olemassa. He ovat todennäköisesti dev managereita, arkkitehtejä, johtavia kehittäjiä tai yrityksen perustajia. Jos he eivät ole, heidän luultavasti pitäisi olla. Päädyin yrityksen perustajaksi, nyt jo kahdesti.
Ei kukaan myöskään tule olemaan 10x-kehittäjä joka päivä, koko päivän. Meillä ei ole energiaa tai keskittymistä työskennellä sillä tahdilla joka päivä. Emme ole robotteja.
Jos ymmärrät ohjelmistokehityksen ”mitä, miksi ja milloin”, voit olla tuottavampi ja parempi tiimin jäsen – ehkä jopa 10x-kehittäjä muutaman tunnin päivässä. Ja sillä voi olla suuri merkitys.
Kun olet täällä ja mietit, miten voit kehittyä, tutustu dynaamiseen koodianalyysityökaluun, Stackify Prefixiin. Se on ilmainen ja auttaa sinua kirjoittamaan parempaa koodia.