Wie sozial muss man als Programmierer sein?

8 Antworten

Reine Programmierer (= Codierer, die nur umsetzen, was andere an Lösungsideen entworfen haben) will man heute gar nicht mehr haben.

Was man braucht sind Software-Entwickler. Deren Aufgabe besteht aber nur zu etwa 15 bis 20 Prozent aus Programmierarbeit. Der gesamte Rest sind Arbeiten, die enge Kooperation, also viel Kommunikation mit Auftraggebern und Kollegen im Team erfordern.

Gamer4214  05.01.2024, 01:27

what nur 15 bis 20 % ist programmieren. Was denn kannst du da ein Beispiel nennen. Wie sieht so ein Tag ca. aus?

0
Gamer4214  05.01.2024, 01:38
@grtgrt

Ja moin. Ihr diskutiert also den ganzen Tag wie man Geld einsparen kann und das Projekt sauberer umsetzen kann. 0.o

0
grtgrt  05.01.2024, 01:39
@grtgrt Faustregel zur Schätzung von Software-Entwicklungsaufwand

Wer (in der Rolle des Auftragnehmers) Software für einen Kunden zu entwickeln hat, sollte i.A. folgende Faustregel zugrunde legen:

Raster für kompletten Entwicklungsaufwand:

Auf Basis » reiner Entwicklungsaufwand = 1 « kommen hinzu:

  • 0.1 für politisches Projektmanagement
  • 0.2 für technisches Projektmanagement
  • 0.1 für Qualitätsmanagement
  • 0.1 für Anpassen von Entwicklungswerkzeug, Integration und Configuration Management
  • 0.5 für Test
  • und wenigstens 0.1 für Dokumentation

Unter reinem Entwicklungsaufwand (= 1) verstehe ich dabei

  • Anforderungs- und Change Management (= 0.3)
  • Entwurf und Schnittstellenspezifikation (= 0.4)
  • Codierung (= 0.3)

Configuration Management für sich allein erfordert deutlich weniger als 1% des Entwicklungsaufwands.

0
grtgrt  05.01.2024, 01:49
@Gamer4214
Ihr diskutiert also den ganzen Tag wie man Geld einsparen kann und das Projekt sauberer umsetzen kann.

Ja, auch darum geht es. In erster Linie aber geht es darum, das gewonnene Projekt überhaupt erfolgreich abschließen zu können.

0
Gamer4214  05.01.2024, 01:50
@grtgrt

aber wird das nicht dadurch viel teuerer? Scheitert ihr also auch an Projekten oder macht ihr so lange weiter bis es abgeschlossen ist?

0
grtgrt  05.01.2024, 01:58
@Gamer4214

Ganz im Gegenteil: Die Kunst besteht darin, ein gewonnenes Projekt im versprochenen Zeit- und Kostenrahmen erfolgreich abschließen zu können: So also, dass man damit Geld verdient und der Kunde gerne wieder kommt.

Möglich ist das nur durch genaue Anforderungsanalyse und schriftlich erstelltes Systemdesign (= gut durchdachter Entwurf von Applikationsarchitektur und Spezifikation aller internen Schnittstellen der Anwendung) noch bevor man beginnt zu programmieren. Zu programmieren ist dann nichts weiter, als die so entworfene Lösung in Code umzusetzen und danach erfolgreich zu testen.

0
Gamer4214  05.01.2024, 01:58
@grtgrt

Gilt das nur für Gruppenentwickler oder auch für Einzelentwickler?

0
grtgrt  05.01.2024, 02:01
@Gamer4214

Das gilt auch für Einzelentwickler. Wer anders vorgeht, kommt nur zu Code, der sich schon bald als unwartbar herausstellt, da kein Mensch mehr sehen kann, was genau er denn eigentlich zu leisten beabsichtigt.

1
grtgrt  05.01.2024, 02:06
@grtgrt

Ich selbst habe mal versucht, nur 40 kB in C++ geschriebenen Code so zu verstehen, dass ich begriffen hätte, was genau er denn eigentlich tut: Es ist mir nicht gelungen, obgleich ich an dieser Analyse etwa 3 Monate gearbeitet habe. Ich war keineswegs der einzige, wohl aber der letzte, der versucht hat, diesen Code zu verstehen.

0
grtgrt  05.01.2024, 02:14
@grtgrt

Heute sieht man das so:

Code, den nur sein Autor versteht, ist wertlos. Einfach deswegen, da sein Autor früher oder später nicht mehr verfügbar ist, man den Code aber dennoch weiter neuen Anforderungen anzupassen hat. Ihn anpassen zu können erfordert, ihn im Detail genau verstanden zu haben.

1
grtgrt  05.01.2024, 02:22
@grtgrt

An ehesten noch gut verständlich ist in Java geschriebener Code.

Am schlechtesten verständlich ist in Assembler oder C/C++ geschriebener Code.

1
grtgrt  05.01.2024, 02:27
@grtgrt

Größere Zusammenhänge zu verstehen erfordert schriftliches Komponenten-Design (erstellt BEVOR man programmiert). Die entsprechenden Dokumente müssen von Release zu Release pingelig genau aktualisiert werden, um nicht wertlos zu werden.

Sie nicht verfügbar zu haben bedeutet auch, die Applikation gar nicht wirksam genug testen zu können.

0

Softwareentwicklung ist Teamarbeit. Du arbeitst eng mit Deinem Team zusammen. Zusätzlich tauscht sich Dein Team mit anderen Teams oder Vorgesetzten und natürlich mit dem Kunden aus.

Auf viele soziale Kontakte verzichten kannst Du als normaler Programmierer nicht und schon gar nicht als Freiberufler/Selbstständiger. Da hängt Deine Existenz von Deinen Kontakten ab.

Wenn Du keine/kaum Kontakte haben willst, kannst Du Deine Dienste auf Seiten wie Fiver anbieten. Wirklich Leben wirst Du davon aber nicht können.

Woher ich das weiß:Studium / Ausbildung – Informatik Studium.
möglichst viel alleine und ohne sozialen Kontakten 

Funktioniert schon in kleinen Projekten nicht. Denn da wird wenigstens der direkte Kundenkontakt stattfinden, ohne den man aus dem Lastenheft kaum sein Pflichtenheft vollständig erstellen kann.
Und dann stellt sich auch die Frage, ob man Kundenrückmeldungen bereits während der Entwicklung einfliessen lässt oder erst am Ende feststellt, dass man am Ziel vorbei gearbeitet hat und Teile komplett umwerfen will....

Ohne die Kontakte zu Kunden und auch Kollegen (die ggfs. am gleichen Projekt arbeiten) kann keine Abstimmung erfolgen. Und ohne Abstimmung wird man zwangsläufig irgendwo den Punkt erreichen, an dem die Entwicklung für die Tonne war.

Natürlich sitzen viele Programmierer auch in Meetings und besprechen sich, da ja meist viele Programmierer ein Programm/Projekt betreuen.

Hier ist sozialer Kontakt schon wichtig, da man sich ja besprechen und organisieren muss.

Programmierer hatten früher den Schlag, das sie immer schwarz gekleidet sind, nie an die Sonne gehen und nur Rock und Metal hören :D

Die Zeiten sind mehr als vorbei, meiner Meinung nach.

Woher ich das weiß:Studium / Ausbildung – Begeisterter Beweger der 0 und 1

Es mag solche Typen geben, die allein in ihrem Keller sitzen und Code absondern. Die können in ihrer Nische sogar gut sein. In der Praxis sind die aber eher selten. Ein Softwareprojekt ist fast immer Teamarbeit mit regelmäßiger Rückkopplung und Diskussion im Team.

Ein Projekt in "Einzelhaft" zu machen, war mir immer höchst unangenehm, denn meistens kommt nix dabei heraus, man wurschtelt viel zu oft am Bedarf vorbei. Deshalb habe ich auch ziemlich unter dem Homeoffice in der Coronazeit gelitten, Videokontakte sind einfach kein Ersatz für ein gemeinsames Mittagessen, den Kaffee auf dem Flur oder die Zigarette in der Horde.

Und dann ist da noch ein Punkt. Es ist unausweichlich, ein Leben lang weitere Techniken zu lernen und neue Ideen in die Arbeit einfließen zu lassen. Das geht in "Einzelhaft" niemals - neue Erkenntnisse werden nur im Team besprochen und gemeinsam ausgewertet.