8 utfordringer for CTO-er i 2023
Den akselererende digitale transformasjonsprosessen fører til at stillingen som Chief Technology Officer (CTO), det vil si den som håndterer teknologispørsmål i et selskap, blir stadig viktigere. CTO-er...
For hvert produkt står vi overfor mange kompromisser og utfordringer som avgjør virksomhetens fremtid. Det er imidlertid teknologien, eller rettere sagt valget av teknologi, som er det viktigste dilemmaet, fordi det påvirker alle aspekter i fremtiden. I denne artikkelen vil jeg presentere de dilemmaene som er forbundet med å ta en slik beslutning.
Med hver produktI dag står vi overfor mange kompromisser og utfordringer som avgjør virksomhetens fremtid. Det er imidlertid teknologien, eller rettere sagt valg av teknologiDet er det viktigste dilemmaet, fordi det påvirker alle aspekter av fremtiden. I denne artikkelen vil jeg presentere de gåtene som er forbundet med å ta en slik beslutning.
Å velge riktig teknologi for produktutvikling er en kritisk komponent som kan ha en betydelig innvirkning på prosjekt suksess. I dette innlegget vil vi gå gjennom de viktigste variablene du må ta hensyn til når du skal velge teknologi for produktutvikling behov. Her er fem regler for velge riktig teknologi for produktutvikling:
1. Definere prosjektkrav
Det er avgjørende å ha en omfattende forståelse av prosjektets behov før du begynner prosessen med å velge teknologi. Dette innebærer blant annet å skissere problemet du prøver å løse, målgruppen, ønskede funksjoner og eventuelle teknologiske behov. En veldefinert liste over krav kan hjelpe deg med å evaluere ulike teknologier opp mot kravene i prosjektet.
Etter hvert som produktet ditt utvikler seg, trenger du teknologi som kan holde tritt med det økende antallet brukere, data og funksjoner. Undersøk hvor enkelt det er å skalere teknologien, og om det finnes tilgjengelige skaleringsressurser. Ved å bruke skalerbar teknologi sikrer du at produktet ditt vil være i stand til å håndtere fremtidig vekst.
3. Fleksibilitet og tilpasningsevne
Produktkravene kan variere over tid, og derfor er det viktig å velge en teknologi som kan tilpasse seg disse endringene. Se etter teknologier som gjør det enkelt å legge til nye funksjoner eller endre eksisterende, slik at produktet ditt forblir relevant og oppdatert.
4. Utviklerens ekspertise
Ekspertisen og erfaringen til din team med ulike teknologier er avgjørende for at prosjektet skal bli vellykket. Bruk av kjent teknologi kan øke produktiviteten og samtidig redusere læringskurven. Hvis en ny teknologi passer bedre for prosjektet ditt, må du sørge for at de ansatte får riktig opplæring og støtte.
5. Sikkerhet
Med den økende betydningen av datasikkerhet og personvern er det avgjørende å vurdere sikkerhetsaspektene ved hver enkelt teknologi. Forsikre deg om at den valgte teknologien oppfyller produktets sikkerhetskrav og er i samsvar med gjeldende regler og bransjestandarder.
I mitt arbeid som programmerer har jeg jobbet med mange produkter og mange CTO-erJeg har fått med meg de viktigste aspektene ved arbeidet og problemene det innebærer, samt vanskelighetene knyttet til prosjekter og teknologi, og her er noen av dem:
Produktet ditt må være svært tilgjengelig og ikke skape problemer med implementering og drift. Hver teknologi er bygget for å fungere godt i det rette miljøet, og det er derfor beslutningen er så viktig. Et ganske risikabelt valg ville være C ++ satt inn i en høytilgjengelig webapplikasjon i en verden der vi har Elixir og GoLang, de kan føre deg til å lage robuste og skalerbare applikasjoner. På den annen side, hvis vi bygger IOT tjenester og vi har lite ressurser, kan avgjørelsen bli en annen. Ruby kan også være svaret på hvert av de ovennevnte spørsmålene, alt avhenger av kompromisser og hva du bryr deg om når du vedlikeholder applikasjonen eller nettstedet.
Hvert år skapes det mange teknologier, og noen av dem er revolusjonerende på det tidspunktet de skapes. Spørsmålet er om dette er det rette tidspunktet for å ta dem i bruk. En teknologis modenhet er ikke bare tilgjengeligheten av spesialister, men i bunn og grunn hva samfunnet gjør i form av dokumentasjon, biblioteker, kurs og artikler.
Vi kan ikke sammenligne antall nye repositorier på GitHub for JavaScript med dem for Ruby, ettersom JavaScript har mange store nye rammeverk og biblioteker, og hvert av dem krever utvikling og byggepakker. I Ruby har vi ett ledende rammeverk og et økosystem knyttet til det, og derfor er mange autentiseringsbiblioteker eller API-kunder allerede etablert og vedlikeholdt, og problemene med dem er også velkjente. Derfor kan vi ikke bli overrasket over at transaksjonssystemet i vår bank er basert på Java og ikke JavaScript og ExpressJS, og at en oppstartsbedrift du kjenner til har problemer med å temme applikasjonsarkitekturen fordi ingen har løst problemet deres med den nye teknologien de valgte.
Men det er fortsatt en trend her, for alle har hørt om Perl eller Cobol, dette er eldgamle veletablerte teknologier, men de er dessverre ikke moteriktige nok til å oppmuntre utviklere til å jobbe med dem. En trend er en viktig faktor når det gjelder å tiltrekke seg talenter, spesielt siden jo høyere aldersgruppe, desto færre programmerere.
Når vi håndterer et IT-prosjekt, skal vi ikke programmere, men vi må forstå nøyaktig hva som skjer. Det er verdt å gå til LinkedIn først og sjekke hvor mange spesialister det finnes i ditt land; dette vil fortelle oss hvor stort miljøet vi har med å gjøre er. Det er også verdt å gå til Clutch og sjekke hvordan programvarehus marked ser ut som. Du må være forberedt på plutselig vekst og rask fylling av ledige stillinger. Overfloden av potensielle kandidater er selvfølgelig ikke ensbetydende med kvalitet, men det gjør det lettere å skaffe talenter og nå ut til ulike spesialister med tilbudet ditt.
Du må også anta at ansatte i selskapet er utskiftbare; i perioden etter covid er det spesielt viktig fordi karantenen var i stand til å blokkere mange selskaper. En slik tilnærming lar deg også unngå krisen med utstrømning av spesialister og utvide teknisk dokumentasjon.
Kombinasjonen av punktene ovenfor genererer driftskostnadene, så hvor mye det faktisk vil koste å vedlikeholde applikasjonen og utviklingsteam. Vi velger alle et team som oppfyller våre behov, men du må huske på hele bakenden av applikasjonen, eller eventuelt velge en IaaS- og SaaS-løsning for tjenester som er kritiske for driften av produktet.
Hver tjenesteadministrasjon på egen vert er en ekstra kostnad for deg og en byrde som fjerner deg fra målet. I den innledende fasen av produktutviklingen kan selv en velkjent løsning, som Netlify eller Heroku, samle hele miljøet i én pipeline, og du slipper å kaste bort teamets tid på å skape alt fra bunnen av.
I det lange løp kan det være billigere å ha en ferdig infrastruktur enn å finne opp hjulet på nytt. Driftskostnadene, teamets ytelse i forhold til den gitte funksjonaliteten, teknologiens modenhet og omfanget av tilgjengelige medarbeidere på markedet er av stor betydning.