{"id":10156,"date":"2020-05-15T12:23:47","date_gmt":"2020-05-15T10:23:47","guid":{"rendered":"https:\/\/nearshore-it.eu\/de\/?post_type=project&#038;p=10156"},"modified":"2023-11-08T16:00:01","modified_gmt":"2023-11-08T15:00:01","slug":"softwareentwicklung-fur-stanusch-technologies-einem-branchenfuhrer-bei-der-implementierung-von-ki-systemen","status":"publish","type":"project","link":"https:\/\/nearshore-it.eu\/de\/client-story\/softwareentwicklung-fur-stanusch-technologies-einem-branchenfuhrer-bei-der-implementierung-von-ki-systemen\/","title":{"rendered":"Softwareentwicklung f\u00fcr Stanusch Technologies, einem Branchenf\u00fchrer bei der Implementierung von KI-Systemen"},"content":{"rendered":"<h2><span>Das Kundensystem<\/span><\/h2>\n<p><span>Der Kunde stellt ein auf der Omni-Chatbot-Plattform basierendes Konversationssystem zur Verf\u00fcgung, das auf k\u00fcnstliche Intelligenz zur\u00fcckgreift. <strong>Es kann in Form von Chat- oder Voicebots f\u00fcr die kommerzielle Nutzung in jeder Branche implementiert werden, wodurch die Kommunikation mit Kunden verbessert wird<\/strong>. Mit den virtuellen Assistenten von Stanusch ist es m\u00f6glich den Kundenservice zu automatisieren- Au\u00dferdem bieten sie Unterst\u00fctzung bei der internen Unternehmenskommunikation oder bei Marketingaktivit\u00e4ten sowie bei der Analyse gro\u00dfer Datens\u00e4tze. Der Vorteil des Tools ist eine einzige Wissensdatenbank, die es erm\u00f6glicht, \u00fcber verschiedene Kan\u00e4le zu kommunizieren, ohne dass separate Informationsquellen erstellt werden m\u00fcssen.<\/span><\/p>\n<h2><span>Das Problem<\/span><\/h2>\n<p><span>Der Kunde ben\u00f6tigte Unterst\u00fctzung f\u00fcr sein Scrum-Team bei der Softwareentwicklung und Qualit\u00e4tssicherung. Das Ziel des Projekts bestand darin, eine neue Version der Anwendung f\u00fcr das Konversationssystem zu implementieren. Als die JCommerce-Spezialisten mit der Arbeit an dem Projekt begannen, identifizierten sie die folgenden Probleme und Herausforderungen:<\/span><\/p>\n<ul>\n<li><span>Das Projekt zum automatischen Testen (GUI und API), das f\u00fcr eine \u00e4ltere Version des Systems erstellt wurde, erforderte ein Refactoring. <\/span><\/li>\n<li><span>Die Dauer der automatischen Tests war lang. <\/span><\/li>\n<li><span>Der Kunde ben\u00f6tigte Daten, die einen Leistungsvergleich zwischen der \u00e4lteren Version des Systems und dem neuen, derzeit implementierten System erm\u00f6glichen. <\/span><\/li>\n<li><span>Die vom Kunden verwendeten Tools mussten auf neuere Versionen aktualisiert werden. <\/span><\/li>\n<\/ul>\n<h2><span>Die L\u00f6sung<\/span><\/h2>\n<p><span>Die Arbeit der JCommerce-Spezialisten l\u00e4sst sich in die folgenden Bereiche unterteilen:<\/span><\/p>\n<h3><strong><span>Entwicklung<\/span><\/strong><\/h3>\n<p><span>W\u00e4hrend der Arbeit f\u00fcr den Kunden waren die JCommerce-Spezialisten f\u00fcr die Wartung des aktuellen Systems verantwortlich. Sie waren f\u00fcr die Implementierung in neue Umgebungen und die Aktualisierung der Implementierungsanweisungen verantwortlich. Es ist ihnen gelungen, Verfahren zu etablieren, die die Arbeit effektiver machten. Die Aufgaben, an denen der JAVA Developer von JCommerce arbeitete, erforderten die Reparatur von Steuerelementen zur Eingabe von Daten in das Verwaltungssystem, die Reparatur der Datensuchfunktionalit\u00e4t und der Anmeldung im System. Er f\u00fcgte dem bestehenden Verwaltungssystem die M\u00f6glichkeit hinzu, einen Groovy-Sprachcode auszuf\u00fchren, der f\u00fcr die Bedienung der sogenannten Fakten (Wissensdatenbank-Artikel) und die R\u00fcckgabe ihres Ergebnisses an die Person, die den Chatbot f\u00fcr den Client konfiguriert hat, erforderlich ist.<\/span><\/p>\n<p><span>Der Software-Entwicklungsprozess wurde weiter verbessert durch:<\/span><\/p>\n<ul>\n<li><span>Festlegen von Definition of Ready und Definition of Done (einschlie\u00dflich der Notwendigkeit, automatische Tests vorzubereiten), sodass das Scrum-Team wusste, wann die Aufgabe als erledigt gelten w\u00fcrde.<\/span><\/li>\n<li><span>Regelm\u00e4\u00dfige Refinement-Sitzungen, die es erm\u00f6glichten, die Aufgaben im Backlog laufend zu aktualisieren.<\/span><\/li>\n<li><span><span>Verbesserter Code-Review-Prozess, bei dem der Code-Qualit\u00e4t, der Systemarchitektur und demn Tests Aufmerksamkeit gewidmet wurde. Der verbesserte Code-Review-Prozess f\u00fchrte zu einer besseren Code-Qualit\u00e4t und damit zu einem besseren Funktionieren der Anwendung.<\/span><\/span><\/li>\n<\/ul>\n<h3><strong><span>Tests (Quality Assurance)<\/span><\/strong><\/h3>\n<p><span>&nbsp;Das Projekt zum automatischen Testen des bestehenden Systems wurde refaktorisiert \u2013 es bestand darin, den Code gem\u00e4\u00df guter Programmierpraxis zu modifizieren. In einem sp\u00e4teren Arbeitsstadium erm\u00f6glichte dies die Aktualisierung der in diesem Projekt verwendeten Bibliotheken und Werkzeuge. W\u00e4hrend der Arbeit wurde die Logik einiger der Tests verbessert \u2013 einige Testf\u00e4lle wurden zusammengef\u00fchrt, andere wurden getrennt. <\/span><\/p>\n<ul>\n<li><strong><span>Infolge dieser \u00c4nderungen konnte die Testzeit um die H\u00e4lfte verk\u00fcrzt werden. <\/span><\/strong><\/li>\n<li><span>Es ist uns gelungen, den Prozess Continuous Integration \/ Continuous Delivery zu verbessern und die Skripte, die die Tests ausf\u00fchren, zu modifizieren. <\/span><\/li>\n<li><span>Die Spezialisten von JCommerce schlugen vor, das Selenium-Grid-Tool zu verwenden, mit dem Tests auf verschiedenen Browsern durchgef\u00fchrt werden k\u00f6nnen, und empfahlen, den Browser auf eine unterst\u00fctzte Version umzustellen. Auf diese Weise erhielt der Kunde die M\u00f6glichkeit, die neuesten Versionen der g\u00e4ngigsten Browser zu verwenden. <\/span><\/li>\n<li><span>Die Wartung dieses Projekts lag in der Verantwortung einer Testerin auf Kundenseite, der ein QA von JCommerce mit Rat und Tat zur Seite stand. <\/span><\/li>\n<\/ul>\n<p><span>Die Unterst\u00fctzung des JCommerce-Projekts im Rahmen der Erprobung des neuen Konversationssystems fand in vier grundlegenden Bereichen statt:<\/span><\/p>\n<p><strong><span>1) Code Review<\/span><\/strong><\/p>\n<p><span>R\u00fccksichtnahme bei der Code\u00fcberpr\u00fcfung auf Unit- und Integrationstests. Der Ansatz, so viele Gesch\u00e4ftsf\u00e4lle wie m\u00f6glich abzudecken.<\/span><\/p>\n<p><strong><span>2) Manuelle Tests<\/span><\/strong><\/p>\n<p><span>Manuelle Tests wurden im Entwicklungsprozess so fr\u00fch wie m\u00f6glich durchgef\u00fchrt. Hier lag der Schwerpunkt haupts\u00e4chlich auf den wichtigsten Gesch\u00e4ftswegen, und detaillierte F\u00e4lle wurden durch Tests auf niedrigerem Niveau abgedeckt.<\/span><\/p>\n<p><span>Zus\u00e4tzlich wurde eine Dokumentation erstellt, die alle Unterschiede zwischen dem alten und dem neuen System enth\u00e4lt.<\/span><\/p>\n<p><strong><span>3) Automatische Tests<\/span><\/strong><\/p>\n<p><span>Im Rahmen dieser Aufgabe wurde ein eigenes Projekt ins Leben gerufen, das Tests der entwickelten API beinhaltete. In diesem Teil der Arbeit wurden neue Technologien und Werkzeuge wie Java 11, Groovy, Spock, Rest Assured, Maven, Docker und Jenkins genutzt. Zus\u00e4tzlich wurde diese Aufgabe in den CI\/CD-Prozess integriert (jedes Mal, wenn eine neue Version der Anwendung erstellt wurde, begannen die Tests). In der n\u00e4chsten Phase wurde auch der Entwicklungsprozess durch diese Tests erg\u00e4nzt \u2013 jeder Entwickler konnte sie auf einer virtuellen Maschine ausf\u00fchren, um die Richtigkeit der von ihm vorgenommenen \u00c4nderungen zu \u00fcberpr\u00fcfen.&nbsp; <\/span><\/p>\n<p><strong><span>4) Leistungstests<\/span><\/strong><\/p>\n<p><span>Den letzten Bereich stellten Leistungstests dar. Der Kunde berichtete, dass er Daten ben\u00f6tigte, um die Leistung des alten und des neuen Systems vergleichen zu k\u00f6nnen. Im Rahmen dieser Aufgabe wurde das bestehende (f\u00fcr das alte System gedachte) Testprojekt gestartet. Es wurde ge\u00e4ndert, um auch die Leistung des neuen Systems zu \u00fcberpr\u00fcfen. Es griff auf das JMeter-Tool zur\u00fcck, aber im Rahmen dieser Aufgabe wurde auch ein Proof-of-Concept von Leistungstests mit dem Gatling-Tool erstellt. <\/span><\/p>\n<h2><span>Business Benefits:<\/span><\/h2>\n<ul class=\"list-jc\">\n<li><strong>Verbesserte Codequalit\u00e4t und besseres Funktionieren der Anwendung,<\/strong><\/li>\n<li><strong>Aktualisierung der im Projekt verwendeten Bibliotheken und Werkzeuge,<\/strong><\/li>\n<li><span>Verbesserung des Prozesses der Softwareentwicklung und Qualit\u00e4tssicherung, insbesondere die Erstellung von Aufgaben (Backlog),<\/span><\/li>\n<li><span>Verbesserung von Know-how des Entwicklungsteams auf dem Gebiet der Qualit\u00e4tssicherung, insbesondere im Bereich der Testautomatisierung <\/span><\/li>\n<li><span>Unterst\u00fctzung der Scrum-Methodik, insbesondere die Verbesserung des Prozesses der Aufgabenerstellung. Dies f\u00fchrte zu einem besseren Verst\u00e4ndnis der Aufgaben und des Zielbetriebs einer bestimmten Funktionalit\u00e4t durch das Entwicklerteam, insbesondere durch Personen mit weniger Erfahrung mit dem Projekt.<\/span><\/li>\n<\/ul>\n<p><strong>Zusammensetzung des Teams:<\/strong> QA und JAVA Developer.<\/p>\n<p><strong>Projektdauer:<\/strong> 06.2019 \u2013 bis heute<\/p>\n<hr>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Stanusch Technologies ist ein polnisches Unternehmen, das innovative L\u00f6sungen auf der Grundlage k\u00fcnstlicher Intelligenz anbietet. Der Kunde entwickelt eine neue Version der Anwendung f\u00fcr ein Chatbot- und Voicebot-Gespr\u00e4chssystem und ben\u00f6tigte Unterst\u00fctzung in Form von zus\u00e4tzlichen personellen Ressourcen f\u00fcr das Entwicklungsteam sowie im Bereich der Qualit\u00e4tssicherung.<\/p>\n","protected":false},"featured_media":21220,"template":"","meta":{"_acf_changed":false,"footnotes":""},"project_category":[445],"class_list":["post-10156","project","type-project","status-publish","has-post-thumbnail","hentry","project_category-it-consulting","project_country-polen"],"acf":[],"_links":{"self":[{"href":"https:\/\/nearshore-it.eu\/de\/wp-json\/wp\/v2\/project\/10156","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nearshore-it.eu\/de\/wp-json\/wp\/v2\/project"}],"about":[{"href":"https:\/\/nearshore-it.eu\/de\/wp-json\/wp\/v2\/types\/project"}],"version-history":[{"count":3,"href":"https:\/\/nearshore-it.eu\/de\/wp-json\/wp\/v2\/project\/10156\/revisions"}],"predecessor-version":[{"id":26129,"href":"https:\/\/nearshore-it.eu\/de\/wp-json\/wp\/v2\/project\/10156\/revisions\/26129"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nearshore-it.eu\/de\/wp-json\/wp\/v2\/media\/21220"}],"wp:attachment":[{"href":"https:\/\/nearshore-it.eu\/de\/wp-json\/wp\/v2\/media?parent=10156"}],"wp:term":[{"taxonomy":"project_category","embeddable":true,"href":"https:\/\/nearshore-it.eu\/de\/wp-json\/wp\/v2\/project_category?post=10156"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}