Hallo Zusammen,
ich habe eine kurze Frage an Euch. Mich interessiert mit welchen
korrekten Aufgaben ihr euch täglich in euren Softwareprojekten
beschäftigt bzw. mit welchen Problemen müsst ihr herumschlagen.
Geht es um Entwicklung und Optimierung von Algorithmen, Programmcode ?
oder um banale Dinge wie GUI erstellen oder Bugs beseitigen ?
Vielen Dank
Monomer schrieb:> Geht es um Entwicklung und Optimierung von Algorithmen, Programmcode ?> oder um banale Dinge wie GUI erstellen oder Bugs beseitigen ?
Ich mache Alles davon. Und nichts davon ist banal, schon gar nicht "Bugs
beseitigen".
Hi Monomer,
kindergärtnern. Und das mein ich Todernst. Ca. 10-15% der Projekt-Zeit
(inkl. Folgeerscheinungen + Reporting). Mag nicht viel erscheinen,
erachte ich aber als eigentlich überflüssig, wenn man sich eigentlich
unter lauter Erwachsenen befindet.
Gruß, jois3
> ... oder um banale Dinge wie GUI erstellen ...
Hihi ... wohl noch nie ein GUI erstellt. Das GUI ist was der Benutzer
sieht. Und wenn's das nicht ist, resp nichts taugt, ist die Arbeit in
der Tonne.
> ... oder um banale Dinge wie Bugs beseitigen ...
Hihi ... wohl noch nie Bugs beseitigt. Entweder die Applikation tut was
sie soll, oder sie ist in der Tonne.
60% Softwareentwicklung, der Rest Projektmanagement und Betreuung von
Chefs, Kunden und Juniorentwicklern.
Von der Entwicklungszeit etwa die Hälfte Algorithmenentwicklung und die
Hälfte Hardwareansteuerung bzw. Mitarbeit bei der Inbetriebnahme der
eigenen Entwicklungsprojekte. GUIs und Datenbankkram mach ich nicht,
Bugbeseitigung schon - obwohl bei uns alles andere als banal ist. Fehler
können von Hardware, Software oder außerhalb kommen und brauchen viel
Erfahrung, um gefunden zu werden- selten das, was man in der klassischen
CRUD-Schiene erwartet.
Monomer schrieb:> Hallo Zusammen,>> ich habe eine kurze Frage an Euch. Mich interessiert mit welchen> korrekten Aufgaben ihr euch täglich in euren Softwareprojekten> beschäftigt bzw. mit welchen Problemen müsst ihr herumschlagen.> Geht es um Entwicklung und Optimierung von Algorithmen, Programmcode ?> oder um banale Dinge wie GUI erstellen oder Bugs beseitigen ?
"Herr Heiner das Symboldingens ist von meinem Schreibtisch weg! Machen
sie das wieder da hin"
"Der Drucker druckt nicht!"
"Das Internet ist abgeschaltet!"
"Oh Gott ich habe das Internet gelöscht, haben wir davon ein Backup? Was
wieso haben Sie kein Backup? Wir haben doch so ein Backupdingens, das
jeden Tag backuped oder heisst es upbacked..."
"Habe Sie die neueste Kopie von Software/Film/... ist für meinen
Sohn...?"
"Also wir wollen gerne noch einen E-Mail-Client in unserem Programm
haben und einen Browser und das ganze sollte auch auf einem iPod laufen
und diesem grünen Dingens da auf dem Tablett, Ähndreuhit und wenn man
noch ein Fax verschicken ...."
"Sie haben meinen Rechner kaputt gemacht, vorher ging alles, ich habe
nix gemacht!"
"Was man darf den Rechner nicht einfach ausschalten? Ich dachte das
Programm speichert automatisch immer ab? Also bei meinem Smartphone geht
das wieso geht das hier nicht..."
[ oder Dilbertcomic deiner Wahl einfügen, jeder ist WAHR ]
Man ist der Wärter im Idiotenzoo, jeden Tag.
DAS machen 90% der ITler.
---
Geht es um Entwicklung und Optimierung von Algorithmen, Programmcode ?
oder um banale Dinge wie GUI erstellen oder Bugs beseitigen ?
---
sowohl als auch.
Optimierung ist schon ein wichtiges Thema bei mir, und wenn man ein
bisschen Ahnung von Datenstrukturen hat kann man oft soviel Performance
rausholen, sodass der Chef das auch merkt und nicht nur in statistischen
Messreihen nachweisbar ist.
Viel Zeit geht auch drauf, "Business Logic" zu implementieren. Also
irgendwelche Abläufe, die sich der Kunde von der SW erwartet. Das ist
meist weniger spannend, muss aber auch gemacht werden, denn irgendwer
muss die SW ja auch bezahlen.
Bugs finden ist oft nicht so trivial. Vor allem bei Applikationen,
welche mehrere Threads haben, wirds schwierig. Aber auch Compilerfehler
hatten wir hier schon. Bis man da draufkommt vergeht oft einiges an
Zeit. Aber es kann durchaus Spaß machen, vor allem kompliziertere Fehler
zu suchen.
Neben den rein technischen Tätigkeiten fallen natürlich auch Meetings
an, oder Telefonate mit den Kunden.
Vielen Dank für euere offene Antworten. Sie geben mir recht interessante
Einblicke in die Welt der Softies und Hardies. Das Debuggen ist
natürlich nicht banal. Im Gegenteil, es ist sehr anspruchvoll und
zeitaufwändig, wie ich nun erfahren habe.
weitere Fragen: kommt es bei euch schon mal vor dass ein Softwareprojekt
nicht zu Ende geführt wurde bzw. gescheitert ist weil xyz Anforderungen
nicht erfüllt werden können oder kein Geld mehr da ist usw....
In anderen Branchen kommt es manchmal vor dass ein Projekt mittendrin
eingestampft wurde, weil ein Gutachter, Projektfinanzierer und sonstigen
das Projekt für nicht sinnvoll oder kostspielig halten. Grund zum
Scheitern gibt irgendwie genügend.
Simulationsentwicklung für grosse Parallelrechner. In einer ersten Phase
geht es darum, das von den jeweiligen Fachspezialisten entwickelte
Simulationsmodell in einen passenden Computer-Algorithmus zu übertragen,
meist in Matlab. Erstens lernt man so das Modell zu verstehen, zweitens
testet man die vorgesehenen Lösungsverfahren (z.B. FEM), drittens können
so Testdaten für die spätere parallele Implementierung generiert werden.
In einer zweiten Phase wird die Basis geschaffen, um das Modell auf
einem Parallelrechner implementieren zu können. Aktuell bedeutet dies
häufig die Implementierung von Lösungsalgorithmen auf Grafikprozessoren.
Man erstellt sich gewissermassen ein Framework mit den Funktionen, die
man für die Simulation braucht. Hier werden natürlich gerne auch
bestehende Libraries benutzt und verknüpft.
Und zu guter Letzt wird dann das Modell komplett implementiert,
getestet, verifiziert. Hierbei kommt wiederum oft Matlab zum Einsatz und
natürlich viel Physik, um Parameter zu extrahieren, die man im
Experiment messen kann.
Monomer schrieb:> Vielen Dank für euere offene Antworten. Sie geben mir recht interessante> Einblicke in die Welt der Softies und Hardies. Das Debuggen ist> natürlich nicht banal. Im Gegenteil, es ist sehr anspruchvoll und> zeitaufwändig, wie ich nun erfahren habe.
Ein nicht-Programmierer stellt sich unter Debuggen wohl so etwas wie
Nachbesserung vor. Wie bei einer Hausabnahme, wo ein Handwerker da einen
zerkratzten Türgriff oder dort einen falsch angeschlossenen
Lichtschalter beheben muss. In Tat und Wahrheit entspricht es aber eher
der Tätigkeit eines Maschineningenieurs, der nach einem Testlauf die
Messdaten und das Testobjekt genau analysiert, um die Ursachen für
Probleme zu verstehen und zu beheben. Debuggen ist somit eine
anspruchsvolle Tätigkeit und gehört so integral zur Softwareentwicklung,
wie Testflüge zur Flugzeugentwicklung, und wird, genau wie dort, sicher
nicht von irgendwelchen niederen Rängen ausgeführt.