Gute Programmierer versus schlechte Programmierer
Laut Aussagen vieler, kann ein guter Programmierer etwa 10 bis 20 mal schneller und besser arbeiten, als das ein schlechter Programmierer tut.
Es gibt auch viele andere Gründe warum man auf gute Entwickler setzen sollte, als auf schlechte oder mittelmässige.
In diesem Beitrag beschreiben wir, was einen guten Softwareersteller ausmacht, und was einen weniger guten.
Guter Programmierer
Er/ Sie weiss wo das Meiste der Arbeit entsteht
Ein guter Softwareentwickler weiss, das der Grossteil der Arbeit einer Software mit der Wartung/ Erweiterung entsteht und die Programmierung selbst nur ein eher kleiner Teil des ganzen Aufwandes ausmacht.
Hierin liegt auch ein Dilemma. Viele Auftraggeber, welche in den meisten Fällen wenig Wissen über Software haben, wollen eine günstige Entwicklung haben. Hierdurch entsteht auch ein Druck auf die Entwickler und die Anbieter-Agenturen/Firmen, die Preise und den Aufwand zu senken. Gleichzeitig passiert jedoch folgendes bei diesem Vorgehen: Der Software-Code wird teilweise so schlecht geschrieben sein, dass es fast unmöglich wird, die Software zu verbessern, weiterzuentwickeln (z.B. neue Features) oder zu warten (z.B Upgrades). Im schlimmsten Fall muss man das ganze System neu programmieren (Was eigentlich eher sehr gut ist für das Projekt, braucht halt nur viel, eigentlich unnötigen, Aufwand).
Er (in diesem Artikel wird die männliche Form genutzt, soll aber auch die weibliche Form repräsentieren) weiss also, dass 80 Prozent oder gar mehr Arbeit auf die Wartung und Weiterentwicklung entfallen, und der initiale Code nur der Anfang ist.
Er gehört zu den Wenigen der sauberen Code schreibt
Ungleich zu anderen Berufen, ist der des Software-Entwicklers keiner, in welchem man eine Ausbildung erhält. Es gibt zwar Studiengänge in der IT, das Programmieren wird dort meistens jedoch nicht wirklich beigebracht. Die meisten in diesem Bereich sind Quereinsteiger oder haben sich das meiste selbst beigebracht.
Durch die geringe Standardisierung in diesem Feld ist der Fokus der meisten Entwickler, Code zu schreiben der funktioniert. Dieser Code ist meistens jedoch nicht sauber geschrieben. Auch dies führt dann wiederum zum Wartungsproblem.
Der Top Entwickler eignet sich das Wissen selbstständig an, wie man sauberen Code schreibt. Nach Schätzungen vieler guter Entwickler, liegt der Anteil derer die unsauberen Code schreiben, bei mehr als 80 Prozent. Dies erklärt jedoch gleichzeitig auch, warum soviele Software-Projekte scheitern.
Bilden sich ständig weiter
Technologie ändert sich heutzutage rasant. Programmier-Sprachen und Entwicklungsmethoden, welche vor wenigen Jahren, gar Monaten, relevant waren, können heute schon obsolet sein. Daher bildet sich ein guter Mann/ Frau sich ständig weiter.
Das besondere in der Software-Entwicklung ist auch, dass es meistens wenig Zeit gibt für Weiterbildungsthemen, da es einen enormen Fertigstellungsdruck in Projekten gibt. Gute Leute finden trotzdem Zeit Seminare zu besuchen, Bücher zu verschiedenen Themen zu lesen und weitere Massnahmen zu treffen, um Up-To-Date zu bleiben.
Interessiert sich für das grosse Ganze
Der gute Entwickler weiss, dass wenn er dafür verantwortlich ist, ein Modul zu schreiben, nicht nur die Programmierung dieses Moduls entscheidend ist. Er schaut sich die komplette Architektur des Projektes an und findet dann eine Lösung, welche zu dieser Architektur passt.
Gleichzeitig interessiert er sich auch für die Aussagen des Auftraggebers/ Kunden und ist nicht fixiert für die Programmierabschnitte, für welche er verantwortlich ist und welche ihm vom Projektleiter gegeben wurden. Er wird also nicht eine Funktionalität bauen, sondern etwas erschaffen was einen Mehrwert für den Kunden bedeutet.
Lehnt unmögliche Anforderungen ab und beschreibt den richtigen Weg und passende Ansätze
Viele Kunden haben Anforderungen, welche ihnen selbst kein Gutes tun werden. Viele wollen 50 Prozent oder gar mehr am Entwicklungs-Aufwand sparen. Die Software soll einfach nur „funktionieren“. Das Besondere in der IT ist: Man kann es sogar schaffen, mit einem sehr geringen Aufwand, die Lösung zum „funktionieren“ zu bringen. Möchte der Kunde jedoch ein weiteres Feature implementiert haben, dann wird dies fast unmöglich, da der Code so un-performant und „in Spaghetti-Form“ programmiert ist, dass es keinen Sinn mehr macht den Code weiterzuverwenden.
Daher wird der Top Entwickler den Kunden darauf hinweisen, dass dies nicht der passende Weg ist und beschreibt, wie man eine zukunftsfähige Lösung erhält.
Hierzu muss gesagt werden, dass sich viele, besonders schlechte Entwickler, dazu entscheiden, solche „Aufklärungen“ nicht vorzunehmen. Denn niemand, besonders Auftraggeber, möchte gerne „belehrt“ werden. Somit könnte man den Auftrag auch verlieren. Daher gibt es viele die einfach „Ja“ zu dem Projekt sagen und die Sache herunterprogrammieren. Gleichzeitig wird sich dieser Programmierer auch denken „Wenn das Projekt fertig ist, werde ICH sicher nicht mehr daran arbeiten“, denn er weiss, dass eine Erweiterung nur mit erheblichen Aufwand möglich sein wird.
Der gute Programmierer lehnt also solche Anforderungen oder gar das ganze Projekt ab, falls es nicht zu den vom Auftraggeber (sei es interne oder externe Auftraggeber) genannten Konditionen umsetzbar ist.
Ein Drang sich immer weiter zu verbessern
Heutzutage ist die Software-Entwicklungs-Disziplin ein weites Feld. Neue Entwicklungs-Ansätze entstehen fast täglich. Der gute Softwareentwickler versucht sich daher immer weiter zu verbessern. Er lernt die neuesten Ansätze. Er beschäftigt sich mit Dingen wie Test-Driven-Development, Code Reviews, Pair programming, etc., etc.
Und nun zu unseren Pappenheimern, den schlechten Programmierern
Um einen Überblick zu geben, woran man schlechte Entwickler erkennen kann, haben wir die weiteren Punkte beschrieben:
Sieht die Arbeit als Schreiben von Code-Zeilen an
Für mittelmässige Softwarentwickler geht es darum „Code-Zeilen“ zu schreiben. Sie interessieren sich meistens nicht für das Grosse und Ganze. Im Gegensatz dazu, sieht der TOP Entwickler sich eher als Künstler der ein Meisterwerk erschafft.
Der mittelmässige Entwickler sieht meistens nur die Herausforderung, welche sich unmittelbar im Weg befindet und interessiert sich nicht für die langfristigen Herausforderungen des Kunden.
Findet keine Zeit sich weiterzubilden
Es gibt viele Gründe, besonders für Softwareentwickler, sich nicht weiterzubilden. Meistens wird der Chef sagen „Macht es wie Eure Kollegen, bildet Euch nach der Arbeitszeit weiter“. Das wird nicht jedem gefallen und der mittelmässige Coder wird daraufhin lieber ganz auf Weiterbildung verzichten, als sich in der Freizeit weiterzubilden.
Scheut sich vor neuen Technologien
Mittelmässige Entwickler haben eine Tendenz sich auf dem bisher gelernten zu fokussieren. Neue Trends und Technologien werden bewusst oder unbewusst ignoriert, denn das würde ja einen enormen Aufwand an Lern-Arbeit erzeugen, welcher kurzfristig von niemandem honoriert wird.
Gleichzeitig wird der Top Coder jedes Jahr die neuesten technischen Artikel zu den neuesten Themen lesen und versuchen die neuesten Bücher im Technologieumfeld durchzuarbeiten.
Erwartet eine genaue Beschreibung der Funktionalitäten
Der mittelmässige Coder wird immer die Anforderung des Kunden oder des Auftraggebers bemängeln. Er erwartet eine genaueste Beschreibung mit welcher er seine Arbeiten beginnen kann. Er wird sich nicht die Mühe machen, passende Ideen in das Projekt zu bringen, welche den Erfolg sicherstellen könnten.
Zudem wird er, falls er etwas falsch entwickelt, nicht auf sich selbst zeigen, sondern die fehlerhafte Beschreibung des Kunden verantwortlich machen.
Fazit
Viele Unternehmen, wie zum Beispiel Google, haben erkannt, das es wenig Sinn macht schlechte Coder einzustellen. Sie wissen, dass ein guter Mann/ Frau mehr als das zehn bis zwanzigfache an Arbeit eines mittelmässigen Software-Coders erstellen kann. Gleichzeitig verdient ein guter Entwickler jedoch nicht das zwanzigfache eines mittelmässigen Programmierers. In der heutigen Zeit sind die Gehälter für beide eher ähnlich.
Daher macht es mehr als Sinn sich auf die Auswahl der richtigen Mitarbeiter zu konzentrieren als mittelmässige Entwickler zu beschäftigen, welche im Endeffekt mehr Schaden als Nutzen bringen werden.
Welche Erfahrungen haben Sie/ Ihr mit diesen beiden Gruppen gemacht?
Interessante Links zum Thema:
Mehr Informationen zu Clean Code
5 Tugenden von Top Codern
Bilder: Flickr.com/ Official GDC/ Kovah/ Campaign Monitor
Der Autor: Sascha Thattil arbeitet bei YUHIRO und hilft Unternehmern und Unternehmen beim einfachen Aufbau von Programmier-Teams in Indien. YUHIRO ist ein deutsch-indisches Unternehmen welches IT Firmen, Agenturen und IT Abteilungen Softwareentwickler bereitstellt und Softwareprojekte abwickelt.
Schreibe einen Kommentar