Hallo Leute,
hätte mal ein paar Fragen an erfahrende Web-Programmierer.
Wir haben hier ein Team über verschiedene Abteilungen - einmal SAP
Leute, ein Middleware Team (IBM WTX) ein UI Team und ein Web
Design/Programmier Team am Arbeiten an einer eigentlich trivialen
Geschichte. Im Grunde ein hübsches Web-Frontend zu SAP für
Einkaufsanforderungen für den gelegentlichen User - eigentlich mehr oder
weniger 1 abgespeckter Hauptdialog (im Vergleich zu SAP) und 1 Dialog
für Voreinstellungen.
Alle Teams haben ihren Part relativ schnell erledigt - nur der
Webprogrammierer bastelt nun schon über anderthalb Monate daran herum
(Background: HTML5, Java, MS Web-Server, Oracle-DB). Es sind wirklich
vielleicht 15 Felder auf einer Hauptseite. Ein paar Gimiks
(Auto-Vervollständigen von Feldern, Nachschlagen von erlaubten Codes,
etc.), nix wirklich ungewöhnliches. Das ganze Design steht, auch die DB
Strukturen, alles da.
Was mir auffällt (als Laie im Webdesign/-Programmierung):
Es wird alles zu Fuss gemacht. WYSIWIG Tools kommen nicht zum Einsatz.
Darauf angesprochen, sagen die Web-Leute, das ist so - es würde in dem
Umfeld mit (Java) Tool Libraries gearbeitet, WYSIWIG Tools (ala Visual
Studio) gäbe es zwar, aber die taugen nichts.
Als Konsequenz scheint aber selbst ein banales Nachbauen des Prototypen
(von den UI Leuten) ewig zu dauern. Was man in Visual Studio grad mal so
zusammenklicken würde mit 80% Funktionalität (nur als Beispiel), dauert
da Wochen.
Nun will ich da mal nachforschen - ist das wirklich so, muss das so
sein, macht da eine Gruppe 'machen wir schon immer so', oder ist das
tatsächlich schlichtweg wirklich so aufwändig?
Sagt mir halt mal Eure Erfahrungen und ggfs. Ratschläge zum Thema
Webprogrammierung - ganz allgemein.
Danke!
Proggi schrieb:> Wir haben hier ein Team über verschiedene Abteilungen - einmal SAP> Leute, ein Middleware Team (IBM WTX) ein UI Team und ein Web> Design/Programmier Team am Arbeiten an einer eigentlich trivialen> Geschichte.
Wenn an einer eigentlich trivialen Geschichte ein halbes Dutzend Leute
aus verschiedenen Abteilungen arbeiten, dann ist es alles, aber keine
triviale Geschichte. ;-)
Das erzeugt auf jeden Fall einen Abstimmbedarf und ganz schön Overhead,
keine Frage. Typisch Grossunternehmen, eben.
Darum geht es jetzt aber nicht so sehr - die Abstimmung und die
Vorarbeiten (SAP Interface, Middleware-Mapping, Design-Prototyp, etc.)
sind geleistet. Es geht also hier konkret bei meiner Frage wirklich nur
noch um die Implementierung der 2 Web-Dialoge bzw. welche
Produktiv-Tools es da womöglich gibt, die wir nicht verwenden.
Da suche ich Tipps, wie man das besser machen könnte.
Also die Weigerung zu WYSIWYG-Tools kann ich als Webentwickler
nachvollziehen. Die Meisten sind wirklich Murks. Das einzig brauchbare
ist da tatsächlich noch das VS für ASP .NET. Ob man so lange für die
Umsetzung brauchen sollte, kann man schwer abschätzen, da man nicht in
der Firma bzw. Abteilung sitzt und es schon extrem von der Kommunikation
und der allgemeinen Umgebung abhängt
So wie du das erzählst ist das von einem Mann an einem Tag erledigt.
Auch (bzw. gerade ohne) WYSIWYG-Tools. Das ist oft schon OK wenn man das
alles "zu Fuß" macht. Mit den richtigen Frameworks geht das ganz flott.
Aber ich kenne die Corporate-Welt, und da ist dann nichts mehr so
einfach. Die Wertehilfen sind dann kontextspezifisch, hier eine
Speziallogik, dort eine Sonderbedingung...
Und dann reden am Frontend auch viele Leute mit die einfach mitreden
möchten ohne Ahnung zu haben. Aber beim Layout kann halt schnell mal wer
seinen Senf dazugeben. Dann ist das tolle, vom Framework geschenkte
Layout zwar schön, aber die Schrift soll doch ein bisschen größer sein
und der Button weiter links. Und schon beginnt die zeitaufwändige
Kleinarbeit.
Proggi schrieb:> (Background: HTML5, Java, MS Web-Server, Oracle-DB)
Wenn ich das schon höre, wird mir schon schlecht. Wahrscheinlich gibt es
Leute, die das in 5 Tagen alleine runterbrechen, inklusive Tests. Aber
wer sowas nicht immer macht, den kann man nur bedauern, wenn er so eine
langweilige und ätzende Aufgabe bekommt. Da wird echt die
Leidensfähigkeit geprüft. Das einzige, was ich in dem Bereich ganz
erträglich finde, ist, wenn man mit einem Servlet eine (z.B.
JSON-basierte) RPC-Schnittstelle baut und dann darauf aus einem
Rich-Client zugreift, den man mit GWT entwickelt. Da lässt sich dann
ohne den web-typischen Mist ohne Bauchschmerzen eine hübsche Oberfläche
bauen, die in jedem modernen Browser läuft. Alles andere ist für
Masochisten.
S.
Während die einen Entwickler genau wissen, auf welchen Systemen u.
Umgebungen ihre Teile laufen, kann das der Webentwickler nicht
vorhersagen.
Der Nutzer kann verschiedene Browser verwenden, welche nicht jede
Technik gleich unterstützen, die Endgeräte können Desktops bis Handy
sein, das Verhalten der Browser ist unterschiedlich bei gleichem Code
(Browserweichen) usw.
Zudem hört sich das so an, das in den anderen Teams mehrere Leute, beim
Webteam nur 1er beteiligt ist?
WYSIWYG-Tools generieren teilweise merkwürdigen bis unbrauchbaren Code,
meist unnötig aufgebläht u. schlecht wartbar, weshalb man bei
ernsthaften Einsatz gut drauf verzichten kann.
Proggi schrieb:> Alle Teams haben ihren Part relativ schnell erledigt - nur der> Webprogrammierer bastelt nun schon über anderthalb Monate daran herum> (Background: HTML5, Java, MS Web-Server, Oracle-DB). Es sind wirklich> vielleicht 15 Felder auf einer Hauptseite. Ein paar Gimiks> (Auto-Vervollständigen von Feldern, Nachschlagen von erlaubten Codes,> etc.), nix wirklich ungewöhnliches. Das ganze Design steht, auch die DB> Strukturen, alles da.
Wenn das in deinen Augen schon fast fertig ist und nur noch ein paar
triviale Handschläge fehlen, dann unterstütze den Webprogrammierer doch
ein bisschen. Die kleinen Gimiks können einen im Detail schon mal
beschäftigen, auch wenn hinterher keiner mehr die Kleinarbeit sieht.
Warum muß man das auch immer so kompliziert machen.
SAP kann das ohne fremde Hilfe. Ob WebDynpro oder BSP (das ABAP
Gegenstück zu ASP und JSP), zwei Seite zum sammeln von BANF Daten sind
kein Hexenwerk, für das man große Teams braucht. Und alles was man so
für ordentliche Transaktionen und viele User braucht, hat man gleich
dabei. Mit UI5 lassen sich auch die fancy Sachen machen, die man heute
so braucht. Nur sollte man sich in so ein SAP-System auskennen. Aber ich
hab leicht reden. Nach inzwischen 24 Jahren ABAP. (Da merk ich erst, wie
alt ich schon bin ;-)
Ja, das geht den meisten so :)
Fakt ist, dass ich in dem ganzen Dilemma ein Hauptproblem sehe: zu viele
Häuptlinge und keine Indianer. Wieso x Abteilungen, wieso x Teams, wieso
diese langen Wege? Der einzige Punkt der Entwicklung, an dem sich Kosten
sparen lassen ist die Kommunikation: kürze das auf das nötigste und
schon stellt sich Produktivität ein. Kürze im Gegensatz die
Werkzeugkosten eines Mechanikers auf das nötigste und schau was
passiert.
Aus 10 Jahren Webprogrammierung sehe ich da neben bereits angesprochenen
Koordinierungsproblemen höchstens die Schnittstellen als mögliche
Problemquelle.
Das erstellen des HTML machen Entwickler normalerweise wirklich von
Hand, da es so schneller geht*, der Code sauberer ist und man vorallem
weiss, was dabei rauskommt. Wer hier auf WYSIWYG setzt benutzt entweder
spezielle Frameworks die kaum anderes zulassen (Vaadin etc) oder ist
nicht in der Lage die 30 Zeilen Html zu tippern.
*professionalität vorrausgesetzt
Proggi schrieb:> Alle Teams haben ihren Part relativ schnell erledigt ...> Das ganze Design steht, auch die DB Strukturen, alles da.> nur der Webprogrammierer bastelt nun schon über anderthalb Monate ...
Naja ... nachdem man sich mal 'ne Stunde mit 'nem Zettel und 'nem
Bleistift hingesetzt hat, hat man die Strukturen der Datenbank aufgemalt
und klickt letztendlich noch drei mal mit der Maus und fertig ist's.
Design ist ... je nach Komplexität ... auch in zwei bis drei Stunden
erledigt. Gerade dann, wenn Du sagst, dass nur ein paar Eingabefelder
angeordet werden sollten.
Und jetzt kommt der Programmierer, der die komplette Logik aufbauen
darf. "Gimmicks" (lustiges Wort, wenn man keine Ahnung hat, welcher
Aufwand hinter der Realisierung steckt) wie "Auto-Vervollständigung" ...
also auch noch den ganzen programmiertechnischen Aufwand für die
Faulheit der Leute.
Mit Sicherheit auch noch annähernd unendliche Beziehungen der einzelnen
Eingabefelder zueinander, also: wenn Feld1=X, dann darf Feld2 nicht
gleich Y sein, dafür aber Feld7 auf inaktiv und falls sich der
"unbedarfte" Anwedner auch noch verschreibt oder verklickt, darf der
ganze Rotz nicht in der Datenbank landen und es muss auch noch ein für
den Computer-Unerfahrenen eine verständliche Fehlermeldung generiert
werden.
Was ich sagen will, ist, dass die komplette Logik der Anwendung im
HTML/Java steckt ... und nicht im Design oder im Erstellen der
Oracle-DB.
Deshalb dauert diese Entwicklung auch länger.
Grüße
Grundsätzlich ist Web-Programmierung nicht kompliziert, der Teufel sitzt
- wie immer - im Detail.
Da wären z.B. eine Fülle von Maßnahmen, die notwendig sind, um die
unterschiedliche optische Darstellung mit ind ohne CSS in verschiedenen
Browsern abzufangen. Wie immer spielt z.B. der sch... IE eine
Sonderrolle - M$ kann es einfach nicht lassen, geltende Standards zu
ignorieren (z.B. auch SVG oder Inline-Imgs) oder zu torpedieren. Hinzu
kommen "ganz normale" Bugs.
Das nächste Problem ist die "Härtung" gegen Angriffe (Cross-Side
Scriptung usw.) und Bugs. Solche Maßnahmen machen oft ein Vielfaches der
eigentlichen "Webgestaltung" aus ...
Nachtrag: Man kann den Aufwand aber übersichtlich halten und das Projekt
so gestalten, dass man es "schichtenweise" in Betrieb nimmt, wenn man es
geschickt anlegt. Dazu gehört eine "schichtenweise" Abstraktion und
Programmierung:
- man kann einen echten Web-Grafiker hinsetzen, der eine GUI entwirft,
die wirklich ergonomisch, sinnfällig und optisch ansprechend ist. Gerade
die Oberflächen, die von Technikern entworfen werden, sind für
Aussenstehende meist vollkommen unbrauchbar
- man kann einen Programmierer hinsetzen, der die Funkionalität der GUI
umsetzt (HTML, CSS)
- man kann in einer Ebene dahinter die Plausibilitäten checken (JS)
- nam kann in einer weiteren Schicht dahinter die DB-Zugriffe regeln
(PHP)
Jede dieser Schichten kann einzeln erstellt und getestet und geupdatet
werden, Stichworte: Funktionen, Kapselung, API ... Man muss es nur
organisieren.
Danke, Leute, das sind gute Kommentare, die mir auch helfen, das besser
zu verstehen und ggfs. zu vermitteln.
Ich versuche noch zu verstehen, was man vielleicht anders machen kann,
um solche Vorhaben zu beschleunigen. Es wird ja nicht das letzte bei uns
sein. Es wird ja viel über 'Agile Development' und andere schnelle
Entwicklungsmethoden und Tools gesprochen. Kann man damit was in der
Praxis anfangen bzw. welche anderen Tools, Methoden wendet ihr an? Am
Schluss kann man irgendein Tool kaufen, dass uns hilft, und wir kennens
nicht, oder jemand hat Angst davor ein paar Tausender in die Hand zu
nehmen.
Merci nochmal!
HTML, PHP, und MySQL sind eine Katstrophe. Ich hab auch grad ein Projekt
hinter mir. PHP ist nichttypisiert und teilweise skuril. Das
Stringhaendling erscheint auf den ersten Blick einfach, auf den Zweiten
ist es eine Katastrophe. Wenn man einen String im Browser dartellen
will, muss man sonderzeichen codieren, Wenn man einen String uebertragen
will, muss man es anders codieren, und wenn man ihn an MySQL uebergeben
will, nochmals anders.
Bei MySQL sind auch die String ein Problem. Dort gibt es
ruckwaerts-Apostrop, und Apostroph der Sorte '39, sieht aus wie ein
Microsoft Apostroph, ist es aber nicht. Wenn man also etwas mit Windows
copy pastet hat man einen Fehler, der kaum zu finden ist. Vielleicht
eine kryptische idiotische Fehlermeldung, oder auch gar nichts. Die
Debugmoeglichkeiten von alledem ist arg begrenzt. Auf eine Stufe unter
printf(). Denn das Fenster, wo man drauf schreibt wir vielleicht grad
durch ein Neues ersetzt, dh die "printf()" gehen in den Dreck.
Ohne farbunterstuetzten Editor wir zB Notpad+ kann man sich gleich einen
Strick besorgen.
Siebzehn mal Fuenfzehn schrieb:> HTML, PHP, und MySQL sind eine Katstrophe.
Hört sich echt nach Frusterlebnis an. Aber warte mal, kühle etwas ab und
es gibt sich wieder. PHP ist nicht "untypisiert", sondern verfügt über
das Top-Feature "automatic type casting" :-) (Javascript übrigens auch).
Die Verwendung eines "richtigen" Editors ist ja wohl das Mindeste
(Notpad++ oder Editra). Man könnte auch eine ausgewachsene IDE
verwenden, z.B. das auf Eclipse beruhende Aptana Studio. Ohne
vernünftiges Werkzeug ist Frust natürlich vorprogrammiert ...
An den TE: Auf irgendwelche "Wundertools" brauchst du nicht zu hoffen,
das Wichtigste ist Organisation und Projektmanagement. Das kann man mit
Tools unterstützen, aber Ausdenken und Einrichten muss man erstmal
selber.
Siebzehn mal Fuenfzehn schrieb:> HTML, PHP, und MySQL sind eine Katstrophe. Ich hab auch grad ein Projekt> hinter mir. PHP ist nichttypisiert und teilweise skuril. Das> Stringhaendling erscheint auf den ersten Blick einfach, auf den Zweiten> ist es eine Katastrophe. Wenn man einen String im Browser dartellen> will, muss man sonderzeichen codieren, Wenn man einen String uebertragen> will, muss man es anders codieren, und wenn man ihn an MySQL uebergeben> will, nochmals anders.> Bei MySQL sind auch die String ein Problem.
Selten so einen Unsinn gelesen. Wenn ihr Windows-Bastler mal was
einheitlich machen würdet, dann wäre das ganze kein Problem. Einheitlich
bedeutet hier: Gleiche Kodierung in allen Teilen, sinnvollerweise UTF-8.
Man hat nur Probleme mit "Sonderzeichen", wenn man bei jedem Teil eine
andere Kodierung benutzt. Der Windows-Bastler arbeitet natürlich mit
ISO-8859-1 (Latin1) und den das dann so an den Browser. PHP arbeitet
(endlich) komplett mit UTF-8.
Das einzige was man wirklich kodieren (mit k am Anfang nicht c) muss,
sind die paar HTML-Zeichen. Dafür hat PHP die nette Funktion
htmlspecialchars ().
Auch MySQL hat keinerlei Probleme mit Strings.
mysql_real_escape_string() für MySQL eigene Steuerzeichen und die Sache
ist fertig.
Marcus W. schrieb:> Der einzige Punkt der Entwicklung, an dem sich Kosten> sparen lassen ist die Kommunikation: kürze das auf das nötigste und> schon stellt sich Produktivität ein.
Die Gefahr, dass Projekte wegen ZUVIEL Kommunikation aus dem Ruder
laufen, schätze ich als eher gering ein.
Proggi schrieb:> Es wird ja viel über 'Agile Development' und andere schnelle> Entwicklungsmethoden und Tools gesprochen.
Lass dich nicht von den Modeworten einlullen. Schnell was vorzaubern,
dass schon so aussieht, als ob es funktioniert, hilft dem Kunden primär
zu erkennen, was er eigentlich möchte, um die Zahl der
Entwicklungsschleifen klein zu halten. Programmiert werden muss es
trotzdem noch.
Schnell mal hinklatschen funktioniert bis zu einem gewissen Grade und
wird zur Stolperfalle, sobald das Projekt größer wird oder später
Features hinzukommen sollen, i.e. das ganze auch wartbar sein soll.
Was sind denn eigentlich die Anforderungen?
Soll es auch ohne js funktionieren?
In welchen Browsern soll es richtig aussehen, in welchen noch
funktionieren?
Was ist mit Smartphones?
Welche Zeichensaetze sollen unterstützt werden? Nur europäische oder
darf da auch ein Chinese seinen Name ohne transcription eingeben?
Wie viele Zugriffe pro Sekunde sollen noch stabil laufen?
Je extensiver die Antworten, desto mehr Aufwand wird das.
Hi Frank,
Frank Esselbach schrieb:> Hört sich echt nach Frusterlebnis an. Aber warte mal, kühle etwas ab und> es gibt sich wieder.
Nein, das gibt sich nicht. PHP ist wirklich eine absolute Katastrophe
und MySQL ein schlechter Abklatsch von einer Datenbank.
> PHP ist nicht "untypisiert", sondern verfügt über> das Top-Feature "automatic type casting" :-)
Genau, und das beißt Dich dann genau da hin, wo die Sonne nicht scheint.
Zum Beispiel wenn Du ein PHP-"Array" hast:
1
<?php
2
$a=Array("1"=>"eins",2=>"zwei");
3
print$a[1]." ".$a['2']."\n";
Man faßt es nicht, aber das gibt tatsächlich "eins zwei\n" aus!
In jeder Programmiersprache gibt es so ein paar wenige Ecken, wo die
Sprachdesigner sich verhauen haben. In PHP hingegen gibt es ein paar
wenige Ecken, wo die Designer mal was richtig gemacht haben!
HTH,
Karl
Karl Käfer schrieb:> <?php> $a = Array("1" => "eins", 2 => "zwei");> print $a[1] . " " . $a['2'] . "\n";>> Man faßt es nicht, aber das gibt tatsächlich "eins zwei\n" aus!
Ohne es getestet zu haben, halte ich es für keine gute Idee, Variablen
mal mit, dann mal ohne und dann auch noch je nach Lust und Laune mal mit
einfachen und mal mit doppelten Anführungszeichen zu nutzen.
Grüße
Sebastian L. schrieb:> Marcus W. schrieb:>> Der einzige Punkt der Entwicklung, an dem sich Kosten>> sparen lassen ist die Kommunikation: kürze das auf das nötigste und>> schon stellt sich Produktivität ein.>> Die Gefahr, dass Projekte wegen ZUVIEL Kommunikation aus dem Ruder> laufen, schätze ich als eher gering ein.
Sehe ich auch so. Zu viel Kommunikation per se kann es zwischen den
Entwicklern kaum geben. "Von Natur aus" kommunizieren Entwickler doch
wohl eher wenig. Wer viel quasselt, ist kein Entwickler sondern Manager
oder im Vertrieb ;-)
Aber: Es kann sein, dass zu viele Akteure beteiligt sind und sich die
Zahl der Kommunikationswege dadurch sehr stark erhöht. Dann verbringt
man notgedrungen einen großen Teil der Zeit mit Koordination, weil
ansonsten das Projekt komplett den Bach runtergeht. Das geht natürlich
entsprechend von der Zeit für die Entwicklung ab.
Ich habe es zuerst selbst nicht glauben wollen, aber es kann tatsächlich
zu viele Entwickler in einem Projekt geben. Wenn dann noch eine
mangelhafte Koordinierung durch die Projektleitung hinzukommt, ist das
ein erstklassiges "recipe for desaster". ;-)
Proggi schrieb:> Ich versuche noch zu verstehen, was man vielleicht anders machen kann,> um solche Vorhaben zu beschleunigen.
Nun, ohne Deine Organisationsstruktur zu kennen, ist es leider
schwierig, zu sagen, was ihr anders machen könnt.
Wichtig ist neben der grundsätzlichen fachlichen Qualifikation der
Programmierer und genügend "men power" eben auch das
Weiterbildungsangebot und die Beschaffung benötigter Lektüre. Gerade im
öffentlichen Dienst werden oft "frische Bachelor" oder FIAE für
teilweise weit weniger als 35k€/Jahr eingestellt und dementsprechend
gering ist dann auch die Erfahrung und Motivation.
Programmierer benötigen i.d.R. ein ruhiges Arbeitsumfeld. Wenn dort
zusätzlich auch noch first level support geleistet werden soll, wenn bei
Fräulein Müller mal wieder der Drucker spinnt oder die
wer-kennt-wen-Site nicht aufgeht, dann war's das mit der Konzentration
für die eigentliche Aufgabe.
Ich habe keine Ahnung, ob Akkord-Programmierung in Indien funktioniert
bzw. ob Du Dir etwas Ähnliches für euch wünscht. Ich persönlich halte
jedoch sechs Wochen für die sauber ausentwickelte Programmierung einer
Webanwendung mit Datenbankanbindung für durchaus akzeptabel. Wie gesagt,
ich kenne die Anwendung nicht und kann hier nur grob einschätzen. Ich
befürchte aber, Du kannst den Aufwand genauso wenig abschätzen wie ich,
wenn Du bereits "Auto-Vervollständigung" und "Nachschlagen von erlaubten
Codes" als "Gimmick" und "nix wirklich Ungewöhnliches" abtust. Die
Geringschätzung komplexer Funktionen führt am Ende vermutlich dazu, dass
Du ein schelleres Tempo erwartest.
Irgendwelche Klickibunti-Tools kannst Du, wie vielfach schon erwähnt,
vergessen. Der Code, der daraus erzeugt wird, ist i.d.R. eher schlecht
und höchstens für den total Ahnungslosen überwältigend schön.
Es ist oft schwierig, die Produktivität eines Programmierers in Zahlen
zu messen (auch wenn das jeder SAP-Fanboy weiterhin glaubt) und ich
hoffe, dass es auch nicht Deine Aufgabe ist. "Unausgegorene" und
halb-fertige Software führt am Ende nur zu komplettem Frust auf beiden
Seiten (Anwender und Entwickler) weshalb manche Programmierer dazu
neigen, den Launch noch ein wenig zu verschieben. Auch hier bräuchte man
wieder Informationen über Deine Organisationsstruktur um zu sehen, wie
es bei euch mit dem Qualitätsmanagement aussieht.
Man kann nicht beurteilen, ob Du zu ungeduldig bist oder ob Ritalin
vielleicht helfen würde. Man kann aus der Ferne weiterhin nicht
beurteilen, wie komplex eure Anwendung ist und ob euer Programmierer
eher faul oder bereits komplett überlastet oder vielleicht auch
überfordert ist.
Das sind Fragen über Fragen und Du wirst es auch nicht schaffen, dies
für Fremde in einem Internet-Forum ausreichend objektiv darzustellen um
eine aussagekräftige Bewertung der Situation erhalten zu können.
Trotzdem hast Du, denke ich, genügend Informationen erhalten, die Dir
vielleicht ein wenig helfen können.
Grüße