Wie bestimmt man den Wert einer Software

Software ist eine der kritischen Bereiche in jedem Unternehmen. Mit der Wahl der Software entscheiden sich über Jahre hinweg die Arbeitsweise und damit auch die Effizienz Ihrer Firma.

Kann man Software überhaupt kalkulieren?

Software ist ein sehr komplexes Thema. Es können sehr viele Dinge passieren, die alle Pläne verwürfeln: Datenverlust; Inkompatibilitäten; Projekt-Verzögerungen ….

Und trotzdem lohnt sich genaueres Planen. Denn mit der Wahl der richtigen Software lassen sich in einigen Abläufen bis 100-fache Effizienz erreichen. Ein Beispiel ist das Auffinden alter Messprotokolle bei einer Reklamation. Um Ihnen zu zeigen, dass das nicht unrealistisch ist, hier ein Beispiel:

Händisch Software
  • Laufweg zum Archiv: 50s
  • Herausholen der nach Jahrgängen sortierten, beschrifteten Archivkisten: 20s
  • Durchblättern der nach Datum sortierten Messprotokolle: 15s
  • Gang zum Kopierer/Scanner, Kopieren/Scannen: 30s
  • Wiedereinsortieren des Zettels in den Stapel: 20s
  • Laufweg zurück: 50s
  • Eintippen des Datums: 10s
  • Klicken auf den richtigen Datenbank-Eintrag: 5s
  • Gang zum Drucker, Drucken: 30s
Gesamt: 185s Gesamt: 55s

1. Schritt: Feststellen der Alternativlösung

Es gibt für jeden Prozess mehrere Möglichkeiten, ihn durchzuführen. Eine Lösung ist der Weg, wie Sie es gerade tun. Gerade beim Aufbau eines Geschäfts ist es nicht wichtig, wie effizient Prozesse ablaufen. Wichtiger ist da die generelle Machbarkeit, sowie die Marktfähigkeit einer Idee, weshalb viel Handarbeit verwendet wird. Im Verlaufe der Professionalisierung muss nach Alternativen zum anfänglichen Vorgehen gesucht werden.

Um die Effektivität einer Prozess-Optimierung bestimmen, muss man auch die alten Prozesse betrachten, um einen Vergleich zu haben. Denn die Anschaffungs-Kosten der Software dürfen maximal den Effizienz-Unterschied der damit neu eingeführten Prozesse betragen. Die Alternative zur Software ist immer die Art und Weise, wie Sie es bisher gehandhabt haben.

In Schritt 1 listen Sie alle Kosten für den Prozess auf, wie Sie ihn momentan betreiben.

2. Schritt: Umreißen der Software bzw. der neuen Prozesse

Wie würden die Prozesse mit Softwareeinsatz aussehen? Welche Arbeits-Schritte werden durch andere ersetzt, welche bleiben und welche fallen weg? Kommen vielleicht noch Arbeitsschritte hinzu wie z.B. die Datenpflege?

Je nach eingesetzter Software-Art können die Änderungen an den Prozessen unterschiedlich ausfallen. So wird der Einsatz einer Standard-Software mehr Handarbeit erfordern, da eine Standard-Software nicht alle Bereiche Ihres Prozesses abdeckt. Mit einer Individual-Software können Sie mehr Fliegen mit einer Klappe schlagen, haben aber auch höhere Anschaffungskosten.

In Schritt 2 listen Sie alle Kosten für den potenziell neuen Prozessablauf auf.

3. Schritt: Kalkulation

Mit folgender Formel errechnen Sie, wieviel Sie maximal für die Software ausgeben dürfen:

Max_Kosten_Software = Kosten_Prozess_alt - Kosten_Prozess_neu - Schulungsaufwand

Zusammenfassend also: Sind Ihre alten Prozesse teurer, als potenzielle neue Prozesse plus Schulungsaufwand, sollten Sie über eine Softwareanschaffung nachdenken.

Andersherum lässt sich auch mit Ammortisationszeitäumen rechnen:

Ammortisationszeitraum = Kosten_Software / (Kosten_Prozess/Monat_alt - Kosten_Prozess/Monat_neu - Schulungsaufwand)

Warum der Handlungsreisende nicht die beste Route findet

Kennen Sie das Problem des Handlungsreisenden? Der Handlungsreisende soll die kürzeste Route finden, mit der er alle größten 15 deutschen Städte besuchen kann. Das Problem dabei: durch die 15 Städte gibt es 43.589.145.600 mögliche Routen. Und in der Informatik wurde momentan noch kein allgemeiner Lösungsweg gefunden, keine 43.589.145.600 Möglichkeiten durchzuprobieren.

Es gibt dutzende solcher schweren Probleme in der Informatik

Die Handlungsreisenden sind nicht allen. Derart hohen Rechenaufwand zur Problemlösung müssen auch für andere Probleme aufgewandt werden:

  • Das Rucksackproblem: Ein Rucksack mit definiertem Volumen soll mit Gegenständen von gewissem Wert und Volumen gefüllt werden, sodass man den maximalen Wert erreicht.
  • Cliquenproblem: Finde die größte Clique, bei der jeder mit jedem vernetzt ist (z.B. auf Facebook Personen, die alle paarweise miteinander vernetzt sind)
  • Job-Sequencing-Problem: Finde die optimale Auswahl und zeitliche Eintaktung von möglichen Aufträgen für eine Maschine, von denen die Abarbeitungs-Zeit, Deadline und der Profit bekannt sind.
  • Terminkalender: Finden Sie für eine Woche mit 20 Terminen, die jeweils 2-4 Terminvorschläge haben eine Wochenbelegung.
  • Verschlüsselung knacken: Die NSA beißt sich die Zähne daran aus, Verbindungen zu simplen Online-Shops zu belauschen, da diese verschlüsselt sind.

Alle diese Probleme stellen dasselbe Problem dar

All diesen harten Probleme haben eins gemeinsam: Sie stellen ein- und dasselbe Problem dar und lassen sich ineinander umwandeln. So lässt sich beispielsweise das Problem des Handlungsreisenden auch als Rucksackproblem darstellen, indem das Gewicht der Stücke für den Rucksack die 15 zu erreichenden Städte darstellt und der Wert der Stücke die negierte Entfernung der Städte zueinander.

Symbolisches Rechnen

Eines dieser harten Probleme (auch NP-Hart genannt) ist das sogenannte SAT-Problem: Gegeben eine logische Formel ist zu prüfen, ob diese lösbar ist.

Genialerweise lässt sich jedes dieser Optimierungs- und Suchprobleme als eine logische Formel darstellen, die als SAT-Problem gelöst werden kann. Zudem ist SAT durch die einfache 3-SAT-Schreibweise sehr handlich. Ein Programm, das SAT-Probleme lösen kann, nennt man SAT-Solver.

Das Grundprinzip eines SAT-Solvers ist einfach: Die gegebene logische Formel wird so lange umgestellt, bis die Lösung aus der Formel ablesbar ist. Jedoch muss ein SAT-Solver bei unbekannten Werten (entweder 1 oder 0) beide Varianten durchprobieren, um die Lösung zu finden. Das sind bei zwei unbekannten Werten schon 4 Varianten, bei 10 Unbekannten 1024 Möglichkeiten und bei 20 Unbekannten schon eine Million.

Anbindung an eine Datenbasis

Die Kunst, SAT praktisch anzuwenden liegt darin, Probleme als SAT-Probleme zu definieren. So können beispielsweise Fakten aus einer Datenbank als Formeln kodiert werden, um später Schlussfolgerungen aus den Daten zu ziehen.

Wir bei Launix können Ihnen helfen, Daten digital zu verwalten, sowie für SAT-Solver aufzubereiten. Mit unseren Datenbanken eröffnen sich neue Wege fürs Planen und Optimieren.

Wie Discos und Veranstaltungen ihren Umsatz erhöhen können

Jede Veranstaltung ist ein Wagnis. Ein Veranstaltungsort muss gemietet werden, Künstler engagiert und bezahlt, Bühnenbau organisiert und Werbung gemacht werden. All diese Ausgaben sind Fixkosten und unabhängig von der Besucherzahl. Komen also nicht genug Besucher, macht der Veranstalter Verlust.

Eintrittspreise allein reichen nicht

Das weiß jeder Veranstalter. Einige Bands verlangen sogar den Umsatz durch Eintrittspreise für sich. Dem Veranstalter bleibt nur noch die Möglichkeit, mit Getränken sein Geld zu verdienen. Generell bieten der Verkauf von Getränken viel bessere Möglichkeiten, denn Eintrittskarten kauft jeder Besucher nur eine. Getränke hingegen mehrere.

Überlastung

Was mir bei einem Fußballspiel auffiel war, dass die Schlange am Getränkeausschank schier endlos war. Hinzu kam, dass viele Gäste lieber das Spiel sehen wollten, anstatt sich lange anzustellen. Wären die Schlangen kürzer, würde der Veranstalter viel mehr Umsatz machen. Mehr Ausschänke hätten zudem den Vorteil, dass der Umsatz nicht auf die Kapazität eines Ausschanks beschränkt ist.

Hemmschwelle zum Kauf senken

Der folgende Vorschlag zu einem System verwendet drei Tricks, um Ihren Umsatz zu steigern:

  • Der Kunde bezahlt nicht mit „echtem“ Geld
  • Der Kunde hat ein „Budget“. Viele Menschen sind dazu geneigt, genau so viel auszugeben, wie sie haben.
  • Es ist eine coole technische Innovation

Hier der Aufbau:

  • Jeder Kunde kauft am Ticketschalter neben den Tickets zu einem Budget von ca. 20 € insgesamt 5 Marken im Wert von 4 €
  • Für jede Marke erhält er ein Getränke oder einen Snack
  • Beim Verlassen der Veranstaltung kann er die nicht verbrauchten Marken zurück in Geld tauschen
  • Der Kunde kann beliebig neue Marken dazukaufen
  • Die Marken können auch über ein Armband realisiert werden, das einen QR-Code beinhaltet. Barkeeper könnten dann krumme Beträge abbuchen, ohne Wechselgeld herausgeben zu müssen

Wie man sieht, steigert dieses System die Effizienz der Barkeeper, denn:

  • Es gibt nur noch eine Bargeld-Stelle am Eingang
  • Getränke können durch den Wegfall von Bargeld schneller ausgeschenkt werden
  • Kunden nehmen die Gutscheine nicht direkt als Geld wahr und sind Ausgabefreudiger
  • Die Anzahl am Eingang ausgegebener Gutscheine verleitet zum Ausgeben derer

Aufwertung durch Technik

Noch cooler kommt das System an, wenn eine technische Innovation dahintersteckt. Arbeiten Sie beispielsweise mit QR-Codes, um die Gutscheine der Kunden zurückzuverfolgen. Ganz nebenbei erhalten Sie dabei interessante Daten, die ausgewertet werden können:

  • Wieviel Prozent der Kunden kaufen gar keine Getränke
  • Welche sind die beliebtesten Getränke
  • Wie viele brauchen ihre Gutscheine komplett auf, trauen sich aber nicht, Naschschub zu holen

Wir bei Launix helfen Ihnen gerne weiter, beim Aufbau eines QR-Code basierten Kassensystems zu helfen.

Warum korrekte Kalkulation so wichtig ist

Wie händeln Sie Ihre Kalkulation im Unternehmen? Eher lax? Oder rechnen Sie jedes Strich und Komma ab?

Firmen, die nicht kalkulieren wollen, verlieren Aufträge

Einmal wollte ich eine Ware kaufen, aber zusätzlich eine Individualisierungs-Dienstleistung in Anspruch nehmen. Mein Kaufwunsch wurde abgelehnt mit der Begründung „das würde für Sie zu viel kosten“.

Warum kümmerte die Verkäuferin das? Warum hat sie mir nicht einfach verkauft? Ich wollte doch kaufen! Warum hat sie nicht einfach im Kopf gerechnet, wieviel Aufwand das für sie bedeuten würde und schlägt mir diesen Preis vor? Meist bin ich dann so dreist und frage nach: „kennen Sie denn einen Dienstleister, der das anbieten würde, was Sie nicht können?“.

Kalkulation – einfach oder detailliert?

Vereinfachungen sind gut und nützlich. Sie helfen, Dinge beherrschbar zu halten. Doch in einer Kalkulation muss man bei Vereinfachungen vorsichtig sein. Es gibt Firmen, die sehr einfach kalkulieren können: Dienstleister. Sie rechnen einfach die aufgewendeten Stunden zu einem einmal festgelegten Stundensatz ab.

Eine Stufe schwerer ist der Einsatz von Material. Hier muss man neben den reinen Materialkosten und Mengenrabatten auch den Aufwand für die Beschaffung des Materials einbeziehen. Denn selbst das Absetzen einer Bestellung benötigt Zeit, die Sie so nicht wahrnehmen.

Noch komplizierter wird die Geschichte, wenn Sie Maschinen einsetzen. Denn Abschreibungskosten zu kalkulieren kann sehr fehlerbehaftet sein, denn meist weichen die angenommene Abschreibungsdauer und die Maschinenlaufzeit und eventuelle zusätzliche Wartungskosten voneinander ab.

Firmen, die falsch kalkulieren, verlieren Geld

Stellen Sie sich folgendes Szenario vor: Zwei Maschinenbau-Firmen sind auf dem Markt. Eine kalkuliert Verpackung und Versand im Preis mit und ist 2% teurer in der Produktion. Die andere hat einen eigenen Kalkulationsposten für Verpackung und Versand.

Nun kommt ein Kunde und lässt sich von beiden ein Angebot machen über ein Produkt, das er nicht verpackt und versandt haben will, da es ein Prototyp ist und er es selbst abholt. Die erste Firma würde den Auftrag verlieren, da sie zu viel kalkuliert.

Noch härter wird es, wenn ein zweiter Kunde kommt, der eine sehr komplexe Form fertigen lässt, dessen Verpackung unverhältnismäßig aufwendig ist, sowie der Versand durch die Sperrigkeit auch teurer wird. Die erste Firma würde den Zuschlag bekommen, da sie Verpackung und Versand pauschal berechnet, wird aber anhand dieses Faktes Verlust machen.

Individuelle Kalkulations-Software vermeidet übergroße Excel-Tabellen

Machen Sie Ihre Kalkulation in Excel, werden Sie ab einem gewissen Detailgrad bemerken, dass die Tabelle immer größer wird und immer mehr Null-Felder und Null-Spalten hat. Sich auf alle Eventualitäten vorzubereiten, macht Tabellen schnell unübersichtlich.

Abhilfe schafft hier eine eigens für Sie entwickelte Software von Launix. In übersichtlichem Layout können Sie bei uns Kalkulationsposten in einer Art Liste verwalten. Mit einer Klon-Funktion haben Sie in Sekundenschnelle ähnliche Projekte kalkuliert und angepasst. Mit einer PDF-Funktion können Sie schick aussehende Angebote generieren.

Sahnehäubchen Nachkalkulation

Erfahrene Betriebswirte vergleichen zusätzlich regelmäßig ihre Kalkulationen mit den tatsächlich aufgetretenen Kosten eines Auftrags. So lassen sich früh Kalkulationsfehler und nicht berücksichtigte Faktoren aufspüren.

Fazit

Kalkulation ist ein wichtiger Pfeiler in einer umkämpften Marktsituation. Verschenken Sie hier keine Umsätze durch verlorene Aufträge oder Gewinne durch falsch kalkulierte Aufträge.

Warum Standardsoftware doch teurer ist

Der preisliche Unterschied zwischen Kauf-Software und individuell angefertigter Software liegt bei einem Faktor um 2-10 bei Branchensoftware, 10-100 bei speziellerer Software und 1.000 oder höher bei Standardsoftware wie z.B. Textverarbeitung. Doch in vielen Fällen zeigt sich, dass sich dieser Faktor schnell relativiert.

Ihre Firma ist nicht kompatibel

Eingesetzte Standardsoftware ist so, wie sie ist. Meist passt die Software nicht zu 100%. Da aber die Software so nicht angepasst werden kann, wie Sie es brauchen, passen Sie stattdessen Ihre Firma der Software an. Mitarbeiter werden geschult, Prozesse geändert und ein bisschen Flexibilität geht verloren. Fatal ist diese Anpassung vor allem dann, wenn Sie dadurch Geschäft verlieren.

Geschäft verloren durch zu starke Anpassung

Nutzen Sie zu starre Software, lassen sich nicht mehr alle Geschäfte damit abwickeln. Ein Produktions-ERP für Serienfertigung bildet keine Individual-Anfertigungen mehr ab, ein Shop-System bietet keine Sonderanfertigungen mehr, werden Mengenrabatte nicht unterstützt, verlieren Sie vielleicht einen Großauftrag …

In jedem Fall sollten Sie sich bewusst werden, was die eingesetzte Software können muss, um alle Ihre Prozesse abbilden zu können.

Konfiguration

Manche Kauf-Software ist genau das Gegenteil von starr: nämlich flexibel. Das heißt in aller Regel, dass Sie zuerst alles konfigurieren müssen. Konfiguration lassen sich Hersteller von Standardsoftware wie SAP teuer bezahlen. Doch auch das so „günstige“ Word kommt mit einem weiteren Aufwand: Dem Einrichten von Vorlagen, das Sie nochmals unzählige Stunden und Nerven kostet.

Ein weiteres Risiko bei super-flexibler Software ist die Falsch-Bedienbarkeit. Das heißt konkret, dass der Praktikant die Excel-Tabelle durch einen falschen Klick zerstören kann oder dass in einer super-flexiblen Software eine Vielzahl von Buttons sind, die niemals gebraucht werden, aber den Einarbeitungsaufwand erhöhen, sowie falsch benutzt werden können.

Ausweg: Individualsoftware?

Obwohl oder gerade weil wir bei Launix unser Geld mit der Herstellung von Individualsoftware verdienen, wissen wir, dass selbst programmierte Software überall nicht immer die kosteneffektivere Lösung ist. Meist bietet fertige Software schon alles, was man braucht. Es muss nur noch korrekt zusammengesetzt werden. Und gerade da ist die Nische für individuell programmierte Software: Der Brücke zwischen mehreren Lösungen.

Bedürfnisgerechtigkeit durch das Kombinieren von Komponenten

Stellen Sie sich vor, Sie benutzen bereits eine Rechnungs-Erstellungs-Software wie z.B. den Bill-o-Mat. Jedoch gefällt Ihnen die Rechnungsvorlage nicht und auch in der Premium-Version sehen die Rechnungen trotzdem noch billig und unseriös aus. Was spricht dagegen, die Standardsoftware trotzdem zu nutzen, doch lediglich die Rechnungs-PDF-Erstellung durch die vom DIN-Brief-Ersteller, ebenfalls einer Standard-Software, zu ersetzen. Sie müssten lediglich einen Programmierer (z.B. von Launix) engagieren, der den nötigen Adapter programmiert, um die Rechnungsdaten aus dem Bill-o-Mat automatisch in die Maske des DIN-Brief-Erstellers zu übertragen. Damit haben Sie am kostengünstigsten Ihr Ziel erreicht.

Aus Versehen gelöscht – und doch noch da

Neulich erreichte mich ein Anruf einer unserer Kunden: „Der Kollege hat aus Versehen etwas gelöscht. Jetzt gehen alle unsere Kalkulationen nicht mehr.”

Versehentliche Löschungen passieren häufig

… oder zumindest öfter, als es einem lieb ist. Zudem sichern die meisten Backups nur den letzten Zustand. Fällt einem ein, dass man die Daten der vorletzten Sicherung doch nicht löschen wollte, bedeutet das große Schwierigkeiten.

Was unseren Kunden rettete: EventSourcing

Was unserem Kunden zum Vorteil gereichte war eine Zurechenbare Software, genauer gesagt setzten wir das sogenannte Event Sourcing-Verfahren ein, um sämtliche Datenbewegungen in einer Historie zu hinterlegen. Wir mussten also lediglich die Software umprogrammieren, bei einem Löschbefehl die Daten nicht zu löschen, sondern mit einer „Löschmarkierung” zu versetzen, der den Eintrag zwar unsichtbar machte, aber bei Bedarf noch abrufbar war. Durch das erneute Abspielen der Historie wurden somit die Daten wiederhergestellt.

Versionskontrolle: Versionierung für Dateien

Nicht jeder kommt in den Genuss einer Individual-Software. Büro-Arbeiter, die nicht mit Datenbanken, sondern mit klassischen Dateien, Dokumenten, Präsentationen und Tabellen arbeiten, profitieren nicht von Event Sourcing, da dieses bewusst in neu zu entwickelnde Software eingebaut werden muss.

Doch Datei-Nutzer sind nicht verloren. Denn auch für Dateien gibt es Abhilfe. Was ursprünglich Software-Entwickler für die Verwaltung ihres Datei-Chaoses erfanden, können Sie nun auch nutzen. Sogenannte „Versionskontrollsysteme“ erlauben es Ihnen, Arbeitsabschnitte (sog. Commits) zwischenzusichern. Später können Sie auf alte Arbeitsabschnitte zurückspringen und Dateien in einer alten Version ansehen, wobei Sie für jeden Arbeitsabschnitt explizit benennen können, was Sie genau getan haben.

Zusätzlich können Sie mit Versionskontrollsystemen Dateien zwischen mehreren Rechnern austauschen. Mehrere Personen können an Dokumenten gleichzeitig arbeiten und Änderungen werden zusammengeführt.

Unser Angebot: Einen Tag lang alles lernen und ausprobieren

Klingt das für Sie zu utopisch? Dann lernen Sie es doch ganz konkret kennen! Wir nutzen die kostenlose Software Git und sind bereit, unsere Erfahrungen mit Ihnen zu teilen. Dazu bieten wir ein ganztägiges Brückenkopf-Seminar. Git ist zwar einfach zu erlernen, doch wir wollen uns trotzdem genug Zeit nehmen, alles tiefgründig zu verstehen. Seminarinhalte sind:

  • Konzepte von Versionskontrolle
  • Änderungen einsehen und zurückverfolgen
  • Änderungen übers Netzwerk austauschen
  • Konfliktbehandlung
  • Praktisches Ausprobieren

Interessiert? Dann organisieren Sie einen Schulungstag und laden uns ein. Schreiben Sie eine E-Mail an seminar@launix.de, damit wir Ihnen ein Angebot zur Schulung machen.

Messungen an Landing Pages

In diesem Artikel stelle ich die Auswertung der Messwerte an einer Landing Page vor.

Unser Testobjekt

Eigens zu Test- und Forschungszwecken haben wir eine kleine Landing Page vorbereitet. Sie zeigt Dr. Snider, der eine Wunderpille verkauft, die schlank macht. Die Landing Page gehört zur Klasse der Video-Landing Pages (mehr dazu im Artikel über Landing Pages und ist aufs wesentliche reduziert:

  • Überschrift
  • ein großflächiges Video
  • ein Button „für x US$ kaufen“, der nach einiger Zeit erscheint
  • das gesetzlich vorgeschriebene Impressum

Das Video haben wir eigens für diesen Test produzieren lassen und zeigt einen „Doktor“, der eine Wunder-Pille verkauft, die schlank macht. Wir haben uns bewusst für das Schlankheits-Thema entschieden, da allgemein bekannt ein großer Markt dafür existiert. Somit konnten wir recht günstigen, ungetargeteten Traffic dafür einkauen. Sollten Sie ein ernst gemeintes Thema bewerben wollen, das eine kleinere Zielgruppe anspricht, sollten Sie auf alle Fälle hochwertigeren Traffic benutzen.

Die Landing Page als Messinstrument

Neben der Conversion Rate Anzahl Käufer / Anzahl Besucher war es uns auch wichtig, AB-Tests durchzuführen. Konkret hat uns interessiert, wie hoch die Conversion Rate ist, wenn das Produkt 1€, 5€ oder 39€ kostet. Technisch haben wir das so realisiert, dass jedem Besucher eine zufällige Variante der Seite ausgeliefert wurde. Die Datenauswertung kann dann für alle Varianten getrennt erfolgen.

Was wir gemessen haben

Nach dem deutschen Datenschutz-Gesetz gelten für die Verarbeitung personenbezogener Daten besondere Regeln, die insbesondere mit Recht auf Auskunft, Recht auf Löschung, Korrektur und vielem mehr behaftet sind. Um diesen Aufwand zu sparen, ist es wichtig, das Prinzip der Datensparsamkeit bewusst anzuwenden. Anonymisiert man Daten ausrechend, sodass keine Rückschlüsse mehr auf die Person gezogen werden können, fallen diese nicht unter die strengen Regelungen der Personenbezogenen Daten. Das heißt konkret für Landing Pages: Keine Cookies, keine IP-Adressen, keine Verknüpfungen mit z.B. Facebook-Accounts oder Google-Accounts.

Pro Besucher wurde ein Datensatz angelegt, der folgendes misst:

  • Gewählte Variante (1€, 5€ oder 39€)
  • Zeitpunkt des Besuchs
  • Dauer des Besuchs
  • Zeitpunkt, an dem der Kaufen-Knopf geklickt wurde (oder 0 falls nicht geklickt)

Auswertung der Daten

Hier einige SQL-Anfragen:

  • SELECT COUNT( * ) FROM `Visitor`
    Wie viele Besucher gab es auf der Seite?
    21205
  • SELECT AVG( TimeToLive <>0 ) FROM `Visitor`
    Wie viele der Besucher haben das Video gestartet?
    0.7210 (72%)
  • SELECT AVG( TimeToLive >10 )
    FROM `Visitor`

    Wie viele der Besucher haben sich die Seite länger als 10 Sekunden angesehen?
    0.4208 (42%)
  • SELECT AVG( TimeToLive >35 ) FROM `Visitor`
    Wie viele der Besucher haben sich das Video zu Ende angesehen?
    0.1123 (11%)
  • SELECT Variante, (SELECT Preis FROM Variante WHERE Variante.ID = Variante) AS Preis, COUNT(*) FROM `Visitor` GROUP BY Variante
    Wie viele Besucher gab es je Variante?

    Variante Preis COUNT(*)
    1 1 6988
    2 5 6906
    3 39 7311
  • SELECT Variante, (SELECT Preis FROM Variante WHERE Variante.ID = Variante) AS Preis, SUM(TimeCallToActionClicked<>0) AS Converters, AVG(TimeCallToActionClicked<>0) AS ConversionRate FROM `Visitor` GROUP BY Variante
    Welche Variante hatte welche Conversions?

    Variante Preis Converters ConversionRate
    1 1 4 0.0006
    2 5 4 0.0006
    3 39 2 0.0003
  • SELECT SUM(Preis * (TimeCallToActionClicked<>0)) FROM Variante, Visitor WHERE Variante.ID = Visitor.Variante
    Wie hoch sind die potenziellen Einnahmen? (Preis*Conversion)
    102 €

Fazit

Video-Landing Pages werden beachtet. 11% der Besucher haben sich das Video zu Ende angesehen. Die Conversion Rate lag unter einer Promille, was zum einen mit unserem unseriösen Test-Angebot zusammen hängen kann, zum anderen war der Traffic nicht gerade der teuerste. Beachtet man jedoch die vorhandenen Conversions, muss man sagen, dass man mit 102€ potenziellen Umsatz für die 21.000 gekauften Besucher von Adfly, die lediglich 8 € gekostet haben, jede Menge erreicht hat.

Überlegen Sie jetzt auch, mehr Kunden durch Landing Pages zu gewinnen? Wir von Launix helfen gern weiter.

MySQL-Datenbank-Anfragen optimieren: Zu jeder Query passt ein MultiIndex

Neulich führte ich eine Query aus, die mehr als 9 Sekunden rechnete. Die Query bestand aus einem Join zweier Tabellen: Eine Liste von Items und einem Zeitverlauf je Item. Vom Schema sah das ungefähr so aus:

Item(ShopID, SubID, Title)
ItemPrice(ShopID, SubID, Price, Timestamp)

Die Query sah ungefähr so aus:
SELECT Title, (SELECT Price FROM ItemPrice p WHERE i.ShopID = p.ShopID AND i.SubID = p.SubID ORDER BY Timestamp DESC LIMIT 1) AS Price FROM Item i

Auf gutdeutsch also: Liste alle Items mit ihrem neuesten Preis auf.

Die Krux mit den Joins?

Hat man etwa 9.000 Items und ca. 11.000 Preisänderungen, würde die Query sofort lahm werden. Doch woran liegt das?

Zum einen gibt es hier eine Nested Query. Es gibt zwar eine allgemeine Methode, beliebige Sub-Queries in Joins umzuwandeln (Paper von Thomas Neumann auf der BTW15, Hamburg), allerdings kann diese Methode nicht mit der ORDER BY und dem LIMIT-Klausel umgehen. Der Ausführungsplan der Query ist also klar: Zuerst wird die Item-Tabelle gescannt und für jede ihrer Zeilen wird die Sub-Query ausgeführt. Grundessenz einer Query-Optimierung hier ist also, dass die Subquery möglichst ohne Zeitaufwand stattfindet (am besten Lookup-Index).

Das nächste Problem ist die unklare Schlüssel-Situation, denn hier bilden zwei Schlüssel den Primär-Index. Ein Index müsste also beide Schlüssel enthalten.

Der MultiIndex

Es gibt grundsätzlich zwei Arten von Indizes: Den Hash-Index und den BTree. Der Hash-Index ist eine Hash-Table, aus der man idealerweise mit einem Aufwand O(1) Items herauspicken kann, deren Zugriffs-Schlüssel man kennt. Der BTree hingegen ist eine Art sortierter Listen-Baum. Der BTree kann weit mehr als der Hash-Index: Items mit einem exakten Key finden, Items, deren Key zwischen zwei Werten liegt oder einfach die Items in sortierter Reihenfolge auslesen.

Weitet man einen Index auf mehrere Dimensionen aus, spielt sich etwas interessantes ab: Beim Hash-Index kann man nur noch Werte abfragen, bei denen man die Werte aller Zugriffs-Schlüssel kennt. Der BTree hingegen hat folgende Features:

  • Ist mein Index 4-dimensional, ich kenne aber nur die ersten 2 Schlüssel-Werte, kann ich trotzdem einen Lookup durchführen
  • Ist mein Index 4-dimensional, ich kenne aber nur die ersten 2 Schlüssel-Werte, kann ich auf dem dritten Schlüssel Bereichs-Anfragen (von-bis) durchführen
  • Ist mein Index 4-dimensional, ich kenne aber nur die ersten 2 Schlüssel-Werte, kann ich den dritten Schlüssel sortiert auslesen

Technisch gesehen ist der multidimensionale BTree also eine Liste, die nach den Schlüsseln sortiert ist. Der Aufwand für eine BTree-Anfrage ist O(log(n)).

Effiziente Verwendung des MultiIndex

Jeder Index verbraucht Speicher in der Datenbank. Deshalb sollte man sparsam mit Indizes umgehen. Doch folgende Richtlinien helfen bei einem guten Index-Aufbau:

  1. Für eine Query, die über 3 Attribute joint, legt man für diese 3 Attribute den Index an
  2. Die Attribute, die im Join mit „=“ verglichen werden (EquiJoin), werden an den Anfang des Index gestellt
  3. Das Attribut, nach dem sortiert wird oder Bereichs-Abfragen stattfinden, kommt hinten hin
  4. Hat man einen Index über die Spalten (a,b,c) und einen Index über die Spalten (a,b), kann der (a,b)-Index entfallen, da der (a,b,c)-Index diese Anfragen auch durchführen kann.
  5. Die Spalten, die in Queries mit „=“ verglichen werden, sind im Index vertauschbar. Das kann man nutzen, um 4. optimal auszunutzen.

Zurück zum Beispiel

Um die Query im oberen Beispiel also effizient abarbeiten zu können, ist folgender Index empfehlenswert:
Index(ShopID, SubID, Timestamp)

Die beiden Equi-Joins ShopID und SubID sind normale O(log(n))-Lookups auf dem Index. Hat man diese Range eingeschränkt, besteht die Range nur noch aus einer nach Timestamp sortierten Liste des über ShopID und SubID festgelegten Items. Aufgrund der ORDER-BY-DESC-Klausel weiß der Index nun, dass er aus der sortierten Liste das letzte Item zuerst auslesen muss. Die LIMIT-1-Klausel bricht beim Auslesen des ersten Items ab. Effektiv wurde also O(log(n)) Zeit in der inneren Schleife verbraucht.

Fazit

Zu jeder noch so komplizierten Query lässt sich ein Multi-Index finden, der die Joins optimiert. Software von Launix wird also auch bei großen Datenmengen effizient laufen.

Ihre Geschäfts-Erfahrung im Datengewand

Es sind die vielen Feinheiten, die einen Bäcker und Konditor erst zum Meister machen. Die Erfahrung, Jahrzehnte gearbeitet zu haben und nach jeder getaner Arbeit das Resultat betrachtet und Feedback gesammelt zu haben. Die Erfahrung, zig winzige Verhaltensweisen zu optimieren – eine Informationsflut, die praktisch unmöglich Lehrlingen in den 3 Jahren beigebracht werden kann.

Erfahrungen sind Datensammlungen

Erfahrung ist nicht nur die Ansammlung von Erlebnissen, sondern auch die Weiterverarbeitung dieser Erlebnisse. Ein alter Mann, der schon zig Einbrüche begangen hat, jedes mal hinter Gitter kam, aber immer noch stiehlt, hat aus seinem Erfahrungsschatz nichts gelernt. Ein Kind hingegen, das einmal eine heiße Herdplatte anfässt, hat hingegen seine Lektion gelernt.

Demzufolge ist das Sammeln und Ordnen aller Erlebnisse die fundamentale Grundlage zum Aufbauen eines Erfahrungsschatzes. Doch nur das Ziehen von Konsequenzen, das Lernen, das Controlling, hilft letzendlich, Kapital aus der Erfahrung zu schlagen. In der Informatik gesprochen, benötigen Sie also beides: Sowohl die Datenbasis, als auch die Algorithmen, um die Datenbasis auszuwerten.

Problem: Großunternehmen

Ein Einzelunternehmer wird noch aus jedem Geschäftsvorfall etwas lernen können, aber ein großes Unternehmen ist im Bezug auf Erfahrung wie ein Sieb, wie der gutbetagte Einbrecher. Warum ist das so?

Große Unternehmen sind nicht mehr die Einzelperson, die den Überblick über alle Vorfälle hat. Sie gleicht vielmehr einem Organismus, der nur funktioniert, wenn ein Gehirn über Nervenzellen mit allen Organen verbunden ist. Die Organe, beispielsweise das Auge, die Haut oder der Magen, sammeln Reize ein, das Gehirn verarbeitet sie und letzendlich gibt das Gehirn Anweisungen an Arme und Beine, um die notwendigen Schritte einzuleiten, beispielsweise die Hand von der Herdplatte wegzuziehen.

Große Unternehmen haben ein ….

Kommunikationsproblem! Nicht mehr ein Mensch sammelt die Erfahrungen in seinem Kopf, sondern mehrere Menschen sammeln Erfahrung, die nur dann hilfreich ist, wenn sie an alle Mitarbeiter, die etwas damit anfangen können, weitergegeben wird.

Wie diese Erfahrung bestmöglich verteilt wird, gibt es hunderte Bücher, Coaches und Management-Theorien. Einige Firmen behelfen sich mit lang andauernden Meetings, bei denen Wissen breit verteilt wird, andere Firmen spezialisieren ihre Mitarbeiter und reichen sie telefonisch von Station zu Station. Wir bei Launix beschäftigen uns damit, Datenbanken anzufertigen, auf die Ihre Mitarbeiter zugreifen können. Daten werden eingetragen und können bei Bedarf abgefragt werden. Auf diese Weise etabliert sich wieder ein Gesamt-Wissen der Firma, bei der ein Mitarbeiter mit genau den Teilen der Informationsflut konfrontiert wird, die ihn betreffen.

Mit Zahlen Banken überzeugen

Haben Sie schon einmal einer Bank einen Businessplan vorgelegt oder versucht, einen solchen vor Geschäftsgründung anzufertigen?

Prognosen aus dem Ungewissen

Unternehmer sein heißt, Entscheidungen unter Ungewissheit zu treffen. Allerdings ist Ungewissheit kein Schwarz-Weiß. Beispielsweise wissen wir beim Wandern nicht, ob wir beim nächsten Schritt stürzen werden oder nicht.Durch Zuhilfenahme unserer Augen können wir dieses Risiko aber gut abschätzen und dementsprechend reagieren. Und unser Gleichgewichtssinn hilft uns, einen potenziellen Sturz durch Stolpern zu deeskalieren. Warhnehmungen und Input helfen uns, bessere Entscheidungen zu treffen.

Der Königsweg bei Entscheidungen

EVA-Prinzip
Will man wohlfundierte Entscheidungen treffen, sollte man das EVA-Prinzip anwenden: Eingabe, Verarbeitung, Ausgabe. Da bei Entscheidungen unter Ungewissheit allerdings nicht alle Eingaben vorliegen, müssen die vorhandenen Informationen als Eingabe genommen werden und in der Verarbeitungs-Phase bestmögliche Möglichkeiten prognostiziert werden. Möglichkeiten der Prognose sind:

  • Extrapolation: Die letzten Jahre waren das Wachstum der Branche jedes Jahr 5%; Dieses Jahr also auch
  • Analogien: Ein Mitbewerber macht X Umsatz, also dürfte es mir auch möglich sein
  • Differenzierung zu Analogien: Wird Mitbewerber X Marketing-Budget haben und Y Marktanteil, werde ich mit 2% von X Marketing-Budget auch nur 2% von Y Marktanteil bekommen

Weniger Informationen sind besser als schlechte Informationen

Benutzen Sie lieber 5 Datensätze aus Ihrer eigenen Firma, um Ihre Verkaufsprognosen zu tätigen, als 1.000 Datensätze eines branchenfremden Konkurrenten. Aus wenig guten Informationen können Sie noch stichhaltigere Erkenntnisse gewinnen, als aus vielen Datensätzen, die Fehler enthalten oder unpassend sind.

Wird das die Bank überzeugen?

Haben Sie Ihre Datenbasis erschlossen und die richtigen Daten-Weiterverarbeitungs-Verfahren ausgewählt, geht es ans Eingemachte: Der Banken-Präsentation. Lediglich die errechneten Zahlen vorzuzeigen, wird niemanden überzeugen. Bauen Sie also folgendes in die Präsentation ein:

  • Erklären Sie, welche Daten Sie als Ausgangsbasis gewählt haben
  • Erläutern Sie, warum gerade diese Eingangsdaten am besten geeignet sind, für Ihre Prognose gute Ergebnisse zu liefern
  • Erklären Sie, wie Sie die Daten weiterverarbeitet haben und warum gerade diese Verrechnung die Daten für Ihre Situation aufbereiten wird
  • Nennen Sie das Ergebnis Ihrer Prognosen und sagen Sie, was auf dieser Datengrundlage Ihre Entscheidung ist

Fazit

Grundlage jeder Prognose müssen real messbare Daten sein. Je feiner diese sind und je besser Ihre Verarbeitungs-Fähigkeiten aus wenig Informationen gute Erkenntnisse gewinnen, desto bessere Prognosen können Sie erstellen. Nicht nur die Banken werden es Ihnen danken, sondern auch Sie selbst, denn nichts ist schlimmer als eine Prognose, die zwar die Bank überzeugt, Sie den Kredit aufnehmen und das Geschäftsmodell anschließend nicht aufgeht.