I forbindelse med mitt GameLib-prosjekt brukte vi klassifisering av utviklere fra Microsoft. Fant igjen denne artikkelen om forskjellige utvilkler-grupper, og bestemte meg for å oversette og legge ut denne teksten. Merk at denne sammenligningen bare sammenligner hvordan utviklergruppene tenker rundt bruken av tredjeparts biblioteker. For en mer humoristisk generell sammenligning, se også her.
Systematisk utviklere (Systematic programmers) har en tendens til å følge en defensiv koding stil. De gjør ikke antagelser om koden de skriver, plattformen den kjører på, klasse-bibliotekene som de bruker osv. For eksempel vil de ikke anta at et klasse-biblioteket vil oppføre seg som annonsert. I stedet vil systematiske utviklere teste biblioteket i et trygt miljø, inspisere bibliotekets kildekode etc før de bruker den i et produksjonsmiljø. Systematiske utviklere ønsker programmeringsspråk og APIer som gir dem full kontroll over eksekveringen av koden sin, og som ikke skjuler viktige detaljer fra dem, selv om det betyr at de må skrive mer kode og bruke mer tid på å forstå hvordan koden virker. De verdsetter å kunne komme under overflaten og finpusse komponenter eller erstatte dem.
Pragmatiske utviklere (Pragmatic programmers) har en tendens til å være mindre defensiv enn systematiske utviklere. I mange tilfeller er de mer komfortable med å gri fra seg kontrollen over koden for bedre produktivitet så lenge de er klar over fordelene de vinner. I stedet for å bruke tid på å oppnå en full forståelse av alle detaljer rundt et API, vil de foretrekker å lære underveis, å bygge opp forståelse for APIet samtidig med det arbeidet de gjør. De verdsetter å kunne komme under overflaten og finpusse komponenter når de må, men vil helst ikke måtte gjøre det.
Opportunistiske utviklere (Opportunistic programmers) verdsetter produktivitets-funksjoner i et språk, API eller IDE svært høyt, ofte høyere enn noe annet. I motsetning til systematiske utviklere, setter de mindre verdi i å ha full kontroll over koden deres, siden for opportunistiske utviklere kontrollen over koden mindre verdt enn utviklings-tid. De særlig verdsetter 3. parts komponenter og APIer som tillater dem å konsentrere seg om virksomhetens problemet som de prøver å løse, snarere enn på konfigurering av komponenter eller tilpasser API slik at det oppfyller deres krav. De ser ingen verdi i å kunne komme under overflate og tilpasse komponenter - de ville heller lete etter et annet API eller komponent som møter deres behov fremfor å endre komponenter eller APIer som de allerede har.
Hvilken type utvikler er du?
|