The art of buzzwording

Bei der Erstellung eines Lebenslaufs kommt immer wieder die Frage auf: „Welche Skills nennst du?“ Aus meiner Sicht gibt es dabei aktuell zwei Varianten. Ich führe nur Dinge auf, die ich sehr sicher beherrsche oder ich führe alle Dinge auf, mit denen ich schon einmal in Berührung gekommen bin. Für beide Varianten gibt es gute Gründe. Während es einige gibt, die es wichtig finden das dritte Loggingframework im CV zu finden, wundern sich andere das jedes wichtige Trendthema seinen Weg in den CV gefunden hat.

Ich für meinen Teil versuche nur Sprachen/Frameworks/Methoden aufzunehmen, die ich beherrsche oder aktiv genutzt habe. Doch am liebsten würde ich gerade den Teil der konkreten Frameworks komplett entfernen und schreiben „Ich kann Software entwickeln“!

Wichtigkeit von Skills

Trotzdem ist es wichtig das ein potentieller Kunde weiß welche Skills er kann. Ich glaube es ist sehr wichtig zu sehen welchen Anspruch und welche Ausgangslage er bei einem Softwareentwickler hat. Als Beispiel würde ich bei mir React nennen. Es ist gut und wichtig, das mein Gegenüber weiß, dass ich noch nie React entwickelt habe. Aus meiner Sicht sollte dies nur kein Ausschlusskriterium sein. Ich würde es mir zu trauen und durch die Erfahrungen mit Angular/Vue.js sollte dieses relativ einfach sein. Ähnlich sieht es bei der Thematik „Kubernetes“ aus. Hier werden aber für Softwareentwickler neue Paradigmen gelernt. Sofern man dies nicht im CV hat, wirkt dies komisch. Gleichzeitig sagt dieses kleine Buzzword nichts über die Reife des Wissens aus. Ob ich mich irgendwie durch die Konsole hangeln kann oder blind komplexe Deployments erstellen kann, weiß man dann immer noch nicht. Hier sind auch die Auftraggeber/Arbeitgeber gefragt. Erwarte ich einen Spezialisten oder erwarte ich jemanden, der alles kann.

T-Shaped

Genau diese Spezialisten werden auch gebraucht und nach meiner Ansicht gibt es auch die Entwickler, die genau dieses anbieten. Das Reactbeispiel, welches ich genannt habe, wäre für diese meist ein „nogo“. Aus meiner Sicht benötigen aber die meisten Firmen Menschen die Generalisten sind. Generalisten in der Software-Entwicklung sind vermutlich keine echten Generalisten, sondern beherrschen (hoffentlich) einen gewissen Teil der Software-Entwicklung sehr gut. Dieses Phänomen nennt man dann „T-Shaped“ sein.1 Man ist ein Experte in einigen Dingen, kann aber auch alle anderen Dinge die im Softwareprozess anfallen. Für mich persönlich sind dies „moderne Programmiersprachen“2.

Moderne Programmiersprachen nenne ich bewusst, auch wenn ich zu letzt die meiste Zeit in Java entwickelt habe. Hierzu möchte ich das Jahr 2015 erwähnen. In diesen habe ich meinen Arbeitgeber gewechselt. Dieser Wechsel bedeutete auch, dass ich von C# auf Java gewechselt bin. Dieser Wechsel bedeutete für mich hauptsächlich ein paar neue Variablen zu lernen (: vs. extends/implements) und ich musste mich daran gewöhnen Methoden nicht mehr in Pascal case zu schreiben. Auch wenn das folgende Beispiel sehr vereinfacht dargestellt ist, man erkennt eine Ähnlichkeit oder?

package dummy;

public class Program {
    public static void main(String[] args) {
    }
}
using System;

namespace Dummy
{
    public class Program
    {
        static void Main(string[] args)
        {
        }
    }
}

Messbarkeit

Nun sind wir uns einig, dass eine gewisses Wissen in der Breite gut ist. Was noch nicht geklärt ist, ist die Frage „Wann beherrsche ich ein Skill und darf es in meinen CV aufnehmen?“. Eine gute Idee scheinen da Tests zu sein! Damit möchte ich auf das Beitragsbild verweisen. In meiner vermeintlichen Kernkompetenz „Javaentwicklung“ bin ich laut eines Tests nur besser als 37% alles anderen. Nun ist dieser Test relativ populär und trotzdem bin ich der Meinung das dies meine Kernkompetenz ist. Dieser Test befragt sehr viele Details der Sprache, welches ein absoluter Spezialist vielleicht weiß, aber welches im Alltag aus meiner Sicht nicht notwendig sind. Auch das Erkennen von Compilerfehler in sehr schlimmen Code, mache in der Regel nicht ich sondern meine IDE. Womit wir zwei weitere wichtige Skills entdeckt haben: richtige Tools kennen/nutzen und Clean Code. Beides gehört zur Kernkompetenz „gute Softwareentwicklung“ aber beides gehört nicht zur Kompetent „ich kenne Java“. Damit ist die Messbarkeit schon sehr viel schwerer Erreichbar.

Softskills

Ein elementarer Teil der Clean Code Bewegung sind auch SoftSkills. Hier sind im Alltag auch viele weitere Skills wichtig. Teamwork, Getting things done Mentalität, Kommunikation, Anforderungsanalysen etc. sind alles Skills die ein Softwareentwickler täglich benötigt, aber welche noch viel schwerer gemessen werden können oder auch nur sehr schwer in Frameworks gepresst werden können. Gerade beim Teamwork kann man sehr gute Ergebnisse sehen, wenn ein diverses Team die gleichen Ziele haben. Eine gute Bewegung ist hier die Software Craftmanship Bewegung. Dieser kann ich voll beipflichten. Der Berufsethos – Unser Berufsethos – Softwareenticklung ist eine eine sehr tolle Profession und dieser sollten wir folgen. Das Ziel muss es sein gute Software zu erstellen. Hierzu muss jeder das Beste tun was er kann, um das Ziel zu erreichen. Dazu gehört dann auch jeden Tag besser zu werden und neue Tools und Frameworks zu lernen!

Fazit

Das Problem des Buzzwordings ist nicht behoben und irgendwie lieben wir Softwareentwickler es ja auch in Buzzwords zu reden und uns diese als Orden anzuheften. Man darf diese Buzzwordliste nur nicht zu ernst nehmen und sollte stattdessen in einem persönlichen Gespräch erkunden, ob das Gegenüber meine Softwarelösung voran bringen kann oder auch erstellen kann. Eine Lösung für dieses Problem gibt es leider nicht. Mit diesem Blog wollen wir unsere Einstellung einmal transparent machen und laden Euch ein mit uns zu diskutieren.

1) https://medium.com/trust-empathy/embracing-t-shaped-skills-b1812f4da984

2) bewusst nicht Objektorientierte Programmiersprachen. Aus meiner Sicht sind gerade die funktionalen Einflüsse sehr wichtig. Dieser „mix“ macht für mich eine moderne Programmiersprache aus.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert