Beratung Umstellung Continuous Integration

Prinzenrolle_

Lt. Commander
Registriert
Sep. 2007
Beiträge
1.965
Guten Tag

Ich arbeite als Programmierer und unser Arbeitsmodell, welches wir Pflegen, ist definitiv in die Jahre gekommen.
Modelle wie Agile kennen wir hier nicht, wie auch z.B. CI / CD. Wir arbeiten auch noch mit Perforce, was das ganze auch noch erschwert.
Nun, das Hauptproblem bei uns ist, dass wir Updates noch von Hand machen müssen (unsere Software wird nächstes Jahr 20 Jahre alt) und ist dementsprechend riesig. Es handelt sich um eine Branchenlösung, welche ich nicht genauer spezifizieren möchte.
Nun, was ich eigentlich suche, sind Erfahrungen, Beratungen, Tipps etc. wie man eine Firma mit solch einer alten Software bzgl. Arbeitsmodell ins 2018 katapultieren könnte. Ich bin mir bewusst, dass es in solch einer Situation keine Masterlösung gibt und der grösste Teil von der Firmenphilosophie abhängig ist, aber wir müssen unbedingt einiges ändern...
Das grösste Problem ist: wir haben auch keine automatisierten Tests... Wir haben keine automatisierten Builds. Unsere Software ist riesig und wir können nicht auf der grünen Wiese starten.

Ich würde mich einfach über ein paar Meinungen, Erfahrungen freuen. Es können auch einfach Links oder Tipps zu Büchern sein. ich freu mich über jeden Input. Besten Dank euch!
 
Deine Aussagen verwirren mich etwas, willst du nun die Firma und die Firmenkultur nach heute holen oder nur eure Software? Für letzteres sehe ich nur ordentlich Geld in die Hand nehmen und Leute engagieren die davon Ahnung haben.

An der ersten Problematik ist in erster Linie die Geschäftsführung zur Verantwortung zu ziehen. Wer rastet der rostet...

Wenn du im Angestelltenverhältnis bist, würde ich mir was neues suchen.
 
Also Bücher werden euch erstmal nicht helfen sondern externe Consultants ... bspw. Oose. Schön wäre es, wenn auch wirklich ein Änderungswunsch von euch da wäre und ihr vielleicht sogar Ziele/Wünsche definiert könntet, wie eure Arbeitswelt aussehen sollte.

Grade weil eure Software "riesig" ist, sollte da professionelle Hilfe ran. Da kann ein Forum wenig helfen. ;)
 
Hey

Danke schon mal. Nun, die Software sind sie momentan dran. Bitte nicht lachen, wir Wechseln momentan von Java 1.6 zu 1.8 und von ANT zu Gradle. Unit Tests gibt es keine.
Die Software an sich will ich mit dieser Frage nicht verändern. Ich suche nach Vorschlägen etc. bzgl. wie man Continuous Integration in die Firma bringt. Weniger in technischer Sicht sondern eine mögliche Vorgehensweise.
Ich bin Angestelltenverhältnis und arbeite noch kein Jahr hier... Ich studiere momentan noch und wechsle eigentlich vom IT Supporter zum Programmierer, weshalb ich zuerst dachte, meine Bleibe hier sollte länger sein. Interessanter weise hab ich das mit neue Anstellung suchen scho öfters gehört... Dennoch reizt mich die Herausforderung die Entwicklung hier ein wenig zu automatisieren...
Ergänzung ()

_killy_ schrieb:
Grade weil eure Software "riesig" ist, sollte da professionelle Hilfe ran. Da kann ein Forum wenig helfen. ;)


Nun doch. Auch da kann ein Forum helfen ;-) Bzw. schon mal mit deinem Tipp hast du mir weiter geholfen. Es ist mir bewusst, dass ich der Firma keine Lösung auf dem Tablett servieren kann, aber gewisse Vorgehensweisen sind je nach dem möglich?
 
Also ich sag mal so, wenn ihr euch nicht selbst zu helfen wisst, müssen halt externe Fachleute ran. Und wenn der Chef in den letzten 10 Jahren nicht Willens war diesen Weg zu gehen um die eingemottete 20 Jahre alte Software zu modernisieren und am liebsten alles Inhouse machen lässt, um nur ja kein Geld auszugeben, dann lässt sich ja schon eine kränkelnde Firmenpolitik erkennen. Ich meine ihr macht Software - etwas kurzlebigeres gibt es wohl kaum. Der Chef dieser Firma wäre wohl besser im Möbelbau aufgehoben...ist langlebiger.
Ergänzung ()

Und klar hat man als Berufseinsteiger noch Ambitionen, aber wenn die Firma schon so lange aufm nassen Lappen pennt ist Hopfen und Malz verloren.
 
Hallo Prinzenrolle,

ja das ist ein großes Thema ich würde auch vorschlagen sich erstmals intensiv mit dem Thema zu beschäftigen. Dieses Thema wirst du nicht innerhalb von 4 Wochen lösen können.

Als erstes solltest du mal prüfen ob die Rückendeckung von deinen Chefs hast. Es geht darum diverse Prozesse und Arbeitsvorgänge anzupassen. Wenn ihr schon so lange an dem Stück Software arbeitet gibt es sicherlich eingefahrene und undefinierters und dinge die man schon immer so gemacht hat.

Ich würde euch Vorschlagen mal auf eine Konferenz gehen und sich diverse Voträge anzuschauen.

https://www.continuouslifecycle.de/

Der Preis ist happig lohnt sich aber von der Schweiz aus kannst du ab Basel mit dem ICE bis Mannheim duch fahren :-)

Sonst schau hier mal auf dem Blog

https://blog.codecentric.de/

kannst auch Beratung in Anspruch nehmen.

oder hier

https://t2informatik.de/blog/projektmanagement/die-agile-organisation/


Software testen schaue mal hier https://www.qytera.de/ du kannst das als Dienstleistung einkaufen


Also du solltest das mal im Team besprechen welche Tools ihr aktuell nutzt sowie diese noch aktuell sind oder durch neuere die dem CI entsprechen auch funktionieren.


Auch könnt ihr euch überlegen unit test einzubauen, dies geht relativ problemlos ab einem datum x schreibt ihr immer einen unit test zu euren neuen funktionen, dann zieht man die alten funktionen stück für stück nach, das geht auch nicht sofort sondern dauert etwas, geht aber

https://de.wikipedia.org/wiki/Modultest

https://www.it-agile.de/wissen/agiles-engineering/unit-tests/

Komme aus der CI Java Welt sollte auch für andere Sprachen gehen.
 
Hmm, da hast du leider schon recht... Ist einfach ein spannender Aspekt, dass ich eigentlich deine Aussage schon viel gehört habe...
Aber du hast leider Recht. Geld für solche Sachen will die Firma nicht in die Hände nehmen und wir rennen eigentlich allen Terminen nur noch hinter her...
Ich bin halt seit ein paar Wochen auf der Suche nach einer Lösung, habe schon ein paar Interviews mit Mitarbeiter gemacht und für alle geschilderten Probleme habe ich eigentlich immer CI / CD mit einem modernen Versionsverwaltungsprogramm gesehen...


@konkretor Super, danke dir für die vielen Links. Ich werde die gerne studieren. Die Abdeckung mit dem Chef habe ich zumindest für einen Teil des Projektes... Aber für CI / CD muss ich sicher nochmals über die Bücher und speziell die Vorteile etc. aufzeigen. Und wir sind in der Java Welt zuhause, nur ohne CI ;-)
 
Zuletzt bearbeitet:
Hallo,
wir verwenden dafür den Team Foundation Server von Microsoft. Darin ist Projektmanagement nach bestimmten Methodiken (auch Agile wie Scrum etc.) möglich. Zudem ist damit auch automatisiertes Builden und Test sowie Versionieren möglich.

Vielleicht ist das für dich mal ein Ansatzpunkt :)

@Edit: Ich sehe gerade dass ihr in Java entwickelt. Hier würde ich für Continues Integration mal Jenkins anschauen. Der TFS ist doch eher auf Microsoftprodukte "optimiert"...


greetz
hroessler
 
Wenn man gerade frisch einsteigt brennt man natürlich, am Ball der Zeit zu sein.
Das wichtigste ist diesbezüglich, aus meiner Erfahrung, die Bereitschaft und Erkenntnis der Entscheidungsträger zu haben.
Als Neuling ist die Möglichkeit dass du dir Feinde machst gegeben. Viele wollen zwar eine Veränderung, sind aber nicht bereit zu investieren.

Bevor du Frust aufbaust und hoffnungsfroh in verschiedene Richtungen ruderst, ist die Grundfrage ob du dir einen solchen Kampf antun willst. Wozu?
Wäre nicht eine Firma besser, wo das Fundament ein moderneres ist und du nicht Ressourcen opferst gegen das System zu arbeiten.

Hingegen wenn du aktive Bereitschaft erfährst, Mitarbeiter an die Hand bekommst und das OK da ist auch Geld zu investieren - da ist das Potenzial und der Erfüllungsgrad sicher hoch.


Das angesprochene Update von vorvorgestern auf vorgestern, gibt dir eigentlich die Antwort, in welchem Fahrwasser du dich bewegst.
 
mikepayne schrieb:
Bevor du Frust aufbaust und hoffnungsfroh in verschiedene Richtungen ruderst, ist die Grundfrage ob du dir einen solchen Kampf antun willst. Wozu?
Wäre nicht eine Firma besser, wo das Fundament ein moderneres ist und du nicht Ressourcen opferst gegen das System zu arbeiten.

Nun, das ist sicherlich so. Vorallem bin ich am lernen und noch weit weg von z.B Kentnisse über Architektur usw. Deshalb fühle mich ein wenig überfordert.
Soweit ich das ich verstanden habe, sind die Probleme auch beim Chef erkannt, nur ist niemand bereit die Ressourcen zur Verfügung zu stellen. Wir sind in einem Kreis von Patches zu liefern und Fehler aus zu merzen, dass auch gar niemand mehr wirklich Zeit für solch einen Spass hat.
Nun, ich werde mir sicher die verschiedenen Links anschauen.
Aber wo ihr mir sicher schon massiv geholfen habt ist, dass es vor allem über die Firmenphilosophie bzw. über deren Leitung geht und da ist halt wirklich das Problem...
 
Obgleich diese strengen Meinungen hier zu der Firmenpolitik auch mit Vorsicht zu genießen sind. Mit Deinen paar Worten und Einblicken kann man sicherlich nicht solch ein Urteil fällen.

Glaube mir, ihr seid nicht die einzige (erfolgreiche) Softwareschmiede, die diese Probleme hat. Es kommt auch sehr aufs Produkt und die Zielgruppe an.

Und es nicht persönlich nehmen. Du selbst sagst, Du bist dort neu und noch im Studium. Da magst Du sehr euphorisch und engagiert sein. Aber Deine Sichtweise ist dann auch nur eine beschränkte. Die vieles drum herum nicht richtig wahr nimmt.
 
BlubbsDE schrieb:
Und es nicht persönlich nehmen. Du selbst sagst, Du bist dort neu und noch im Studium. Da magst Du sehr euphorisch und engagiert sein. Aber Deine Sichtweise ist dann auch nur eine beschränkte. Die vieles drum herum nicht richtig wahr nimmt.

Auch damit hast du sicherlich recht... (unsere Zielgruppen sind Banken ;-))
Nur das Problem, welches wir wirklich haben ist, dass meine Problemdarstellung auf Zustimmung trifft und ich auch viele Arbeitskollege habe, welche das auch so sehen.
Nun ja, eine Lösung muss her, nur noch die Frage welche ;-)
 
Hallo Prinzenrolle,

dein Vorhaben ist überaus engagiert und aus eigener leidlicher Erfahrung kann ich dir sagen, dass das Wichtigste das Commitment der Geschäftsführung und des Teams ist. Fehlt eines ist der Versuch bereits gescheitert. Agile Methoden lösen keine Probleme, sie machen sie nur sichtbar und eben das ist manchmal aus politischen Gründen nicht gewollt. Agile ist ein infektiöser Ansatz, das heißt er ergreift das gesamte Unternehmen. Darüber müssen sich alle im Klaren sein. Soviel zum politischen Aspekt, kommen wir zum technischen.

Bei einer solchen gewachsenen Software baut man mal nicht eben Unit Tests für bestehende Komponenten. Klar für neue Klassen kann und sollte man das machen. Die bestehenden Klassen sind aber meist so geschrieben, dass Unit Testing meist gar nicht sinnvoll eingesetzt werden kann. Stichwort starke Bindung von Klassen. Ihr müsst also ohnehin als erstes mal reviewen, welche Elemente ihr sinnvoll testen könnt, sprich wenig Abhängigkeiten aufweisen und der konsequente Einsatz von Dependency Injektion. Die Verwendung von statischen Methoden ist ein absoluter showstopper für Unit Tests. In einem ersten Schritt und auch im Long Term ist es meist lohnender Integrations Tests zu implementieren. Sie geben euch die Sicherheit, dass eure Software im veröffentlichten Zustand wie erwartet funktioniert (zumindest theoretisch, also das was der Anwender sieht) und eröffnen euch überhaupt erst die Möglichkeit größere Refactorings zu starten um eure Software testfähig zu gestalten.

Ich kann dir sagen, dass ein Entwickler, der bisher keine Tests geschrieben hat sich verdammt schwer damit tut, einen solchen Aufwand zu betreiben. Das Investment ist gerade am Anfang gigantisch und der Wert zeigt sich erst sehr spät.

Denk also gut darüber nach, ob du das wirklich möchtest. Ein Unternehmen welches sich derart den Entwicklungen der letzten Jahre verschlossen hat, das ist meist nicht zu einem solch gewaltigen Change bereit und da spreche ich nicht nur von den Geschäftsführern. Meist sind es die angestammten Entwickler, die entgegen ihrer eigenen Aussagen ein solches Vorhaben dann sabotieren.

Ich will dich nicht entmutigen, ich selbst habe diesen Weg zweimal mit durchwachsenem Erfolg beschritten und wollte dich nur an meinen Erfahrungen teilhaben lassen.

Viel Erfolg
 
  • Gefällt mir
Reaktionen: Tumbleweed und Prinzenrolle_
@S.Giny Top, danke dir vielmals für dein Feedback. Diese Aussagen decken sich immer mehr mit den Erfahrungen, welche ich hier machen darf.
Ich versuche mein Bestes, aber langfristig muss die Firma selber auf die Lösung kommen ;-)
Dann werde ich aber nicht mehr hier sein :-D
 
Zurück
Oben