Forum: Ausbildung, Studium & Beruf Kollege macht alles falsch


von Tom (Gast)


Lesenswert?

Hallo
Haben einen neuen Kollegen bekommen. Er ist ca ein halbes Jahr da und 
programmiert jetzt ein Tool in Java. Jetzt habe ich mir mal seinen Code 
angesehen, da ich ihn nun unterstützen soll. Leider muss ich 
feststellen, dass er von objektorientierter Programmierung keine Ahnung 
hat. Er leitet einfach wild alles voneinander ab hat keine Struktur in 
seinem Programm. Das Programm ist dadurch sehr schwer erweiterbar. Wie 
soll ich reagieren? Eigentlich müsste es neu aufgesetzt werden... Soll 
ich mit ihm oder mit dem Chef sprechen. Oder sollte ich nichts sagen?

von Konzeptlos (Gast)


Lesenswert?

Frag ihn nach dem Konzept was dahinter steht.

von Ingenieur (Gast)


Lesenswert?

Mein heißer Tipp: Intensives Pair Programming mit TDD, da lernt ihr dann 
beide was bei.

von Berater (Gast)


Lesenswert?

Wenn Du keine offenen Worte verwendest, machst Du alles schlimmer.

Du bestätigst quasi die Arbeitsweise deines Kollegen mit einer 
stillschweigenden Zustimmung. Es sammelt sich dann immer mehr 
unbrauchbarer Sourcecode an, den Du in schlimmsten Fall alleine am Hals 
haben wirst und darin wie in einem Sumpf versinken wirst.

Jetzt hast Du die Möglichkeit, den Sumpf schon beim Entstehen trocken zu 
legen. Wenn Du Zeit verstreichen lässt, wird für Dich immer 
ungemütlicher werden.

Die Entscheidung liegt aber ausschließlich bei Dir und ich muss zugeben, 
es gibt nur schlechte Lösungen, aus der aussuchen kannst.
Von daher solltest Du die für Dich am wenigsten Schlechte aussuchen.

von Sebastian S. (amateur)


Lesenswert?

Ein offenes Wort unter Kollegen verbunden mit ein paar Fragen und 
vielleicht bis am Ende ja Du sogar schlauer.

von Mike J. (linuxmint_user)


Lesenswert?

Tom schrieb:
> Wie soll ich reagieren?

Sag es ihm einfach dass andere die das Programm um Funktionalitäten 
erweitern wollen Probleme haben werden und er dann wohl auch Probleme 
bekommt.

Ich habe aber auch mal mit Java ein Programm geschrieben welches ich 
absichtlich so gestaltet habe dass dort keine unzähligen Objekte erzeugt 
werden und auch der Zugriff auf die Daten schneller erfolgt ist.

Es gab jetzt die Möglichkeit das Programm aufgrund der beschränkten 
Rechenleistung des Systems unlaufbar, aber schön objektorientiert zu 
gestalten oder es so hinzubiegen dass es läuft.

Es kommt immer drauf an, vielleicht ist das ja auch mit dem Chef 
abgesprochen, wenn du jetzt rumnörgelst und das Ars*hloch spielst wird 
dein neuer Arbeitskollege sich immer daran erinnern und es wird die 
nächsten 20 Jahre auf das Betriebsklima schlagen.

Ich würde mich immer nett ran tasten, damit das Problem gelöst wird, 
aber möglichst niemand sauer aufeinander ist.

von nemesis... (Gast)


Lesenswert?

Tom schrieb:
> Er ist ca ein halbes Jahr da

Ich ahne Schlimmes.

> da ich ihn nun unterstützen soll.

Wirklich unterstützen oder die Leistung beurteilen?
Kann auch sein das dein Chef dich da etwas missbraucht, weil er
das Ende der Probezeit kommen sieht und dann entscheiden muss,
ob Hold or Fire.

> Leider muss ich
> feststellen, dass er von objektorientierter Programmierung keine Ahnung
> hat. Er leitet einfach wild alles voneinander ab hat keine Struktur in
> seinem Programm.

Na, einem Newbie wird das nicht gerade leicht gemacht. Kennt
vielleicht Java nicht so gut und mit den Kenntnissen einer
anderen Programmiersprache oder nur rudimentären Programmier-
kenntnisse wird der Code halt nicht so professionell.
Welches Niveau tatsächlich im Haus üblich ist, hat ihm vermutlich
auch noch keiner gezeigt. Mir ging es da mal vergleichbar.
Man kann nur das verlangen, was man an Vorgaben macht und die
scheinen bei euch noch nicht kommuniziert worden zu sein.
Jetzt hast du den schwarzen Peter und musst dich entscheiden:
Helfen oder Opfern. Die Frage ist nur was du jetzt machen
willst? Wenn du nie Hilfe benötigst, dann kann es durchaus mal
passieren das eine Fehlentscheidung sich mal für dich umkehrt.
Manche nennen das ganz lapidar Schicksal.

> Das Programm ist dadurch sehr schwer erweiterbar. Wie
> soll ich reagieren? Eigentlich müsste es neu aufgesetzt
> werden... Soll ich mit ihm oder mit dem Chef sprechen.
> Oder sollte ich nichts sagen?

Wieviel Zeit hast du denn dafür? Würde die Zeit reichen, die
kommunikativen Defizite auszugleichen? Bedenke, dass dein
Schützling sich argumentativ auch beim Chef wehren kann.
Da kann das ganze im Worst-Case für dich zum Bummerang werden.

von Tom2 (Gast)


Lesenswert?

Ist der Kollege lernwillig und kritikfähig? Inkompetent sein ist OK, nur 
inkompetent bleiben ist ein Problem. Hat das bisher keiner gemerkt? 
"Hallo, frischer Informatik-Bachelor, hier ist dein PC. Programmier mal 
das X-Tool  und geh keinem auf die Nerven, hier hat keiner Zeit für 
dich."

Ich würde jubeln, wenn jemand mit mehr Erfahrung auf meinem 
Arbeitsgebiet meinen Code läse und halbwegs konstruktiv zerpflückte und 
mich in eine bessere Richtung leitete; das ist in meinem derzeitigen 
Umfeld leider nicht üblich. Andere wären beleidigt.

von MaWin (Gast)


Lesenswert?

Tom schrieb:
> Hallo
> Haben einen neuen Kollegen bekommen. Er ist ca ein halbes Jahr da und
> programmiert jetzt ein Tool in Java. Jetzt habe ich mir mal seinen Code
> angesehen, da ich ihn nun unterstützen soll. Leider muss ich
> feststellen, dass er von objektorientierter Programmierung keine Ahnung
> hat. Er leitet einfach wild alles voneinander ab hat keine Struktur in
> seinem Programm. Das Programm ist dadurch sehr schwer erweiterbar. Wie
> soll ich reagieren? Eigentlich müsste es neu aufgesetzt werden... Soll
> ich mit ihm oder mit dem Chef sprechen. Oder sollte ich nichts sagen?

Zunächstmal ist das alles SEIN Problem.

ER muss ein funktionierendes Programm erschaffen und ggf. später 
Erweiterungen oder Änderungen darin vornehmen.

DEINE Vorstellung eines sauberen Programmierstils muss nicht unbedingt 
die einzige gültige Wahrheit sein, vielleicht kommt er ja mit seinem 
Stil besser klar und hält deinen Stil für unübersichtlich.

Vielleicht ist sein Programm sogar schneller und kompakter als es deine 
Lösung wäre.

Dann bist DU derjenige der lernen sollte.

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

Tom schrieb:
> Soll
> ich mit ihm oder mit dem Chef sprechen. Oder sollte ich nichts sagen?

Das musst du selber beurteilen. Bist du fachlich weisungsbefugt oder 
nicht? Sogar wenn, ist er zum Beispiel ein Kuki, Miki oder Liki kannst 
du dir böse die Finger verbrennen. Usw.

Besteht die Gefahr, dass du später selber seinen Müll wegräumen musst, 
könnte es sich lohnen den Chef unauffällig und nebenbei auf das Problem 
hinzuweisen.

Grundsätzlich rennst du gegen die Organisationsprobleme deines 
Arbeitgebers bei der Softwareentwicklung an. Bei euch dürfen einsame 
Helden offensichtlich mehr oder weniger unbeaufsichtigt über einige Zeit 
ohne Qualitätskontrolle vor sich hin tippen.

Nur ganz kurz was zu OOP. Das unterliegt Moden. Wenn der Informatiker 
sich langweilt zieht er sich eine neue Regeln aus dem Arsch und treibt 
sie als neue Sau durchs Dorf. Aktuell wir Vererbung verdammt. Daher wäre 
ich mit einer Aussage wie der macht alles falsch sehr sehr vorsichtig.

von Blue (Gast)


Lesenswert?

Frage(n),
Was ist das für ein Kollege und wieviel Berufserfahrung hat er?
Für welche Position bzw für was ist er ein eingestellt worden?
Wieviel Einarbeitungszeit gab es?
Habt Ihr nicht so eone Art "Mentoring-Programm" für Neulinge?
Warum hat man Ihn 6 Monate rumwuseln lassen ohne etwas zu sagen, gab es 
keine Meetings oder sonstige Kommunikation?

Wenn man einen Neuling so ins kalte Wasser wirft wie du das geschildert 
hast, sollte man sich nicht wundern wenn soetwas passiert.

Blue

von Dr. A. Fissur (Gast)


Lesenswert?

Tom schrieb:
> Soll
> ich mit ihm oder mit dem Chef sprechen.

Klar, solche Leute müssen noch in der Probezeit raus.

von N. N. (clancy688)


Lesenswert?

Dr. A. Fissur schrieb:
> Klar, solche Leute müssen noch in der Probezeit raus.

Der Zug ist abgefahren, da er ja ein halbes Jahr da ist, laut TO. ;)

Ich frag mich hier sowieso: Warum wird ein neuer Mitarbeiter gleich mal 
direkt zum Einzelkämpfer befördert und warum schaut erst nach sechs 
Monaten jemand auf seine Arbeit? Das klingt für mich so als ob die Firma 
keine Struktur hat, nicht der MA.

von nemesis... (Gast)


Lesenswert?

Leute, gebt euch keine Mühe, die Story ist sehr wahrscheinlich
wieder Erstunken und Erlogen. Ich glaube mich dunkel zu erinnern,
dass der selbe Sachverhalt schon mal vor längerer Zeit gepostet wurde.
Der TO meldet sich auf die Antworten gar nicht mehr und Heiner postet
da so eine Nachricht, dass man davon ausgehen kann, das er uns
hier wieder vorgeführt hat und der TO ist. :(

von D. I. (Gast)


Lesenswert?

Wenn die einzige Anforderung lautet "Schreib ein Tool was XY tut" und er 
schreibt ein Tool was XY tut ist die Aufgabe gelöst. Wenn bestimmte 
messbare Kriterien eingehalten werden sollen habt ihr sie ihm sicher 
mitgeteilt und die Einhaltung kontrolliert, ... und nein 
"Erweiterbarkeit" ist kein messbares Kriterium
Ansonsten habt ihr ihm doch sicher einen erfahrenen Softwarearchitekten 
zur Seite gestellt, der sich das prinzipielle Konzept ausgedacht hat, 
oder? Ach nein, natürlich nicht. Tja wenn ihr von professioneller 
Softwareentwicklung keine Ahnung habt und ihm keine vernünftigen 
Aufgaben stellt und es nicht überwacht wird, dann trifft den Kollegen 
keine Schuld.

von nemesis... (Gast)


Lesenswert?

D. I. schrieb:
> dann trifft den Kollegen
> keine Schuld.

Nur, wer richtet darüber? Der alte Arbeitgeber, sofern es mal so kommt,
wird gegenüber dem neuen Arbeitgeber(über Arbeitszeugnis und
Direktkontakt) kaum zugeben, dass die Firma gepatzt hat.
In manchen Firmen herrscht das reinste Neandertalertum.
Größe und Stärke ist kein Kriterium, wie in Firmen intern gearbeitet
wird. Hab es oft selbst erlebt.

von D. I. (Gast)


Lesenswert?

Wäre ich der angekackte Kollege würde ich darlegen wie die Sache 
aussieht und dann weitersehen.
Kommt ja auch drauf an was für ein Tool und so weiter, ... so 
write-once-never-touch-again sachen habe ich selbst schon genug 
entwickelt, aber die dienen/dienten einfach nur zur Steigerung des 
Arbeitskomforts und waren nicht produktrelevant.
Bei Sachen wo es um etwas geht sind meistens mehr als eine Person 
involviert und da gibt es entsprechend Monitoring und Anforderungen und 
mind. ein Architekten der das große Ganze im Auge behält.

von Jay (Gast)


Lesenswert?

D. I. schrieb:
> "Erweiterbarkeit" ist kein messbares Kriterium

Oh doch, das ist es schon seit mindestens 30 Jahren. Bzw. seit 
mindestens 30 Jahren weiß man wie.

Es machen nur sehr wenige, weil es nicht ganz einfach ist, Zeit und Geld 
kostet und eben nicht mit einem Klick auf ein Knöpfchen getan ist. D.h. 
man denken muss.


Ganz grob ist das Vorgehen zum Messen von Erweiterbarkeit:

* Erweiterbarkeit im jeweiligen Kontext definieren

Beispiel: Erweiterbarkeit = Kosten der Modifikation eines Systems durch 
hinzufügen von Teilen so das es Vorgaben erfüllt.

Je nach Kontext muss man dabei weiteren Gehirnschmalz reinstecken um 
Dinge wie Modifikation, Kosten, Vorgaben in greifbarer Form zu 
definieren.

* Sich ein oder mehrere Skalen definieren

Beispiel: Die Kosten in Mannmonaten um Programm A mit einer Erweiterung 
vom Typ X, der Größe Y mittels des Mechanismus Z zu versehen.

Beispiele für Parameter:
X: Menüpunkt im GUI
Y: 1
Z: verwendetes GUI-Framework

Wer kann wählt A, X, Y, Z prototypisch. Wer es nicht kann, und dass sind 
sogar meist die besseren Skalen, schneidet die PArameter auf das 
jeweilige System oder Teilsystem zu.

* Randbedingungen definieren

Beispiel: Programmierer der mit der Software (nicht) vertraut ist, das 
GUI-Framework (nicht) kennt, oder prototypischer Kunde, Student, usw.


So, und jetzt wird es ernst, jetzt muss man sich überlegen wann und wie 
man wirklich die Messung ausführt. Dabei ist das Nichtmessen durchaus 
ein mögliches Ergebnis der Überlegung. Zum Beispiel, weil es gerade 
andere Prioritäten gibt, weil man schon einmal gemessen hat und sich an 
der Stelle in der Software nichts geändert hat, usw.

Beim Messen kommt einem so neumodisches Zeug wie Scrum entgegen. 
Old-Scool wäre regelmäßig einen Programmierer auszugucken, der eine 
definierte prototypische Erweiterung vornimmt, am besten immer die 
gleiche (mit dem Problem des Lerneffekts). Hingegen, bei Scrum kann man 
zum Beispiel nach einem Sprint durch die abgearbeiteten Userstories 
gehen, alle an die man die Skala anlegen kann rausuchen und z.B. die 
jeweiligen Programmierer nach der benötigten Zeit fragen.

Fertig, Erweiterbarkeit gemessen.

Bleibt die Frage, taugt die Messung was? Fehlschüsse gibt es immer, du 
musst halt wissen, was du sehen möchtest. Wenn es dir im konkreten Fall 
nicht genau genug ist, dann darfst du mehr Geld in die Messung stecken. 
Aber denk daran, der Abstand zwischen Sonnensystemen wird auch nicht auf 
den Meter genau vermessen.


So, jetzt bin ich mal gespannt, ob die erfahrenen Ingenieure diese 
Methode  des Software-Engineerings erkennen oder ob es nur großes 
Geschrei von irgendwelchen Kindern gibt.

von Dipl-Inf (Gast)


Lesenswert?

Unter "Kollege macht alles falsch" hätte ich mir jetzt aber schon mehr 
erwartet als dass er OPs Meinung nach nicht programmieren kann...

von kaeseschnitzel (Gast)


Lesenswert?

Kommt halt immer auf das Niveau an.

Ich dachte auch, ich könnte halbwegs gut Embedded C. Neuen Job 
angetreten - oh Schreck, als direkten Vorgesetzten (und 
Merge-Verantwortlichen) einen relativ aktiven Kernel-Modul 
Verantwortlichen.

Sternchen eines Pointers klebt nicht am Variablennamen? Reject. Scope 
eine Variable zu groß? Reject.

Selten so eine steile Lernkurve gehabt. Aber die Peitsche tut mir gut.

von kaeseschnitzel (Gast)


Lesenswert?

Man muss aber dazu sagen, das die Kritkschleife bei max. einer Woche 
liegt.

von D. I. (Gast)


Lesenswert?

Jay schrieb:
> Ganz grob ist das Vorgehen zum Messen von Erweiterbarkeit:
>
> * Erweiterbarkeit im jeweiligen Kontext definieren

Du gehst stillschweigend davon aus, dass schon bekannt sei was mal 
erweitert werden soll. Häufig genug ist das aber nicht unbedingt 
vorhersehbar.

Jedenfalls, wer sich im Pflichtenheft eine Anforderung "Das Tool, 
System, etc. soll einfach erweiterbar sein." an die Backe nähen lässt, 
... nun ja.

von D. I. (Gast)


Lesenswert?

kaeseschnitzel schrieb:
> Kommt halt immer auf das Niveau an.
>
> Ich dachte auch, ich könnte halbwegs gut Embedded C. Neuen Job
> angetreten - oh Schreck, als direkten Vorgesetzten (und
> Merge-Verantwortlichen) einen relativ aktiven Kernel-Modul
> Verantwortlichen.

Das muss nichts heißen.

>
> Sternchen eines Pointers klebt nicht am Variablennamen? Reject. Scope
> eine Variable zu groß? Reject.

Er pocht auf die Einhaltung von Coding Guidelines und achtet scheinbar 
auf grundlegende Prinzipien, das ist vernünftig und im Wesentlichen 
wahrscheinlich auch sein Job. So sollte es sein, wenn es aber keinen mit 
entsprechender Expertise im Team oder der Firma gibt, kommt halt Murks 
raus.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.