*räusper* Vielleicht sollte ich versuchen, meine Sichtweise etwas näher zu erläutern, damit ich nicht bloß als "fordernder, pubertärer Schreier" im Forum wahrgenommen werde. Jeder darf sich natürlich seine Meinung bilden, unbenommen...
Mein aktueller Tätigkeitsbereich liegt in der IT-Branche (Genaueres lasse ich mal weg). Dort bin ich als Architekt, Senior-Developer, Team- und Projektleiter unterwegs.
Über die Jahre habe ich mit einigen Mitarbeitern in diversen Projekten zusammengearbeitet. Durch abgeschlossene und neu entstehende Projekte bestand hier immer eine gewisse Fluktuation; mal geht er dahin, mal kommt sie von dort. Ich habe einige der Kollegen, die ein paar Jahre Abstand zu Projekten, in denen sie mit mir gearbeitet haben, proaktiv gefragt, wie sie es damals mit mir fanden. Ja, das interessiert mich und Feedback ist mir wichtig, was harte und auch weiche Fertigkeiten betrifft.
Diese Mitarbeiter sind schon lange aus meinem Einflussbereich heraus und brauchen sich daher nicht verstellen oder mir etwas vormachen. Das habe ich ihnen auch genau so gesagt
![Smile :)](./images/smilies/icon_smile.gif)
.
Was ich i.d.R. dabei an Feedback bekomme ist, dass sie die Zeit anfangs mit mir nicht sehr entspannend fanden, da ich dauernd an allen Ecken und Enden etwas zu bekritteln hätte, stets einen Verbesserungsvorschlag auf Lager (ich gebe das für's Publikum mal etwas negativ gefärbt wieder). Nach der Eingewöhnungsphase und nachdem festgestellt wurde, dass ich es nicht aus Oberlehrerhaftigkeit betreibe und ich auch keinerlei Problem mit ihnen als Person habe, sondern weil es mir einfach darum geht, ein gutes Produkt abzuliefern und den Blick der Kollegen auch für die Details zu schärfen (weil die es sind, die später vieles zu Fall bringen), setzte Verständnis ein. Ab da lief es super. Man konnte sich aufeinander verlassen, die gemeinsame Arbeit wurde als treibend, anspornend und befriedigend empfunden - weil man wusste, dass man ein
gutes Ergebnis mit seiner Hände Arbeit abliefert und voll dahinterstehen kann. Kein "joah, habe ich halt so hingeschmiert, funktioniert ja" sondern "ja, eine gute Arbeit habe ich verrichtet, ich kann stolz darauf sein".
Zudem hat mich etwas sehr irritiert, was ich (als bekennender Pedant) so nicht erwartet hätte: unisono kam die Rückmeldung, dass sie sich die Arbeit in den Projekten und auf die Arbeitsweise, wie sie bei mir waren, zurückwünschten. Überall Chaos, nichtzugewiesene Rollen und Verantwortlichkeiten, Lari-Fari, Deadlines, die man getrost vergessen kann, schrottiger, undokumentierter Code. Das nervt sie deutlich mehr und wird deutlich nachhaltiger als deprimierend und demotivierend empfunden als das erste halbe Jahr mit mir und meiner Projektstruktur. Ich kann es ja selbst nicht glauben; vielleicht haben sie ja doch gelogen...
Bin ich streng? --
Ja, aber konsequent und belege es aber mit Argumenten und jeder darf mich kritisieren, wenn er Argumente hat. Ich habe kein Problem damit, korrigiert zu werden, da konnte ich eben noch etwas dazulernen. Ich habe schon viele Ideen von Kollegen übernommen, weil sie dann doch einfach besser waren
Verlange ich Perfektion? --
Nein
- die kleinen LEDs haben einen Pixelversatz im Vorschaubild, sieht man besonders gut bei der roten LED --
geschenkt
- wenn man unter Android die Animationen ausgeschaltet hat, öffnet sich das, von unten einblendende, Lampenauswahlmenü nicht --
da die Wenigsten die Animationen unter Android ausschalten oder dazu in der Lage sind, ist dies nicht sonderlich relevant. Wenngleich die Lupine-App die einzige App ist, die dadurch ein Problem bekommt
Erwarte ich fehlerfreie Enduser-Funktion? --
absolut
Es ist ja nicht so, dass bloß das (sogenannte) Gimmick der Vorschaufunktion nicht funktioniert (wartet mal ab, wenn ihr erlebt, wie genial das ist, dann empfindet man es nicht mehr als Gimmick) - es sind alle Funktionen, die über das Kommando
m an den Lampenkopf gehen, weil das Protokoll fehlerhaft implementiert ist.
Dass es bei der Alpha (noch) funktioniert, liegt daran, dass die noch kein Firmware-Upgrade bekommen hat.
Sobald hier die Software-Version des Lampenkopfes einen hoch geht, wird auch bei ihr die Verbindung abbrechen.
Für die Blika gibt es zwei Möglichkeiten, das Problem zu fixen:
- der quick'n'dirty Weg: in
Peak.dll, Klasse
DevicePeak, die beiden überladenen Methoden
GetModeMessage: statt stets eine
0 einfach stets eine
1 (das ist die aktuelle Software-Version der Blika) in
array(1) schreiben. Klappt super, bis das größere Firmware-Update kommt (wird es vermutlich nicht geben, ist dennoch die schlechte Lösungsvariante)
- der bessere Weg: statt stets
0 hineinzupinnen besser
Status.getSoftwareRevision nehmen, dann ist für alle Zeit Ruhe. Die App V1 konnte das doch auch.
Gleiches, wie schon erwähnt, analog für
DeviceAlpha.
Ich gebe zu, ich bin etwas gespannt, wie das ausgeht
Im Grunde finde ich es schade.
Die App ist an sich supergut geschrieben. Schöne Kapselung der businesslogic, schönes Model, alles sauber getrennt.
Ja, wirklich! Mein Lob!
Klar, durch Xamarin holt man sich tonnenweise bloat (und Abhängigkeiten und Fehler) rein, weil man die Apple-Seite bedienen möchte, aber hey, vielleicht gibt es da auch mal ein Update, was in die nächste App-Version einfließt und so die Bugs unter Android schließt.
Schade, dass es dann an so dummen Details scheitert. Damit meine ich nicht so Dinge wie unschön platzierte Grafikoverlays.
Und ja, ich überlege dann, wie der QS-Prozess aussieht...
Klar, Lupine ist in allererster Linie ein Hardwareladen, Alu fräsen, Lampen löten - alles super. Die Hardwarequalität kann sich sehen lassen und hat mich ja auch überzeugt, hier Geld zu investieren.
Der Hardware-Support ist ebenfalls sehr gut, nach dem, was man hier so hört.
Der Software-Teil ist neu für Lupine (naja, ganz so neu auch nicht), daher gibt es hier sicher noch zu lernen und Prozesse aufzubauen.
Im Gegensatz zu Hardware ist Software deutlich - deutlich - schnelllebiger, was zu Beachten gilt.
Ein Bug mit Customer-Impact - für Monate ungefixt? Unverzeihlich!
Software lässt sich schnell editieren, kein großes retooling nötig. Mit Hinweisen findet man auch komplizierte Bugs spätestens in ein paar Tagen. Das automatische build-System kompiliert die Anwendung, signiert sie und stellt sie in den App-Store; in Minuten.
Es gibt keine fehlerfreie Software, die gibt es schlicht nicht. Und niemand mit etwas Verstand erwartet soetwas. Ich denke, Informatik ist kompliziert. Sicher nicht so kompliziert wie Molekularbiologie, aber doch.
Außerdem basiert in der IT vieles auf importierter Funktionalität. Eine Library für den Zweck von hier, eine für den Zweck von da, Xamarin für Android&Apple von dort, usw. Es ist im Grunde ein riesiger geschichteter Turm: alles baut aufeinander auf, muss sich auf die Ebene darunter verlassen können.
Dem muss man Rechnung tragen. Denn alle diese importierten Libraries sind ebenfalls nur Software. Ebenfalls fehlerbehaftet. Enorm fehlerbehaftet, da sie in der Regel recht komplex sind (beliebes Kredo: Komplexität lagert man aus, um den eigenen Code schlank zu halten).
Das ist okay. Man muss es nur berücksichtigen. Und das heißt, man muss seine Softwareprodukte pflegen. Regelmäßig und in kurzen Abständen. Software muss gepflegt werden und gerade Apps müssen dies noch so viel mehr, da sich hier die Libraries, die Tools, das ganze Ökosystem innerhalb sehr kurzer Zeit verändert. AndroidStudio,
gradle (über eintausend Releases bei über sechzigtausen checkins) und wie die Tools alle heißen, sind nur zu einem gewissen Grad abwärtskompatibel. Wenn man zu lange wartet, wenn man alles aussitzt, bleibt man, wortwörtlich, auf einem unwartbarem, da unkompilierbaren, Softwareblob sitzen, den man erstmal wieder auf den aktuellen Stand migrieren muss, bevor es weitergehen kann. Siehe dazu auch:
Technical Dept.
Softwarequalität ist ein Gesamtprozess, den man vollständig und bewusst leben muss, sobald man etwas mit Software macht.
Zudem hat Lupine das - m.M.n. - Risiko, die Anwendung außer Haus entwickelt zu haben, sie sind also dem Zulieferer ausgeliefert und besitzen selbst (noch) keine Kompetenz.
Sagt der mal "Keinen Bock, keine Kapazität" bleibt Lupine sitzen.
Man kann den Sourcecode (ich hoffe, der Code gehört euch und nicht dem Zulieferer!!) dann zwar jemand anderes übertragen oder gleich online stellen und von der Community pflegen lassen, aber ersteres wird sehr teuer, da in einer solchen Zwangslage die Preise steigen und letzteres kann ich mir nicht realistisch vorstellen...
Ich habe keine Einblicke in eure Strategie diesbzgl. und will es eigentlich auch gar nicht, habt es nur bitte im Hinterkopf.
Also Sturm im Wasserglas? Ja. Und Nein.
Ich möchte bei euch um Entschuldigung bitten, falls auch das mal wieder überheblich, arrogant usw. herüberkam oder eure Zeit verschwendet hat.
Dieses Posting enthält sowieso nur Meinung und nichts Substanzielles.
Vielen Dank.
PS: Ich mag meine Blikas, die habt ihr wirklich gut hinbekommen!