Massive Produktivitätsunterschiede bei Programmierern /Ersteindrücke aus meinem Studium
-
Jochen Kalmbach schrieb:
@Marc++us: Ich kann Deinem Posting nur zustimmen... (überlege mir schon lange ob ich mich selbstständig machen soll
)
Wieso? Bist nicht sozialverträglich?
-
Mein ihr nicht, dass es oft besser wäre, wenn einer sich eine Lösung ausdenkt. Wenn das ein Team macht, dann gibts viel bla bla, weil jeder Irgendwas einbringen will, aber das ganze wird irgendwie nicht so genau durchdacht, wie wenn man sich auf eine Lösung konzentriert..
-
seh ich anders
in teams laeuft das ja immer so das jeder teilaufgaben bekommt - also der macht diese funktion der die andere usw
wenn dann zwei oder mehr an einer funktion schreiben - ist dann ein "hauptaktuer" der faengt etwas an, dann werden meinungen ausgetauscht ob diese oder eine andere methode nicht doch effizienter ist - am ende kommt dann eine funktion raus wo wirklich von allen seiten betrachtet wurde das alles optimal ist
"viele koeche verderben den brei" ist bei der softwareentwicklung einfach nicht - der eine kommt evtl auf eine idee die man selber nicht gekommen waere - und dann benutzt man das bessere
am ende kommt das gleiche raus, aber aus teams kommen effizientere sicherere und optimalerer code
aber ist selten das mehere an einer funktion schreiben - das wird aufgeteilt und feddich - schon ist es ein team project wo aber jeder sein bereich fuer sich hat
-
Theorie schrieb:
Mein ihr nicht, dass es oft besser wäre, wenn einer sich eine Lösung ausdenkt. Wenn das ein Team macht, dann gibts viel bla bla,
Das kann man nicht pauschalieren. Ab einer gewissen Komplexität nimmt die Wahrscheinlichkeit zu, daß eine Einzelperson gewisse Tücken des Problems übersieht. Auch wird die Wahrscheinlichkeit, daß der eingeschlagene Weg grundfalsch ist, minimiert, da er bereits zu Beginn mehrfach geprüft und diskutiert wird.
Es ist allerdings auch richtig, daß Teams Zeit kosten, wenn zu viel über Implementierungsdetails diskutiert wird. Das ist eine Gratwanderung, bis zu einem gewissen Punkt der Planung sehe ich Teams (und die damit verbundenen Diskussionen) als schlagkräftiger an, aber danach nimmt dies auch wieder ab. In der Fehlersuche sind allerdings Zweierteams auch deutlich stärker als Einzelpersonen.
Wobei ich hier von ganz normalen Otto-Normalprogrammierern ausgehe, Genies schlagen die Teams fast immmer, aber woher soll man die nehmen? Die gibt's ja nicht im Regal.
-
Ich hab das so ein Kollege: Wenn Du mit dem anfängst ein Problem zu diskutieren, dann kannst Du den Rest des Tages vergessen und bist aber abends auch nicht schlauer...
-
Jochen Kalmbach schrieb:
(überlege mir schon lange ob ich mich selbstständig machen soll
)
mach' ne kostenpflichtige hotline auf, für leute mit winapi- und .NET -problemen.
-
What do you think makes some programmers 10 or 100 times more productive than others?
Steve Yegge:
I think if you pause to consider why not all atheletes are equally good, you’ll have your answer(s). Thomas Edison has a relevant quote about genius that might also provide you some clues.
Linus Torvalds:
I really have no idea. I think some people are just better able to concentrate on the things that matter, and I think a lot of it is just doing it. Most of the really good programmers I know started doing it fairly young.
David Heinemeier Hansson:
The ability to restate hard problems as easy ones.
Peter Norvig:
The ability to fit the whole problem into their heads at one time.
Dave Thomas:
They care about what they do.
Guido Van Rossum:
Genetic differet brain structure.
James Gosling:
They think about what they do. They don’t rush in and slap things together. They have a holistic picture of what is to be built.
Bjarne Stroustrup:
First a general lack of professionalism and adequate training. that sets the base level too low. Secondly, some people have a combination of „smarts” (ability to think clearly and get to the heart of things), experience, and knowledge of tools. Programming leaves more scope for that because it is a combination of theory and practice - neither of which is much use without domain knowledge.
Tim Bray:
The surprising variability of the human mind.
-
Es heisst auch offiziell, das es bei professionellen Programmierern Unterschiede bis Faktor 10 gibt und dem ist auch so.
Es kommt meiner Meinung nach auf zwei Dinge an:
1. Erfahrung
Wenn man nicht weiß wie, kann man auch keine Probleme lösen bzw nur mit fehleranfälligen und einfach schlechten Workarrounds.
Erfahrung durch Praxis und Theorie schafft da Abhilfe, brauchen tut man wohl Beides.2. Vorstellungsvermögen/Denkgeschwindigkeit/"Intelligenz"
Ich hab keine Ahnung wie andere Programmierer das machen(würde mich mal interessieren), aber wenn ich eine Methode schreibe denke ich da nicht über jede Zeile oder Schleife nach, genausowenig wie man beim Autofahren noch bewusst schaltet und lenkt wenn man n bissl länger fährt.Vielmehr habe ich halt mein Teilproblem, denke da drüber nach "was soll hier passieren" und im Kopf bildet sich der Quellcode quasi Selbst(natürlich Pseudocode, sonst ist man in ein paar Jahren ja arbeitslos
).
Wenn diese Passage wichtig ist, nochmal n paar Sekunden nachdenken ob es keine bessere Lösung gibt und dann setze ich den Quellcode nurnoch um, wo ich durchaus so 300 Anschläge/Minute mit kleinen Pausen nutzen kann und weiter gehts.
Bisher funktionierte das so erdachte Konzept von Tippfehlern abgesehen prinzipiell immer, auch wenn da leider mal später noch nicht bedachte Erweiterungen kommen und Tippfehler/mal ne Referenz statt einem Pointer und sowas vorkommen.Naja, sowas kann ein schlechter Programmierer sicher nicht, für ihn ist programmieren einfach Zeile für Zeile überlegen und reintippern und immer mal wieder verzweifeln.
Bessere Programmierer als ich machen das vielleicht dann noch anders oder können sich größere Programmabschnitte vorstellen, who knows.
-
Marc++us schrieb:
b) oftmals auch nicht so sozial-verträglich sind.
wobei die richtigen genies auch meist genug hirnkapazität haben, um auch sehr gut mit ihrem sozialen umfeld umzugehen.
-
Also nach meiner Erfahrung unterscheidet sich die Produktivität von Entwicklern in dem Wertebereich von [200,-200].
Ich kenne einige Entwickler, die wirklich ein Talent dazu hatten Entwicklungen in letzter Sekunde noch niederzubrennen!
Des Weiteren gilt:
- ein Entwickler ist nur so gut wie der Projektleiter/Teamführer es zuläßt.
- 100 LOC vernünftig getestet und dokumentiert sind besser als 100 KLOC ungetestet oder undokumentiert.
- ein Feature mit Kundenwert ist besser als 1000 ohne.
- ein Entwickler der ein bisschen für seine Kollegen mitdenkt und dafür weniger schafft, ist besser als ein Entwickler der sich nur sich nur um sich kümmert und dafür reinklotzt.
- ein Entwickler, der bereit ist für 20% Kapa etwas von seinen Kollegen zu lernen, ist bereits nach Wochen schneller als wenn er sich mit 100% nur um seinen Kramm kümmert.
- ein Entwickler mit guten IT Verständnis verabscheut stundenlange Meetings.
- ein Entwickler der wirklich produktiv ist, bringt sich immer und kontinuierlich in die Gesamtstrategie ein. Und ist deshalb nicht sozial-verträglich ...
-
- ein guter Entwickler hasst generell BWLer und hohles Wirtschaftsgelaber
-
anmerkung schrieb:
- ein guter Entwickler hasst generell BWLer und hohles Wirtschaftsgelaber
Hi, ich glaube, Du solltest mal häufiger in "Die Presse" gucken und da die "Karriere Lounge" lesen. Dann würdest Du auch typische Karrierefallen im IT-Umfeld kennen:
Die Presse - Karriere Lounge, 30. September 2006 schrieb:
Karrierefallen!
- Informatiker mit Scheuklappen. Wer mit Herz und Seele an seinen Programmiersprachen hängt und Verachtung für das Geschäft hegt, wird es schwer haben.
- ...
Ok, Du kannst natürlich auch mit stärkster BWLer-Verachtung ein toller Entwickler sein, aber es sollte Dir klar sein, dass das Deiner Karriere stark schaden wird. ...andererseits: Wenn "Code tippen" Dein Lebenstraum ist, dann ist es natürlich praktisch, wenn Du Dir weitere Karrieremöglichkeiten unmöglich machst!
-
Prof84 schrieb:
- ein Entwickler mit guten IT Verständnis verabscheut stundenlange Meetings.
ich liebe zwar meetings, aber keine stundenlangen.
übrigens fällt mir positiv auf, daß du in letzter zeit in diesem forum versuchst, auf buzzwording zu verzichten. ist es nicht ein schönes gefühl, ernst genommen zu werden?
Prof84 schrieb:
- ein Entwickler der wirklich produktiv ist, bringt sich immer und kontinuierlich in die Gesamtstrategie ein. Und ist deshalb nicht sozial-verträglich ...
naja, "in die Gesamtstrategie einbringen" war jetzt nicht nötig. könntest sagen, daß ein wirklich produktiver entwickler nicht von seinem rechner weggeht, denn da würde er programmierzeeit verlieren. sollten wir als produktiv nicht definieren, daß es das ist, was gut für den unternehmenszweck ist? da kann es durchaus sein, daß ein ahnunghaber seinen code weglegen sollte und für 20 schwächere mitdenken sollte. auch wird es immer so sein, daß der verzicht auf gelegentliche kurze gespräche das arbeitsklima verschlechtert, was die produktivität (der anderen) verschlechtert.
-
Prof84 schrieb:
Des Weiteren gilt:
- ein Entwickler ist nur so gut wie der Projektleiter/Teamführer es zuläßt.
- 100 LOC vernünftig getestet und dokumentiert sind besser als 100 KLOC ungetestet oder undokumentiert.
- ein Feature mit Kundenwert ist besser als 1000 ohne.
- ein Entwickler der ein bisschen für seine Kollegen mitdenkt und dafür weniger schafft, ist besser als ein Entwickler der sich nur sich nur um sich kümmert und dafür reinklotzt.
- ein Entwickler, der bereit ist für 20% Kapa etwas von seinen Kollegen zu lernen, ist bereits nach Wochen schneller als wenn er sich mit 100% nur um seinen Kramm kümmert.
- ein Entwickler mit guten IT Verständnis verabscheut stundenlange Meetings.
- ein Entwickler der wirklich produktiv ist, bringt sich immer und kontinuierlich in die Gesamtstrategie ein. Und ist deshalb nicht sozial-verträglich ...Dem stimme ich voll zu. Desweiteren muss ich volkard zustimmen: Du wirkst in letzter Zeit wesentlich sympatischer.
-
Marc++us schrieb:
Theorie schrieb:
Mein ihr nicht, dass es oft besser wäre, wenn einer sich eine Lösung ausdenkt. Wenn das ein Team macht, dann gibts viel bla bla,
Das kann man nicht pauschalieren. Ab einer gewissen Komplexität nimmt die Wahrscheinlichkeit zu, daß eine Einzelperson gewisse Tücken des Problems übersieht. Auch wird die Wahrscheinlichkeit, daß der eingeschlagene Weg grundfalsch ist, minimiert, da er bereits zu Beginn mehrfach geprüft und diskutiert wird.
Es ist allerdings auch richtig, daß Teams Zeit kosten, wenn zu viel über Implementierungsdetails diskutiert wird. Das ist eine Gratwanderung, bis zu einem gewissen Punkt der Planung sehe ich Teams (und die damit verbundenen Diskussionen) als schlagkräftiger an, aber danach nimmt dies auch wieder ab. In der Fehlersuche sind allerdings Zweierteams auch deutlich stärker als Einzelpersonen.
Wobei ich hier von ganz normalen Otto-Normalprogrammierern ausgehe, Genies schlagen die Teams fast immmer, aber woher soll man die nehmen? Die gibt's ja nicht im Regal.
Also, ich kenne ja nun beides:
Ich hab mal gut 1 Jahr in einem wirklichen Klasse-Team mit zwei echten Gurus gearbeitet.
Die beiden haben sich zwar öfters mal gezankt, aber sie haben uns andere grundsätzlich mitgenommen und alles erklärt.Jetzt programmiere ich ne größere Software alleine, d.h. ich hab zwar User zum Features erfragen, aber sonst bin ich mit der Entwicklung (abgesehen vom Forum hier) alleine gelassen.
Es ist zwar nett, immer Recht zu haben, weil keiner dagegen ist - aber mir fehlen die Diskussionen mit den Kollegen sehr."Einzelhaft" kann ich keinem empfehlen.
-
volkard schrieb:
übrigens fällt mir positiv auf, daß du in letzter zeit in diesem forum versuchst, auf buzzwording zu verzichten. ist es nicht ein schönes gefühl, ernst genommen zu werden?
Ich finde es albern, wenn man sich hier bezüglich seiner Sprache verstellen muss, um ernstgenommen zu werden. Es spricht sicherlich für Prof84, falls er versucht, sich bezüglich seiner Sprache an die hier üblichen Umgangsformen anzupassen. Es spricht aber ganz stark gegen das Forum hier, dass er das überhaupt machen muss, "um ernst genommen zu werden". Ich hatte zumindest nie ein Problem damit, dass Prof84 Fachbegriffe nutzt, die für ihn üblich sind.
Mich hat hier letzt auch schon einer angemacht, weil ich Begriffe aus der Bildverarbeitung genutzt habe. Ich kann das nicht nachvollziehen: Jeder hier kann sich in Sekunden die Bedeutungen solcher Begriffe ergoogeln oder in Wikipedia nachgucken, falls sie ihm nicht klar sind. Zudem wird einem "Buzzwording" auch noch vorgeworfen, wenn das Verständnis der Begriffe überhaupt nicht zum Verständnis einer Aussage in einem Beitrag nötig ist.
Das ist echt jämmerlich.
Was kommt als nächstes? Macht mich bald ein 13-jähriger an, wenn ich von Klassen, Objekten und Vererbung rede und er nichts versteht?
-
Gregor schrieb:
Zudem wird einem "Buzzwording" auch noch vorgeworfen, wenn das Verständnis der Begriffe überhaupt nicht zum Verständnis einer Aussage in einem Beitrag nötig ist.
Was mich zu der Frage führt, warum man überhaupt Begriffe verwendet wenn sie nicht zum "Verständnis einer Aussage" beitragen. Das ist Buzzwording in seiner höchsten Form!
-
TactX schrieb:
Was mich zu der Frage führt, warum man überhaupt Begriffe verwendet wenn sie nicht zum "Verständnis einer Aussage" beitragen. Das ist Buzzwording in seiner höchsten Form!
Ist es schlecht, Beispiele zu bringen? In meinem Fall waren es Beispiele.
-
Gregor schrieb:
TactX schrieb:
Was mich zu der Frage führt, warum man überhaupt Begriffe verwendet wenn sie nicht zum "Verständnis einer Aussage" beitragen. Das ist Buzzwording in seiner höchsten Form!
Ist es schlecht, Beispiele zu bringen? In meinem Fall waren es Beispiele.
Nein, du hast einfach nen Troll erwischt, der dir (unrechtmäßig) vorgeworfen hat, das Bildverarbeitungs-Bullshit-Bingo spielend zu gewinnen. Dumm gelaufen.
Aber Fakt ist, dass Buzzwording nicht (oder zumindest nicht viel) zum Informationsgehalt der Aussage beiträgt. Wir haben in der Vorlesung Consulting ein paar Folien dazu gekriegt, die uns davon abhalten sollen, zu sehr ins "Geschwätz" zu verfallen. Obwohl "wir" Buzzwording vorrangig mit Wirtschaftswissenschaften verknüpfen, trifft man sie besonders in der IT in breiter Masse an. Warum kann man nicht einfach sagen, wie's ist, ohne dabei in die "ich spreche viel, sage aber nichts" Rolle zu fallen?!
-
akdnmf alekmr öadlfkm asl schrieb:
Marc++us schrieb:
b) oftmals auch nicht so sozial-verträglich sind.
wobei die richtigen genies auch meist genug hirnkapazität haben, um auch sehr gut mit ihrem sozialen umfeld umzugehen.
Japp, das ist so. Siehe ich.
Bye, TGGC (Get the next best thing)