Forum: Offtopic Softwareprojekte dokumentieren im Beruf


von Galli Leo (Gast)


Lesenswert?

Einfache Frage:

Wenn ihr beruflich Firmware implementiert, inwiefern dokumentiert ihr 
die Funktionalität?

Gut, die Änderung per SVN o.ä. zu tracen ist die eine Sache, ich aber 
meine konkret die funktionellen Abläufe.

Wenn z.B. der Austausch mit anderen Programmierern notwendig ist, damit 
der Wissensstand im Team bei allen gleich ist, wie geht ihr da vor?

Hier ein paar Optionen:

- keine Dokumentation, reine Quelltextanalyse notwendig, rein mündlich
- SVN reicht als Basis für alle
- Anständiges Pflichtenheft vor Implementierung und Dokumentation nach 
einzelnen Implementierungsschritten, was gemacht wurde (Flussdiagramme, 
UML, funktionale Beschreibung)

Es geht mir NICHT darum, wie man ein Projekt optimal durchführt, dazu 
gibt es genug Literatur, sondern WIE VIEL davon bei euch in der PRAXIS 
wirklich umgesetzt wird!

- welche Probleme kennt ihr aufgrund fehlender Maßnahmen?
- wie sehr spielt Zeitdruck eine Rolle (z.B. Chef sagt: " da haben wir 
keine Zeit für, Dokumentation ist nebensächlich)?


Als Entwickler kenne ich selbst das Problem, dass zu oft komplexe 
Abläufe aus dem Quelltext analysiert werden müssen, weil diese entweder 
individuell durch den Programmierer umgesetzt wurden, ohne das vorher 
schriftlich genau definiert wurde, wie die Abläufe implementiert werden 
sollen, oder nachher, was gemacht wurde.

Nachteil: spätere Einsteiger können aus dem Quellcode nicht erkennen, 
warum etwas wie gemacht worden ist, der Zeitaufwand zur Einarbeitung ist 
höher, die Sicherheit das Projekt fach- und zeitgerecht weiterführen zu 
können, ist dahin, wenn der Programmierer mal kündigt/ausfällt.

Klar ist, wie's sein sollte, aber wie sieht's bei euch in der Praxis 
aus?

- Hindert euch der Vorgesetzte?
- Habt ihr keine Lust auf Dokumentation?



Würde gerne mal eure persönlichen Erfahrungen und Arten der Umsetzung 
kennenlernen.

von Galli Leo (Gast)


Lesenswert?

>> Nachteil: spätere Einsteiger können aus dem Quellcode nicht erkennen,
>> warum etwas wie gemacht worden ist, der Zeitaufwand zur Einarbeitung ist
>> höher, die Sicherheit das Projekt fach- und zeitgerecht weiterführen zu
>> können, ist dahin, wenn der Programmierer mal kündigt/ausfällt.
>
> Und es ist auch gut so, funktioniert schon seit Jahrzehnten. Nur weil in
> den letzten Jahren die Cheftaschen immer voller gestopft werden möchten,
> zwecks Ersparnis an Einarbeitungszeit bei Neulingen, kommt dieser Mist
> mit der fast schon ekelhaft akribischen Doku zur eigentlichen Arbeit
> hinzu.
> Außerdem, je schneller du die perfekte Doku zusammen bekommst, desto
> schneller wirst du von einem billigeren Heini abgelöst, der sich nach
> deiner Doku superschnell und saubillig einarbeiten kann.
>
> Zur eigentlichen Frage:
>


Hallo, danke für deinen Beitrag.


Alex schrieb im Beitrag #2354596:
>> " da haben wir keine Zeit für, Dokumentation ist nebensächlich
>
> Die Zeiten sind schon längst vorbei.

Also wird bei deinem Arbeitgeber ordentlich dokumentiert, habe ich dich 
da richtg verstanden?

> Das, was du oben erwähnt hast, wird meist auch genauso umgesetzt.

eher das saubere dokumentieren oder das "Hauptsache, Firmware läuft und 
Doku egal"?

von H.Joachim S. (crazyhorse)


Lesenswert?

Kann man glaub ich nicht verallgemeinern, zumindest bei mir.
Es gibt massig kleinere Projekte, da ist so gut wie nichts an Doku da. 
Ein Programmablaufplan, ein halbwegs gut kommentierter Quelltext und 
aussagekräftige Variablennamen - fertig.
Wer damit nicht zurecht kommt - Beruf verfehlt.
Gibt natürlich auch Kunden, die wollen selbst für Kleinkram eine 
komplette Doku haben. Wird dann extra angeboten und kostet extra.
Unter Kleinkram verstehe ich all die Projekte, die mit einem einzigen 
Controller arbeiten, auf denen ein einziges Programm läuft und die nicht 
vernetzt sind.

von Galli Leo (Gast)


Lesenswert?

@Alex:

OK, Nachfrage bitte streichen, hatte etwas falsch gelesen, deine Antwort 
war eindeutig.

Gruß

von Johannes O. (jojo_2)


Lesenswert?

Hab bisher keine Hardwareprojekte umgesetzt, sondern war nur ein wenig 
im Web-Bereich tätig, hoffe dass dir das trotzdem hilft.

Wir hatten mal ein großes Projekt für eine internationale NGO am laufen 
bei dem wir nicht mit SVN oder sowas gearbeitet hatten. Wir waren 2 
Programmierer (+1 "Chef") jeder hatte den Stand auf dem Rechner und hat 
ihn hin und wieder ins Testsystem hochgeladen. Erstmal schien das auch 
gut zu gehen. Hatte mir aber sicherheitshalber selbst einige 
Zwischenversionen gesichert.
Es verging einige Zeit und der andere Programmierer wurde nicht fertig 
bzw. hatte schwere Bugs im System. Zuerst sollte er sie noch selbst 
fixen, letztendlich bliebs dann bei mir hängen.
Ich musste mich erstmal in seinen grauenhaften Code einarbeiten. 
Dutzende Dateien von denen man nie wusste ob die noch gebraucht werden 
oder nicht (z.B. sowas wie answers.php, answers00.php, answers01.php 
answers_user.php usw, und die Namen gabs in 3 verschiedenen Ordnern)
Keine Versionsverwaltung und auch keine Doku, der Code selbst war 
grauenhaft programmiert und funktioniert oft nur zufällig! Irgendwie hab 
ich mich dann da durchgewurschtelt, hab auch noch weitere Bugs entdeckt 
usw.
Richtig zurecht gekommen bin ich damit nie, das System funktionierte 
hernach mehr schlecht als recht.
Dann gabs ein Krisentreffen mit dem Auftragsgeber aufgrund der 
Verzögerungen, man wollte neue Programmierer ins Team schicken, der 
andere Programmierer hat aufgehört (wurde ihm vermutlich auch 
nahegelegt...).
Der Auftragsgeber fragte uns dann, wie wir weiter mit dem System 
verfahren wollen was bisher aufgebaut wurde. Ich sagte ihnen dann 
ehrlich, dass ich keine Chance sehe diesen verbuggten Code jemals zum 
laufen zu bekommen, und dass wir diesen Teil neu schreiben sollten. 
Letztendlich bekamen wir einen Ersatzprogrammierer und ich installierte 
noch SVN. Da mein Code einigermaßen strukuriert war und gut lief blieb 
er zu 95% erhalten, der restliche Code wurde komplett herausgenommen.
Mit dem neuen Programmierer kam ich gut zurecht, wir nutzten indefero 
für die Bugverwaltung. Es gab wieder große Fortschritte im Projekt.
Eine Doku wurde trotzdem nicht angelegt bzw. es wurde ein paar mal 
halbherzig angefangen und dann wieder stehen gelassen. Dennoch kann man 
sich gut im Code zurechtfinden, da er ordentlich programmiert ist.
Das System wurde dann auch fertiggestellt. Zwischen drin wars aber immer 
wieder ein Problem die Finanzierung zu sichern, da kaum was 
funktionierte und die NGO natürlich nur von außen irgendwelche Gelder 
bekommt. Zum Einsatz kam das System nie. Die NGO wurde umstrukturiert 
und das (fertige) System nicht mehr benötigt, vermutlich auch wieder 
eine Geldsache.

Daraus hatte unser Chef (der nichtmal selbst wirklich programmieren 
kann...) gelernt, dass Versionsverwaltung + anständiger Code sinnvoll 
ist.
Darauf geachtet wurde trotzdem nicht, er hat sich nie mit meinem Code 
beschäftigt. Bei den nächsten (zum Glück kleineren) Projekten wurde das 
so fortgeführt. Meistens war auch zeitdruck dabei, d.h. eine Doku gabs 
auch hier wieder nicht.
Eine Gefahr ist auch, dass man ein einfaches Grundsystem programmiert 
hat das übersichtlich ist. Dann kommt aber der Chef daher und will noch 
dieses und jedes Feature haben. Beim nächsten Kunden: Ja nimm das alte 
System und programmiere noch Dies und Jenes dazu. Nach und nach bläht 
sich der Code dann auf, wenn man 10 und mehr Kunden nacheinander hatte, 
für die man das alte System nur immer anpasst.
Mittlerweile denke ich, dass der Code für außenstehende nicht mehr 
wartbar ist. Ich selbst finde mich drin noch zurecht, andere haben da 
keine Chance. Natürlich hätte ich alles besser strukturieren können. 
ABER: Ich wurde pauschal bezahlt, d.h. X00€ für dieses Projekt wenns 
fertig ist. Und am besten sollte es z.B. in 3 Tagen stehen.
1. Lässt die Zeit es nichtmal zu dass man das System schön durchtestet
2. Lässt es die Zeit damit erst recht nicht zu guten Code zu produzieren
3. Lässt die Zeit erst recht keine Doku zu
Hab die Sache auch ein paar mal beim Chef angesprochen bzgl. 
Programmierstil usw., aber wirklich vorangegangen ist da nicht. Würde 
eben auch wieder Geld kosten.

Hab mich mittlerweile von dem Laden verabschiedet und hab jetzt selbst 
was eigenes. Jetzt wird alles schön ins SVN hochgeladen und 
übersichtlicher Code geschrieben. Dazu zählt z.B. auch, dass man 
objektorientiert Programmiert, das macht den Code verständlicher.
Ehrlich gesagt dokumentiere ich auch nicht viel, ich versuche eher den 
Code so zu halten, dass er auch ohne Doku verständlich ist. Das klappt 
sehr gut, man findet sich schnell zurecht.

von Thomas R. (Gast)


Lesenswert?

Ich nehm Doxygen: http://de.wikipedia.org/wiki/Doxygen
Da bin ich gezwungen, saubere Sourcen zu machen und die Doku entsteht 
automatisch.

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.