Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Alltag in unserer Branche (?)
Golo Roden
myCSharp.de - Member

Avatar #avatar-2167.png


Dabei seit:
Beiträge: 4649
Herkunft: Riegel am Kaiserstuhl

beantworten | zitieren | melden

Zitat von HappyLil
du hast nicht ganz unrecht, ich denke aber dass es für komplexe, "grosse" anwendungen schon sinn macht sich etwas optimales in seiner domäne zu bauen, so dass man in seiner domäne eine hohe produktivität hat.

für kleinere projekte stimme ich dir zu.

Gerade bei großen Projekten macht es IMHO nicht unbedingt Sinn, weil zu viel Zeit und Energie drauf geht ... meistens ist das ein typischer Fall des "Not invented here"-Syndroms.
Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de
private Nachricht | Beiträge des Benutzers
Floste
myCSharp.de - Member

Avatar #avatar-2376.jpg


Dabei seit:
Beiträge: 1158
Herkunft: Norddeutschland

beantworten | zitieren | melden

[unqualifiziert=Senf dazu]Eigentlich ist es das NIH-Syndrom pur, wenn man das .net Framework nicht verwendet.[/unqualifiziert]
Projekte:Jade, HttpSaver
Zum Rechtschreiben gibts doch schon die Politiker. Aber die bauen auch nur mist!
private Nachricht | Beiträge des Benutzers
s0h0
myCSharp.de - Member



Dabei seit:
Beiträge: 861
Herkunft: Nürnberg

beantworten | zitieren | melden

Ich glaub ich hol mir mal ein rotes Bändchen, das erinnert mich dann vielleicht immer daran, sauberer zu Arbeiten...

Hat schon jemand so ein Armband?



PS: Irgendwie erinnert mich diese Diskussion an 'Pfusch am Bau'.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von s0h0 am .
Eine Null kann ein bestehendes Problem verzehnfachen
private Nachricht | Beiträge des Benutzers
JuyJuka
myCSharp.de - Experte

Avatar #avatar-2316.jpg


Dabei seit:
Beiträge: 2282
Herkunft: Deutschland

beantworten | zitieren | melden

Hallo,

s0h0 hat vielleicht garnicht so unrecht. Wenn man nicht höllisch aufpasst oder (wie manche meiner Firmen-Kollegen) gar keinen Wert drauf legt, hat man in nur wenigen Zeilen "Pfusch am Bau".

Gruß
Juy Juka
private Nachricht | Beiträge des Benutzers
Golo Roden
myCSharp.de - Member

Avatar #avatar-2167.png


Dabei seit:
Beiträge: 4649
Herkunft: Riegel am Kaiserstuhl

beantworten | zitieren | melden

Ich hätte gerne eins gehabt, aber da waren die schon ausverkauft ... gibt's schon wieder welche?
Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de
private Nachricht | Beiträge des Benutzers
Fabian
myCSharp.de - Member

Avatar #avatar-1590.jpg


Dabei seit:
Beiträge: 1994
Herkunft: Dortmund

Themenstarter:

beantworten | zitieren | melden

Hallo zusammen,

danke für die rege und konstruktive Diskussion. Auf der einen Seite bin ich etwas erleichtert, dass diese Situation nicht nur bei mir vorherrscht. Auf der anderen Seite tut es mir natürlich auch leid für Euch, dass es eben so ist wie es ist :).

Augen zu und durch, heißt es da wohl.
Zitat von Peter Bucher
Schau dir mal folgende Seite an:
- http://www.clean-code-developer.de/

Diese Seite und die dahinter stehende Idee kann ich sehr empfehlen und unterstützen. Mal sehen, ob es was bringt.


Gruß,
Fabian
"Eine wirklich gute Idee erkennt man daran, dass ihre Verwirklichung von vornherein ausgeschlossen erscheint." (Albert Einstein)

Gefangen im magischen Viereck zwischen studieren, schreiben, lehren und Ideen umsetzen…

Blog: www.fabiandeitelhoff.de
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo Fabian,
Zitat
Augen zu und durch, heißt es da wohl.
das würde ich aus dem Thread nicht schließen. Es gab doch im Gegenteil genug, die gesagt haben, dass sie die Situation genauso leid waren wie du und durch einen Wechsel des Arbeitgebers (deutlich) verbessern konnten.

herbivore
private Nachricht | Beiträge des Benutzers
Tomot
myCSharp.de - Member

Avatar #avatar-2678.jpg


Dabei seit:
Beiträge: 706
Herkunft: Düsseldorf

beantworten | zitieren | melden

Also ich habe beruflich immer halbwegs sauber programmieren müssen, da viel Wert auf Wiederverwendbarkeit gelegt wurde. Ansich eine gute und nachvollziehbare Sache =)
Zitat von s0h0
Hat schon jemand so ein Armband?
Interessant? Was für nen Armband soll das sein? Solange es nicht so nen Gummiteil ist, bin ich nicht abgeneigt mir auch sowas zu holen =)

Edit: http://www.clean-code-developer.de/wiki/CcdArmband
Hmm. Die Idee eines solchen Armbands gefällt mir schon, allerdings das Armband selber nicht. Hat jemand ne gute Alternative? (Jetzt bitte nicht antworten mit "Gute Programmierung muss allgegenwärtig sein" oder "dafür braucht man doch gar keinen Schmuck" :) )
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Tomot am .
mit freundlichen Grüßen,
Tomot

Projekte: www.gesellschaftsspieler-gesucht.de
private Nachricht | Beiträge des Benutzers
s0h0
myCSharp.de - Member



Dabei seit:
Beiträge: 861
Herkunft: Nürnberg

beantworten | zitieren | melden

Zitat
Hat jemand ne gute Alternative?
Lass es dir auf den Unteram tätowieren :)

Zitat
http://www.clean-code-developer.de/
Wirklich eine super Seite und gut geschrieben, schon nach dem Lesen der Regeln und Muster für das rote Band gingen mir 3 Lichter auf.

Zitat
Ich hätte gerne eins gehabt, aber da waren die schon ausverkauft ... gibt's schon wieder welche?
Steht noch ausverkauft da, angeblich Mitte Januar wieder... Welche Farbe willst du dir den holen?



Das Armband soll ja denke ich auch kein modisches Accessoire sein sondern einen daran erinnern nach welchen Regeln und Grundsaetzen man handeln möchte. Ich werde es auch nicht sichtbar sondern spürbar tragen..
Eine Null kann ein bestehendes Problem verzehnfachen
private Nachricht | Beiträge des Benutzers
Golo Roden
myCSharp.de - Member

Avatar #avatar-2167.png


Dabei seit:
Beiträge: 4649
Herkunft: Riegel am Kaiserstuhl

beantworten | zitieren | melden

Zitat
Zitat
Ich hätte gerne eins gehabt, aber da waren die schon ausverkauft ... gibt's schon wieder welche?
Steht noch ausverkauft da, angeblich Mitte Januar wieder... Welche Farbe willst du dir den holen?

Da man ja eh immer wieder wechselt, eigentlich alle ;-)
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Golo Roden am .
Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de
private Nachricht | Beiträge des Benutzers
s0h0
myCSharp.de - Member



Dabei seit:
Beiträge: 861
Herkunft: Nürnberg

beantworten | zitieren | melden

ja aber ich mein bei welcher du einsteigen willst... ;)
Eine Null kann ein bestehendes Problem verzehnfachen
private Nachricht | Beiträge des Benutzers
Golo Roden
myCSharp.de - Member

Avatar #avatar-2167.png


Dabei seit:
Beiträge: 4649
Herkunft: Riegel am Kaiserstuhl

beantworten | zitieren | melden

Rot.
Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de
private Nachricht | Beiträge des Benutzers
svenson
myCSharp.de - Member



Dabei seit:
Beiträge: 8775
Herkunft: Berlin

beantworten | zitieren | melden

Zitat von Peter Bucher
Ich sehe das grösste Problem darin, dass es den Managern / Leitern mehr ums Geld geht und das weitsichtige Denken fehlt.

Wenn es wirklich so ist, dass gutes Design, Unittests, agile Methoden wirklich Geld sparen, dann wäre es doch wunderbar wenn die Manager so hinter dem Geld her sind. Dann wäre all diese Verfahren quasi von oben verordnet.

Meiner Erfahrung nach besteht das Problem nicht in Gier sondern in mangelndem Wissen. Mal Hand hoch: Wer kennt Methoden zur Aufwandsschätzung von Softwareentwicklung? Fragt das mal eure Manager die von euch Aufwandsschätzungen haben wollen (oder analog: "Was kostet es?"). Gebt mal als Antwort: Mit welcher Methode soll ich schätzen und mit welcher Wahrscheinlichkeit soll das Ergebnis behaftet sein?

Da gucken die wie ein U-Boot. Vergessen das aber schnell und sind dann ganz schnell dabei deine genannte Zahl (X Wochen...) in ihr MS-Project einzubauen und dann mit den Tapeten zur Geschäftsleitung oder zum Kunden zu rennen und Release-Termine zu vereinbaren.

Fairerweise muss man sagen: Die SW-Entwickler sind oft nicht schlauer, aber sie spüren den Leidensdruck direkter. Du findest unter SW-Entwickler genau die gleichen Plan-Hörigen/-losen oder wie unter den Managern.

Von letzteren aber sind m.E. nach 80% einer der beiden folgenden Gruppen zuzuordnen:

1. Läßt seine Truppe alleine laufen. Wenn es schlecht läuft wird gebrüllt und Druck gemacht. Keine Methoden, dafür viele Überstunden und Wochenendarbeit.

2. Versucht seine Truppe mit Kostenzahlen und Terminen zu kontrollieren. Das gelingt u.U., die Software ist aber genauso mies, weil man mit BWL-Methoden eben SW nicht besser machen kann. Häufig in Großunternehmen anzutreffen, kombiniert mit monatelangem Anforderungsermittlungsprozess, Quality-Gates, und Freigaben in dreifacher Ausfertigung. Die Projekte scheitern hier auch, kosten dann aber mindestens 30 Millionen und sind wenigstens dokumentiert gescheitert.

Die letzten 20% sind die "Guten", zumindest teilweise.
Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von svenson am .
private Nachricht | Beiträge des Benutzers
GMLOD
myCSharp.de - Member

Avatar #avatar-2654.jpg


Dabei seit:
Beiträge: 1228

beantworten | zitieren | melden

Zitat von svenson
Meiner Erfahrung nach besteht das Problem nicht in Gier sondern in mangelndem Wissen. Mal Hand hoch: Wer kennt Methoden zur Aufwandsschätzung von Softwareentwicklung? Fragt das mal eure Manager die von euch Aufwandsschätzungen haben wollen (oder analog: "Was kostet es?"). Gebt mal als Antwort: Mit welcher Methode soll ich schätzen und mit welcher Wahrscheinlichkeit soll das Ergebnis behaftet sein?

Jetzt mal ohne Scheiss: Ich schätz das fast 100% akkurat. Zumindest in dem 2 Mann Team, in dem ich seit einer Weile bin.

EDIT: Muss noch dazu sagen: Ich plan aber auch in Tagen. Da ist das natürlich keine Kunst.
Shift to the left, shift to the right!
Pop up, push down, byte, byte, byte!

YARRRRRR!
private Nachricht | Beiträge des Benutzers
Razer
myCSharp.de - Member

Avatar #avatar-2389.jpg


Dabei seit:
Beiträge: 84
Herkunft: BW/DE

beantworten | zitieren | melden

Zitat von Golo Roden
Ich stelle es gerade selbst fest: Zu zweit (Peter Bucher und ich) arbeiten wir derzeit an einem eher kleinen Projekt, wo wir beide seit etlichen Wochen jeden Tag mehrere Stunden dransitzen.

Unser Ziel ist - abgesehen davon - dass nachher alles funktioniert, auch, eine saubere Architektur hinzubekommen, eine gute Testabdeckung zu haben, ... und das kostet unglaublich viel Zeit!

Wenn man guckt, was das Ding für den Endanwender kann, fragt man sich, wie wir da länger als einen oder zwei Tage dransitzen.

Same here..

Ich finde zudem, dass die immer mehr werdenden Möglichkeiten zur Entwicklung eines Produkts den Aufbau einer Architektur nicht zwangsläufig vereinfachen oder beschleunigen, teilweise ist das genaue Gegenteil der Fall.

Einige konkrete Beispiele:

Datenzugriff:
- Entity Framework?
- LINQ to SQL ?
- ADO .Net 2.0 ?
- ADO .Net 1.0?
- NHibernate ?

User Interface:
- WindowsForms?
- WPF?
- WebFrontend?

Design:
- n-Tier (3 Layer? 4 Layer? 5 Layer?)
- FatClient? SmartClient? ThinClient?
- Applikationsserver?
- Nur SQL Server?
- Stored Procedures?
- DTOs oder DB-Entitys?

Umfeld:
- Net 3.5/3.0/2.0 möglich?
- MS-Only Datenbanken?

Ja, was den nun?
Man könnte das noch weiterführen.

Dazu kommt, dass man oft keine der Technologien als "best practice" bezeichnen könnte:

- Mit dem EF und L2S kann man tolle LINQ Abfragen basteln - aber mehrschichtige Anwendungen sind beim aktuellen Stand nur unschön zu lösen..

- Mit ADO .Net 2.0 kann man Datensätze durch alle Schichten schieben - aber bei Abfragen darf man erstmal wieder "SELECT * FROM Customers WHERE ..." in seine Settings-Datei tippen.

- Mit NHibernate darf man aber erstmal zig Attribute und Config Einträge ohne Designer manipulieren..

Eine kleine Anwendung zur Verwaltung von Kundendaten ist schnell geschrieben.
Aber hat man sich erstmal einge der Patterns angesehen, vervielfacht sich der Zeitaufwand gut und gerne:
z.B. Design mit Layern und MVP-Pattern:
DataAccess -> Manager -> Services -> Presenter -> UserInterfaces

Hinzu kommt noch die Abstraktion durch Interfaces und/oder DataContracts zwsichen den einzelnen Schichten, die die erforderliche Menge an Code und Planungszeit stark ansteigen lässt.

Ich denke deshalb, dass auch in der Software-Entwicklung der Grundsatz gilt, dass auf 20% der Funktionaliät 80% der Arbeit entfallen. Übertragen auf die Architektur könnte man also vielleicht die These aufstellen, dass eine saubere, auf Patterns bzw. Vermeidung von AntiPattern basierte Architektur mit einem Schluck Pragmatismus die produktivste Art der Entwicklung darstellt.

Gruß,
Razer
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo zusammen,

lasst mal die fachlichen Details/Diskussionen hier in Smalltalk raus. Das wäre was für Rund um die Programmierung. Konzentriert euch auf die die Situation und die menschlichen Aspekte.

herbivore
private Nachricht | Beiträge des Benutzers
marco.b
myCSharp.de - Member



Dabei seit:
Beiträge: 310

beantworten | zitieren | melden

Hallo,

ich persönlich denke, das Problem wird von einigen etwas naiv betrachtet, vermutlich von denen, die noch nicht an wirklich großen Projekten gearbeitet haben. Die Behauptungen "lange Planung = saubere Architektur", "geldgeile Manager = schlechter Code" die so gerne geäußert werden, sind unüberlegt.

Ich spreche im Folgenden von Projekten, die eine Codegröße von 500.000 Zeilen aufwärts aufweisen. Hier haben wir meiner Erfahrung nach folgende Situation:

Erstmal ein paar Annahmen, die ich für das Folgebeispiel voraussetzen möchte und die vermutlich auch auf viele Projekte zutreffen:

1. Das Projekt wird über viele Jahre hinweg entwickelt. Es gab schon mehrere Major- und Minorversionen, das Produkt ist im Einsatz.

2. Bei einer solchen Projektgröße und Entwicklungsdauer kann man meistens auch davon ausgehen, dass viele verschiedene Entwickler daran gearbeitet haben, und bestimmt nicht immer das zu Projektbeginn aufgestellte Team. Entwickler kamen hinzu, Entwickler gingen. Der eine ist vielleicht ein erfahrener Informatiker gewesen, der andere kommt gerade von der Uni, wieder ein anderer hat gerade eine Ausbildung beendet, hat somit wenig Erfahrung, ist aber dafür recht ambitioniert.

Beginnen wir zeitlich bei 0:
Zu Projektbeginn gab es irgendwann mal eine Menge von Anforderungen, die vom resultierenden Produkt erfüllt werden sollen. Nehmen wir an, das anfängliche Team hat sich lange für die Planung zeitgelassen: Die Anforderungen analysiert, Zusammenhänge entschlackt und abstrahiert, und sämtliche Geschäftsfälle totmodelliert. Das Resultat ist eine saubere Klassenstruktur, die von nun an gepflegt wird.

Gehen wir nun 4 Jahre in die Zukunft. Das Produkt ist bei 200 Firmenkunden im Einsatz. Die Codegröße liegt inzwischen bei 230.000 Zeilen. Genug Platz für Bugs. Diese werden über ein Bugreporting-System eingespeist. Die Kunden möchten Fehler schnell behoben sehen, es herrscht also Zeitdruck.
Neu eingestellte Entwickler schlagen sich nun durch die 230.000 Zeilen Code, um die aktuellen 50 bekannten Bugs zu entfernen.
Leider erkennen sie nicht alle Feinheiten der vom ursprünglichen Team beabsichtigten Architektur. So beginnen sie, gegen Kapselungsvorgaben zu verstoßen. Klasse A braucht plötzlich zwei Setter mehr, die von Klasse B beschrieben werden sollen. Sollte laut dem ursprünglichen Entwicklermodell nie passieren, aber der eine, unglaublich nervige Bug konnte durch die neuen Setter ruckzuck behoben werden. Super, wieder ein zufriedener Firmenkunde!
Doch nicht nur Bugs werden gemeldet, auch Neuanforderungen. Neuanforderungen, die vom damaligen Entwicklerteam, welches die Grundarchitektur entworfen hatte, niemals vorausgesehen werden konnten. Also muss die Architektur umgebogen werden, damit neue Anforderungen zeitnahe implementiert werden können. Und selbst wenn viel Zeit vorhanden ist, ist es äußerst schwer eine Architektur zu verändern, auf der bereits so viele laufende Geschäftsprozesse innerhalb der Software aufbauen.

Spulen wir weitere 3 Jahre vor: Die Umbiegung und Veränderung der Architektur führt dazu, dass sich bereits sogenannte "Workarounds" für Inkonsistenzen im eigenen Projekt gebildet haben. Das Projekt fast inzwischen 700.000 Zeilen, und durch die immer wieder kehrende Einprogrammierung neuer Asssoziationen zwischen Klassen (Neue Parameter im Konstruktor, Getter / Setter, etc.) sind die Klassen untereinander ziemlich fest verzahnt, was es schwer macht, unsauber implementierte Teile der Architektur neuzuschreiben, da man damit wieder viele Löcher in anderen Codeteilen aufreist.

Jetzt nach 7 Jahren kommt ein ambitionierter Programmierer hinzu der sagt: Schlechte Architektur. Wer plant denn bitte so ein Blödsinn! Hätte man ja alles gleich besser machen können.
Und die Geschichte geht von Neuem los, nämlich bei 0, fest definierten Anforderungen und einer großen Portion Enthusiasmus.

Gehen wir nun 4 Jahre in die Zukunft...
private Nachricht | Beiträge des Benutzers
aequitas
myCSharp.de - Member

Avatar #avatar-3079.png


Dabei seit:
Beiträge: 517
Herkunft: Unterfranken

beantworten | zitieren | melden

marco.b: Bessere Beschreibung hab ich nie gelesen.
be the hammer, not the nail!
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo marco.b,

das beschreibt nur das Problem, verschweigt aber, dass es dafür Lösungen gibt (auf die ich im Detail nicht eingehen will, weil wir hier in Smalltalk sind, deshalb nur ein kleines Stichwort: Refactoring). Und Lösungen geben muss, weil es sonst eben nach x Jahren zwangsläufig auf eine unwartbare Anwendung hinausläuft. Im Prinzip geht es doch nur darum, ob man lieber bei einer Firma arbeiten will, die an einer Lösung interessiert ist oder bei einer, bei der gesagt wird, Hauptsache es läuft (heute).

Das Teams wechseln ist sicher eine Herausforderung. Wobei der Wechsel natürlich auch mit der Unzufriedenheit über die von dir beschriebenen Situation zusammenhängen kann. :-) Sozusagen ein Teufelskreis.

herbivore
private Nachricht | Beiträge des Benutzers
marco.b
myCSharp.de - Member



Dabei seit:
Beiträge: 310

beantworten | zitieren | melden

Hi herbivore,

ja, ich behaupte, dass jedes größere Softwareprojekt langfristig aufgrund eines Verfalls altert. Dieser Verfall wird durch Implementierungen ausgelöst, die zu Beginn nicht vorgesehen waren.
Dies habe ich in einigen Firmen bei einigen größeren Projekten beobachtet. Ein Gegenbeispiel, sprich ein kerngesundes Großprojekt, ist mir noch nicht untergekommen. Für jedes Beispiel bin ich aber sehr dankbar.

Bevor ein Beispiel aufgezählt wird, bitte beachten: Ich spreche von Projekten in der freien Wirtschaft, da diese in den allermeisten Fällen durch ständig neue Anforderungen recht unvorhersehbar wachsen, da man die genauen Anforderungen der Geschäftsprozesse _zukünftiger_ Kunden nicht kennt. Das mag auf eine Treibersoftware oder eine wissenschaftl. Simulationssoftware nicht zutreffen.

Ich glaube nicht dass es pauschal immer technische Lösungen gibt, die helfen. Insbesondere hinter deinem Stichwort sehe ich keine wirkliche Lösung, da die Komplexität nicht vermindert wird, sondern nur die eigentliche, textliche Veränderung erleichtert wird. Die Analyse der Folgen einer solchen Veränderung wird damit nicht vereinfacht.
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo marco.b,
Zitat
Ich glaube nicht dass es pauschal immer technische Lösungen gibt, die helfen. Insbesondere hinter deinem Stichwort sehe ich keine wirkliche Lösung ...
ich habe nicht von Patentrezepten oder Königswegen gesprochen, sondern nur von Lösungen. Das diese Lösungen selbst wieder bestimmte Probleme aufwerfen, ist klar. Allerdings gibt es auch dafür wieder Lösungen (Stichwort: Unitests/automatisierte Tests).

Der springende Punkt ist für mich:
Zitat
Im Prinzip geht es doch nur darum, ob man lieber bei einer Firma arbeiten will, die an einer Lösung interessiert ist oder bei einer, bei der gesagt wird, Hauptsache es läuft (heute).

Abstriche von einer idealen Welt muss man natürlich auch bei Firmen machen, die versuchen, möglichst sauber zu arbeiten.

herbivore
private Nachricht | Beiträge des Benutzers
svenson
myCSharp.de - Member



Dabei seit:
Beiträge: 8775
Herkunft: Berlin

beantworten | zitieren | melden

Wenn man den Lebenszyklus eines jeden Produktes anschaut, dann ist klar, dass sich irgendwann frickeln "lohnt". Das ist schon angesichts der Überlegung klar, dass irgendwann die letzte Änderung kommt. Da ist die Schnellste immer auch die "Beste". Tatsache ist auch, dass die mangelnde Investition in die Struktur einer Software oft viel zu früh einsetzt, nicht selten von Beginn an. Meiner Erfahrung nach passiert es viel zu häufig, dass äußere Faktoren unnötigen Druck auf Projekte laden. Der zweite Fehler besteht dann oft darin, diesem Druck nachzugeben statt ihm aktiv zu begegnen, um das Projekt wieder in das Fahrwasser zu bekommen. Klassische Managementfehler.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von svenson am .
private Nachricht | Beiträge des Benutzers
svenson
myCSharp.de - Member



Dabei seit:
Beiträge: 8775
Herkunft: Berlin

beantworten | zitieren | melden

Zitat von marco.b
ja, ich behaupte, dass jedes größere Softwareprojekt langfristig aufgrund eines Verfalls altert. Dieser Verfall wird durch Implementierungen ausgelöst, die zu Beginn nicht vorgesehen waren.

In diesem Zusammenhang ein Zitat von Jens Coldeway:
Zitat
2. Hauptsatz der Softwareentwicklung
Ein Softwaresystem tendiert stets zu einem
Zustand höherer Komplexität und größeren
Chaos, wenn ihm von außen keine
Energie in Form von Entwicklungsaufwand
zugeführt wird.

Aus einem Artikel in der ObjektSpektirum mit dem schönen Titel:

"WAS SOFTWAREENTWICKLUNG MIT DER THERMODYNAMIK VERBINDET"

http://www.sigs.de/publications/os/2003/01/coldewey_OS_01_03.pdf

Nun wird die Energie die zugeführt werden muss immer mehr, weil die Komplexität insgesamt immer steigt (wer baut schon Funktionen wieder aus...). Statt einer "Energieeinheit" pro Funktionspunkt braucht man irgendwann 10 und die Software wird unbezahlbar. Dann verfällt sie.

Auf der anderen Seite hat Herbi natürlich Recht, dass deine Beschreibung von Softwareentwicklung zwar eine realistische (weil oft anzutreffende), aber zugleich auch pessimistische ist. Ein Design welches aus einem von dir beschriebenen Wasserfall-Prozess entspringt, wird immer ein schlecht zu wartendes Monster sein. Agile Entwicklung und inkrementelles Design sind aus technischer und organisatorischer Sicht "Heilmittel". Wie Medizin können sie den Tod nicht verhindern, aber die Lebenserwartung und auch die Lebensqualität (insbesondere der ENtwickler) erhöhen. Aber diese Methoden erfordern eine starke Bereitschaft zur Veränderung - sowohl persönlich als auch innerhalb der Strukuren. Weniger positiv formuliert: Sie machen Angst und erfordern daher Mut. Als "kleiner angesteller Entwickler" hat man es nicht in der Hand diese einzuführen. Bestenfalls kann man Guerilla-Taktiken anwenden. Der alleinschaffende Freiberufler oder Unternehmer hat es da leichter. Aber das sind nunmal die wenigsten...

Um wieder auf das Thema "Anstellung" zurückzukommen: Man sollte sich klar ist was für ein Typ man ist. Nicht jeder ist der intellektuelle Überflieger. Dafür sind die selten die gewissenhaften Menschen für die letzten 20%. Manche hassen es wie die Pest Unit-Tests zu schreiben. Manche haben keine Lust sich mit Fachthemen auseinanderzusetzen, sondern stehen eher darauf eine klare Anfoderung auf dem Papier möglichst schnell/kurz/performant umzusetzen.

Jeder neigt daher zu einer bestimmten Arbeitsweise. Nur eines darf es nicht sein: Unprofessionell. Chaos ist immer schlecht. Insofern bewegt sich die Welt heutzutage zwischen zwei Profi-Extremen: (Groß-) Unternehmen mit professioneller, dokumentengetriebener Entwicklung oder kleine, agile, hoch-disziplinierte Special-Forces die mit hoher Geschwindigkeit sich bewegene Anforderungen mit minimalen Reibungsverlusten "niederkoden".
Dieser Beitrag wurde 10 mal editiert, zum letzten Mal von svenson am .
private Nachricht | Beiträge des Benutzers
t2t
myCSharp.de - Member



Dabei seit:
Beiträge: 436
Herkunft: Hamburg

beantworten | zitieren | melden

Diese nette Grafik bringt es doch lustig auf den Punkt ;o)

Kundenprojekte
private Nachricht | Beiträge des Benutzers
JuyJuka
myCSharp.de - Experte

Avatar #avatar-2316.jpg


Dabei seit:
Beiträge: 2282
Herkunft: Deutschland

beantworten | zitieren | melden

Hallo,

Das Bild mit dem Baum musste ja irgend wann kommen!
Ich finde das super Witzig auber auch super traurig, weil es eben oft stimmt.

Gruß
Juy Juka
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von JuyJuka am .
private Nachricht | Beiträge des Benutzers
Golo Roden
myCSharp.de - Member

Avatar #avatar-2167.png


Dabei seit:
Beiträge: 4649
Herkunft: Riegel am Kaiserstuhl

beantworten | zitieren | melden

Zum Thema Softwarequalität siehe auch das aktuelle Streitgespräch von Peter Bucher und mir:

http://www.des-eisbaeren-blog.de/post/2009/02/01/Die-Forderung-nach-Softwarequalitat.aspx
Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de
private Nachricht | Beiträge des Benutzers
Peter Bucher
myCSharp.de - Experte

Avatar #jVxXe7MDBPAimxdX3em3.jpg


Dabei seit:
Beiträge: 6141
Herkunft: Zentralschweiz

beantworten | zitieren | melden

Hallo zusammen

Mein Kommentar:
- http://www.aspnetzone.de/blogs/peterbucher/archive/2009/02/01/die-forderung-nach-softwarequalit-t.aspx


Gruss Peter
--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

- https://peterbucher.ch/ - Meine persönliche Seite
- https://fpvspots.net/ - Spots für FPV Dronenflüge
private Nachricht | Beiträge des Benutzers
Fabian
myCSharp.de - Member

Avatar #avatar-1590.jpg


Dabei seit:
Beiträge: 1994
Herkunft: Dortmund

Themenstarter:

beantworten | zitieren | melden

Hallo zusammen,

über ein Jahr ist mein Eingangspost mittlerweile her. Jetzt wollte ich mal nachfragen, was sich bei Euch in der Zwischenzeit getan hat? Ist es schlimmer/besser geworden oder habt ihr vor der Situation endgültig kapituliert?

Mit meiner damaligen Aussage
Zitat von Fabian
Ändern kann ich aktuell und in mittlerer Zukunft aber wahrscheinlich nichts an der Situation.
lag ich ziemlich richtig. Grund genug für mich, der Firma in Kürze den Rücken zu kehren.

Vielleicht habt ihr ja Lust, ein Update zu geben.


Gruß,
Fabian
"Eine wirklich gute Idee erkennt man daran, dass ihre Verwirklichung von vornherein ausgeschlossen erscheint." (Albert Einstein)

Gefangen im magischen Viereck zwischen studieren, schreiben, lehren und Ideen umsetzen…

Blog: www.fabiandeitelhoff.de
private Nachricht | Beiträge des Benutzers
dr4g0n76
myCSharp.de - Experte

Avatar #avatar-1768.jpg


Dabei seit:
Beiträge: 3047
Herkunft: Deutschland

beantworten | zitieren | melden

@Fabian: Dann gehts Dir so wie mir.

Ich könnte euch genügend Beispiele aus unserem Coding-Style Horror geben, der bei uns generiert wird.

Neuester Super-Gau: Alle Compiler und .NET-Runtime Sicherheitsmechanismen wurden abgeschalten. Begründung: Jetzt sind die Fehlermeldungen UND die Fehler weg.

Alles schwarz/weiß gedruckte bei Microsoft und weiteren einschlägigen sehr zuverlässigen Quellen wurde mit einem "Glaub ich nicht" weggewischt.

Tja da sag ich dann nur noch: Kürbis gedeihe. ;-)
Seit der Erkenntnis, dass der Mensch eine Nachricht ist, erweist sich seine körperliche Existenzform als überflüssig.
private Nachricht | Beiträge des Benutzers
FZelle
myCSharp.de - Experte



Dabei seit:
Beiträge: 10083

beantworten | zitieren | melden

Bei uns hat es sich deutlich verbessert.

Bei uns waren Testerstellung (TDD oder BDD ) bzw Testdaten Erstellung unerwünscht, "weil das kostet zeit und bringt keinen Mehrwert für den Kunden".

Wir hatten ein Teilprojekt, das sich gut extern entwickeln liess "nebenbei" entwickeln lassen.
Entgegen der vorherrschenden Meinung des Managments habe ich durchgesetzt,
das bei der Erstellung der Lasten/Pflichtenhefte auch die Testdaten mit bereitgestellt werden müssen, und die Entwicklung mit BDD durchgeführt werden soll.

Nur mal "um zu sehen" ob sich dadurch etwas ändert.

Nachdem das teilprojekt dann fertiggestellt war, und wegen anderer Mgmt Entscheidungen erstmal auf eisgelegt lag, wurde es dann ca 6 Monate später in das Hauptprodukt integriert.
Jetzt schlugen die Tests an, und wir haben in sehr kurzer zeit alles fixen können.
Die Tester sind zufrieden, das Mgmt war erstaunt.

Jetzt machen wir SCRUM und BDD.

Evtl lesenswert dazu ist auch :
http://www.codeproject.com/KB/tips/convince.aspx
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von FZelle am .
private Nachricht | Beiträge des Benutzers