Software-Analyse durch die Augen des Profis | Technologischer Blog

17.05.2021

Die Softwareanalyse wird oft als technische Aktivität angesehen. Im Allgemeinen kann gesagt werden, dass die Softwareentwicklung überwiegend eine männliche Domäne ist. Im heutigen Blog mit Andrea Haverlová, Managerin des Teams von Analysten, Beratern und Testern, erfahren wir jedoch, dass die Dinge nicht immer so sind, wie sie scheinen. Kommen Sie mit uns in die technische Welt mit den Augen einer professionellen Frau, die uns einen interessanten Einblick in die Softwareanalyse bietet.

Andrea, wie bist du zur Softwareanalyse gekommen?

Meine Eltern haben immer über mich gesagt, dass ich mich immer mit allem abfinden muss (Lachen). Ich erinnere mich zum Beispiel an eine Situation in meiner Kindheit, als ich ein Tonbandgerät zerlegte und alle Gummibänder herauszog. Natürlich waren meine Eltern nicht begeistert, denn es war in den Tagen des Sozialismus und das Tonbandgerät konnte nicht so repariert oder gekauft werden, wie es heutzutage der Fall ist.

Als diplomierte Chemikerin bin ich mittels chemischer Analyse in die Softwareanalyse gekommen. Ich habe es immer genossen, etwas zu analysieren. Es spielt wahrscheinlich keine Rolle, was man analysiert.

Nach dem Schulabschluss begann ich an einem wissenschaftlichen Institut als analytischer Chemiker zu arbeiten. Mir wurde schnell klar, dass ich, obwohl ich einen Artikel in einer Fachzeitschrift veröffentlicht hatte, kein Brot in Lebensmitteln dafür kaufen würde.

Als junger Mensch suchte ich daher nach anderen Möglichkeiten, mich zu bewerben. Ich habe auch Umschulungskurse im Bereich Wirtschaft und Buchhaltung besucht. Anschließend bewarb ich mich als Tester bei einem Softwareunternehmen für Buchhaltungssoftware.

Dies war mein Einstieg in die Welt der Informationstechnologie und ich wechselte allmählich von Softwaretests zur Kommunikation mit dem Kunden und zur Analyse seiner Anforderungen.

Wie fühlst du dich sich als Software-Analystin - eine Frau in einer Männer-Umgebung?

Ich empfinde dieses Thema als geschlechtsneutral. Ich denke, es hängt mehr von der Arbeitsbereich-Beziehung ab. Jetzt meine ich die Beziehung im Sinne, dass das Arbeitstool eines Softwareanalysten der Computer ist.

Persönlich bin ich eher die Person, die an klare Regeln gebunden ist, und in diesem Sinne passt mir die Null-Eins-Welt der Computer sehr gut. Die Arbeit eines SW-Analysten ist wahrscheinlich nicht ganz für jemanden geeignet, der einen intensiven sozialen Kontakt benötigt, weil ihm Emotionen fehlen würden.

Mit anderen Worten, für die Arbeit eines SW-Analysten ist es wahrscheinlich wichtig, sich in eine technische Lösung zu "verlieben", und dann spielt es keine Rolle, ob es sich um eine Frau oder einen Mann handelt.

Zufällig habe ich kürzlich einen Film über Alan Turing gesehen, der als Vorfahr digitaler Rechenmaschinen gilt - in unserer Sprache - Computern. Er schuf solch eine Rechenmaschine, und obwohl es sich um ein Gewirr von Teilen und Kabeln handelte, liebte er sie.

Aus eigener Erfahrung weiß ich, dass es ziemlich viele SW-Analystinnen gibt, beispielweise auch in unserem Unternehmen (Lachen).

Ich glaube sogar, dass eher die weiteren Rollen, mit den der SW-Analyst sehr eng zusammenarbeitet – Designer und Architekt der SW-Lösung - eine eher streng männliche Angelegenheit ist.

Ich würde wahrscheinlich auf den Fingern einer Hand zählen können, wie viele weibliche SW-Architekten ich kenne. 

Alan Turing schuf eine Rechenmaschine, und obwohl es sich um ein Gewirr von Teilen und Kabeln handelte, liebte er sie. Für mich ist eine kundenspezifische Softwareentwicklung sogar eine Art der Kunst.

 

Was ist für dich an der Arbeit eines SW-Analysten interessant und verlockend?

Es ist wichtig zu sagen, dass Unterschiede bei der Arbeit eines SW-Analysten in Dem bestehen, ob eine Analyse des SW-Produkts oder einer benutzerdefinierten SW-Lösung durchgeführt wird. Kundenspezifische Softwareentwicklung ist für mich eine Art der Kunst. Als Analyst kann ich alles nutzen, was ich weiß, um meine Kreativität optimal zu nutzen und das Ziel des Kunden zu erreichen.

Andererseits ist es auch eine Verpflichtung und Verantwortung in dem Sinne, dass der Analyst es im Namen des Kunden ausarbeiten muss. Mann kann nicht erwarten, dass ein Kunde genau sagt wie es gemacht werden soll. Der Kunde weiß oft, was er möchte, weiß aber nicht, wie er es erreichen soll. Die Hauptaufgabe des Analysten besteht darin, die Kundenanforderungen zu transformieren, zu zweifeln und kritische Fragen zu stellen.

Ich sehe oft, dass jüngere Analysten ihre Rolle als Zusammenschreiben der Anforderungen sehen. Es geht jedoch nicht nur darum, Anforderungen zu schreiben, sondern sie zu verstehen und zu extrahieren, was hinter den Anforderungen steckt. 

Ich habe immer gesagt, wenn dir ein Kunde sagt, dass Sie einen schönen Pullover haben, ist es wichtig, genau herauszufinden, was er meinte. Sagt er mir, dass er den Pullover wirklich mag oder sagt er, dass ich mich angemessen oder unangemessen angezogen habe? Oder fühlt er sich draußen kalt und hat einen Pullover an? Oder etwas anderes? Ich glaube, die Rolle eines Analysten besteht darin, die Absicht des Kunden zu verstehen und sie in eine Aufgabe umzuwandeln.

In dieser Hinsicht ist die Arbeit an einem SW-Produkt anders. Es gibt einen SW-Analysten, der durch die Fähigkeiten des Produkts eingeschränkt ist. Das Produkt sollte wiederverwendbar sein, daher versucht der Analyst tatsächlich, das Interesse des Produkts zu verteidigen und einen Weg zu finden, das Produkt für die Bedürfnisse des Kunden zu verwenden. Bei der Arbeit an einem SW-Produkt hat der Analyst den Vorteil, dass er sein Produkt genau kennt und sich nicht immer wieder mit dem neuen Geschäftsumfeld des Kunden vertraut machen muss.

Was war für Sie die größte Herausforderung bei der Arbeit eines SW-Analysten?

Als ich bei ANASOFT anfing, kam ich von der Position eines Produkt-SW-Analysten. Die größte Herausforderung für mich bestand darin, auf die Entwicklung maßgeschneiderter Lösungen umzusteigen. Zu erkennen, dass ich plötzlich nicht mehr die Welt meines Produkts habe, sondern dass ich immer wieder lernen muss, die Geschäftsdomäne des Kunden zu verstehen und nach der optimalen Lösung darin zu suchen.

Mir wurde auch klar, dass es in dieser Arbeit wichtig ist, dass der Analyst relativ tiefe Spuren gerade deswegen hinterlässt, weil jedes Projekt einzigartig und anders ist. Der Analytiker arbeitet also nicht nur für sich selbst und für die Programmierer, sondern auch für diejenigen, die nach ihm kommen. Kurz gesagt, damit es auch im Laufe der Zeit herauszufinden möglich ist, wie die Lösung aufgebaut wurde und warum, ohne die Details des Sourcecode untersuchen zu müssen. Dies ist nämlich der teuerste Weg, es herauszufinden.

Obwohl ich die Arbeit eines SW-Analysten als technisch empfinde, ist der Schlüssel zum Projekterfolg die Kommunikation. Unabhängig von der technischen Lösung und Technologie ist der Analytiker ein Psychologe, der die unterschiedlichen Perspektiven und Bedürfnisse der beteiligten Personen verstehen muss.

Dies führt wahrscheinlich auch zu einer Methodik der analytischen Arbeit.

Selbstverständlich. Bei den großen Projekten ist es umso mehr bemerkbar. Mit zunehmender Größe des Projekts müssen mehr Personen koordiniert werden. Aus diesem Grund haben wir im Enterprise Architect-Tool unter anderem ein zentrales Projekt-Repository eingeführt, in dem Analysten anhand unserer Projektmethodik auf die analytische Dokumentation von Projekten zugreifen können.

Der zweite Bereich ist die Erstellung von Dokumentationen. Als Teil davon haben wir vor einiger Zeit begonnen, eine robuste Methodik zu entwickeln. Wir haben Vorlagen für verschiedene Analysedokumente erstellt, um die Analyse sehr präzise zu gestalten. Und obwohl es bei großen Projekten für uns funktioniert hat, haben wir bei kleineren Projekten festgestellt, dass solch eine robuste Methodik nicht geeignet ist. Oft kann selbst der Kunde es nicht einbeziehen und benötigt einen lockeren Ansatz.

Nach jahrelanger Erfahrung wurde eine Art Puzzle erstellt, in dem der Analyst in Bezug auf Umfang und Bedürfnisse des Projekts zusammenstellen kann, was er aus der Methodik verwendet.

Was ist für dich von Sicht des Analysten der Schlüssel, um Projekt zum Erfolg zu bringen?

Obwohl ich die Arbeit eines SW-Analysten als technisch empfinde, ist der Schlüssel zum Projekterfolg die Kommunikation. Unabhängig von der technischen Lösung und Technologie ist der Analytiker ein Psychologe, der die unterschiedlichen Perspektiven und Bedürfnisse der beteiligten Personen verstehen muss.

Die Partner des Analysten sind neben dem Benutzer hauptsächlich der Projektmanager, mit dem er den Umfang des Projekts, die Risiken und den Zeitplan löst.

Dann gibt es den Designer / Entwickler, für den der Analyst die Aufgabe auch mit einer Erklärung von "Warum wir es tun" vorbereiten und alle Details angeben muss, ohne die der Entwickler sie nicht programmieren kann. Der Analyst muss auch die Antwort auf jede Frage für den Entwickler haben. Und es spielt keine Rolle, ob er im Voraus darüber nachdenkt oder es vom Kunden herausfindet.

Nicht zuletzt gibt es den Tester, dem der Analyst erklären muss, was die resultierende Lösung tun soll, ihm dabei hilft, Tests einzurichten, damit sie überprüft werden können.

Ist die Arbeit eines Analysten anspruchsvoll? Es scheint viel Erfahrung zu erfordern.

Wie bei jeder Arbeit, ist Erfahrung nützlich. Allmählich änderte sich meine Sicht auf die Arbeit eines Analytikers. Es kommt oft vor, dass jüngere Analysten eher technisch als kommunikativ arbeiten. Aber wie bei jeder Arbeit, die Spaß macht und hartnäckig ist, kommen auch neue Erfahrungen und eine neue Perspektive auf das, was wichtig ist. Zweifellos ist es eine komplexe Aufgabe. Es geht nicht darum, Anforderungen zu sammeln, sondern Kundenziele zu erreichen, die manchmal auf den ersten Blick nicht offensichtlich sind.

Für mich ist dies ein interessanter Job. Ich finde zum Beispiel auch die Arbeit der Tester bewundernswert, die niemals endet, die immer wieder von Anfang an beginnen kann. In meinem Fall sehe ich es als Vorteil, den der SW-Analyst an das Ende eigener Arbeit sieht. Und sicherlich ist die Arbeit eines SW-Analysten eine Art Bindeglied für das gesamte Projekt.

Womit würden Sie die Arbeit eines SW-Analysten vergleichen? Ich finde es ähnlich komplex wie zum Beispiel Musik für einen Film zu erstellen. Wo nicht gesagt wird, welches Instrument was zu spielen hat, wo der Komponist alles zusammensetzen muss.

So dachte ich nie darüber, ist allerdings ein interessanter Vergleich. Im gewissen Sinne ist es insofern ähnlich, dort wo es nichts gibt, eine Lösung zu erschaffen.  Und der Analytiker ist derjenige, der maßgeblich an der Erstellung dieser Arbeit beteiligt ist. Basierend auf der Anfrage - der Idee - wird etwas materiell erstellt.

Wie würdest du den Prozess der SW-Analyse laienhaft beschreiben?

Es geht hauptsächlich darum, mit dem Kunden zu sprechen und zu abstrahieren, was er sagt. Wenn mir beispielsweise ein Kunde bei einem Meeting mitteilt, dass er Rechnungen registrieren muss, komme ich beim Nachdenken über seine Anfrage zum Schluss, dass er wahrscheinlich auch Partner registrieren müsste. Er benötigt auch ein Rechnungsformular, das er elektronisch versendet.

Es ist ein Prozess, bei dem ich Domänenobjekte identifiziere - Wörter, die der Kunde verwendet, woraus ich eine Liste von Analyseobjekten erstelle, die bereits abstrakter sind als vom Kunden angegeben.

Rechnungen können nämlich von Lieferanten, von Kunden sein, oder ist es sinnvoll auch Bestellungen zu erfassen. Daher ist es sinnvoll, etwas Abstrakteres im System aufzuzeichnen, z. B. Dokumente. Es ist wichtig, die Funktionalität zu überwachen. Dies erfolgt normalerweise in Form von Anwendungsfällen wie dem Ausstellen oder Bezahlen einer Rechnung. Es ist auch möglich, den umgekehrten Ansatz zu wählen: Zuerst schreibe ich die Funktionalität und die verwendeten Objekte fallen heraus.

Der nächste Schritt besteht darin, die Benutzeroberfläche so zu gestalten, dass sie für den Benutzer verständlich ist. Ein separates Kapitel ist die Integration der Lösung in andere Systeme.

Und wie orientiert sich der SW-Analyst bei all dem, wie kommuniziert er mit Benutzer und Kollegen?

Ein wichtiger Teil der Arbeit des Analytikers ist die Notation, bzw. die Notationsform, damit klar ist, was und wie das System es tun wird. Es ist sehr wichtig, dass alle Beteiligten die analytischen Ergebnisse lesen und kommentieren können. Es gibt mehrere Notationen, die in der SW-Analyse verwendet werden. Aber da würde ich schon viel zu sehr ins Detail gehen. Darüber hinaus ist das Thema so weit gefasst, dass es für ein weiteres separates Gespräch ausreichen würde (Lachen).

 

Das ist allerdings keine schlechte Idee, mal sehen. Danke für das Interview.

 

 

Das Interview wurde von Boris Rybárvorbereitet
Teammanager für Softwareentwicklung

 

KÖNNTE INTERESSANT SEIN

Testen ist wie ein Kriminalroman | Technologischer Blog

Jede Anwendung oder jedes komplexe Informationssystem muss einen langen Weg zurücklegen, bevor es in die Hände des Endbenutzers kommt. Und auch hier ist der erste Eindruck das Wichtigste. 

Architektonische ansätze | Technologischer blog

Im heutigen Teil des Technologie-Blogs unterhalten wir uns mit Martin Vozár, einem der SW-Designer von ANASOFT. Er verfügt über mehr als 20 Jahre Erfahrung in der Entwicklung kundenspezifischer Anwendungen von kleinen bis zu großen Unternehmenslösungen.

Digitales profil einer organisation. Was ist in unternehmensinformationen zu beachten?

Das digitale Zeitalter bringt viele Möglichkeiten, gleichzeitig aber auch Drohungen. Nicht nur im Umfeld des digitalen Alltags einzelner Benutzer, sondern auch bei einer digitalen Präsentation der Geschäftseinheiten