Java >> Java tutorial >  >> Tag >> import

Tre grunde til, at menneskelige færdigheder er vigtige for softwareudviklere

Det er let at tænke på, at det kun kræver tekniske færdigheder at være en god softwareudvikler. Når alt kommer til alt, bruger softwareudviklere størstedelen af ​​deres tid på at designe software og skrive kode. Det er klart, at tekniske færdigheder er vigtige.

Men hvis du vil skrive software til at leve, skal du kunne arbejde sammen med andre mennesker. Dette inkluderer dine teammedlemmer, andre kolleger og dine kunder. For at gøre tingene mere interessante har alle disse mennesker forskellige forventninger til dig.

Da jeg begyndte at studere softwareingeniør, var jeg ikke klar over dette. Jeg gætter på, at dette er en noget almindelig fejl, men problemet er, at det alvorligt kan skade dit omdømme (og din karriere). Da jeg fik mit første programmeringsjob, indså jeg, at menneskelige færdigheder er afgørende nyttige for enhver softwareudvikler.

Så hvad er menneskelige færdigheder? En definition af begrebet menneskelige færdigheder siger, at

Menneskelige færdigheder er evnen til at arbejde effektivt med andre mennesker både individuelt og i gruppe for at nå bestemte mål.

Lad os finde ud af, hvorfor det er vigtigt at have gode menneskelige færdigheder.

1. Menneskelige færdigheder hjælper dig med at forstå din kunde

Kunden og softwareudviklerne lever i forskellige verdener. De har dog et fælles mål. De ønsker begge at løse kundens problem.

Problemet er, at mange af kundens problemer ikke nødvendigvis er synlige for softwareudviklere. For eksempel kan kunden blive presset af sine chefer og andre interessenter. Dette kan have en effekt på hans kommunikation.

Softwareudviklere forstår ikke nødvendigvis dette. I stedet klager de over kunden ved at sige noget som dette:

Vores kunde klager over vores langsomme fremgang. Han forstår ikke, at vi arbejder så hårdt, som vi kan. Det tager bare lidt tid at få tingene gjort.

Det er selvfølgelig muligt, at kunden er et urimeligt røvhul. Jeg tror dog, at det er mere sandsynligt, at kunden er under enorm stress, og det får ham til at handle på denne måde.

Hvis du forstår, at dine kunders handlinger er styret af årsager, som ikke er synlige (og ikke burde være) synlige for dig, kan du reagere på hans handlinger på en produktiv måde.

Faktum er, at at tøve med din kunde er nytteløst . Det hjælper dig ikke at forstå hans situation eller at undgå konflikt med ham. Faktisk vil denne form for adfærd ofte øge spændingen mellem dig og din kunde.

Dette er en opskrift på en katastrofe.

2. Menneskelige færdigheder hjælper dig med at udtrykke dine ideer

Når du arbejder i et team, skal du forstå to ting:

  1. Alle har en "skjult" dagsorden, som styrer deres handlinger.
  2. De ting, der motiverer dig, motiverer ikke nødvendigvis dine teammedlemmer.

Hvad dette betyder er, at for at sprede dine ideer, skal du først finde ud af, hvordan dine teammedlemmer tænker, og hvad der motiverer dem.

Hvorfor? Fordi

  1. Hvis du finder ud af, hvad der styrer dine teammedlemmers handlinger, kan du udtrykke din idé på en måde, som giver mening for dine teammedlemmer.
  2. Hvis du forstår, hvad der motiverer dine teammedlemmer, kan du udtrykke din idé på en måde, så den føles fascinerende og motiverende.

Hver gang jeg hører nogen beklage sig over, at deres teammedlemmer ikke er interesserede i at prøve nye ting, får jeg en fornemmelse af, at denne person udtrykker sine ideer på en forkert måde. Det er en trist ting, for hvis han ville have gjort sit hjemmearbejde, er oddsene, at i det mindste nogle af hans ideer ville blive brugt lige nu.

3. Menneskelige færdigheder hjælper dig med at skabe bedre API'er

Da jeg begyndte at skrive software til at leve, lavede softwareudviklere meget sjov med brugergrænsefladedesignere. Vi plejede at tro, at de kun eksisterede på grund af én grund:at plage softwareudviklere med deres latterlige ideer. Jeg tog (selvfølgelig) fejl .

I dag tror jeg, at brugeroplevelsesdesign er en af ​​de vigtigste ting i et softwareprojekt. Vi skriver jo software, som mennesker kan bruge. Det giver mening at sikre, at vores software giver en god brugeroplevelse.

Så hvad har det at gøre med API'er?

Meget faktisk. API-udvikling betragtes ofte som en teknisk opgave. Selvom implementeringen af ​​API'en er en teknisk opgave, er API-design det ikke. At forstå en brugers behov er ikke nok, fordi det er muligt at implementere en ubrugelig API, som opfylder dens krav. Brugeroplevelsesdesign er således en væsentlig del af API-udvikling!

Hvordan hænger dette sammen med menneskelige færdigheder?

Wikipedia definerer begrebet brugeroplevelse som følger:

Brugeroplevelse (UX) involverer en persons adfærd, holdninger og følelser omkring brugen af ​​et bestemt produkt, system eller service. Brugeroplevelse omfatter de praktiske, oplevelsesmæssige, affektive, meningsfulde og værdifulde aspekter af menneske-computer-interaktion og produktejerskab. Derudover inkluderer det en persons opfattelse af systemaspekter såsom nytte, brugervenlighed og effektivitet. Brugeroplevelse kan betragtes som subjektiv i den grad, det handler om individuel opfattelse og tanke med hensyn til systemet. Brugeroplevelsen er dynamisk, da den konstant ændres over tid på grund af skiftende brugsforhold og ændringer af individuelle systemer samt den bredere brugskontekst, som de kan findes i.

Med andre ord, hvis du vil oprette en API, som giver en fantastisk brugeroplevelse, skal du

1) Implementer en API, som giver alle nødvendige funktioner.
2) Forstå, hvordan udviklere vil bruge din API.

At have gode menneskelige færdigheder vil hjælpe dig med at nå det andet mål.

Du behøver ikke at være ekspert (men det hjælper)

Softwareudvikling er ikke en aktivitet, der udføres isoleret. Det er teamwork, hvor softwareudviklere skal interagere med kunder, teammedlemmer og kolleger. Du behøver ikke at være udadvendt for at være en god softwareudvikler, men du skal kunne forstå andre mennesker og kommunikere med dem .

Du behøver heller ikke at være ekspert i menneskelig adfærd, men jo mere du ved om det, jo mere vil du drage fordel af det.


No
Java tag