Woran erkennt man ob ein Software Entwickler oder jemand der für diese Person Entscheidungen trifft versagt hat? Richtig, unter anderem an dem Fakt das man meint ein Problem mit dem Autostart von Software lösen zu können.

Autostart ist eine Maßnahme etwas zu starten bevor es der Benutzer tatsächlich angefordert hat. Vor allem unter Windows ist das eine sehr beliebte Möglichkeit alte Hardware an die Grenzen ihrer Leistungsfähigkeit zu treiben, denn noch vor wenigen Jahren waren Systeme mit 4GB oder mehr Arbeitsspeicher eher die Ausnahme als die Regel.

Oft versprechen sich die Entwickler folgendes davon, die Reihenfolge hierbei zufällig:

  • Information des Benutzers über Ereignisse
  • Präsentation das alles OK und aktuell ist
  • Schnelleres starten einer Anwendung
  • Aktualisierung einer Anwendung im Hintergrund

Nehmen wir uns mal einen typischen SOHO-Anwender, und beobachten dabei was dieser beim Einschalten seines PCs beachtet: Nichts.

Das ist eine Feststellung welche ich in den letzten Jahren immer und immer wieder gemacht habe, der normale Anwender beschäftigt sich erst mit dem Rechner wenn alles geladen ist. Meldungen beim oder direkt nach dem Systemstart haben keine Information welche der Benutzer beachtet, Beispiele gefällig?

  • Hinweise auf Updates werden geschlossen.
  • Hinweise auf eine leere Tintenpatrone werden geschlossen.
  • Hinweise das eine Gefahr besteht (Danke Norton!) werden ignoriert.
Die Liste könnte ich noch ewig fortsetzen, ihr kennt das aber schon.

Als Ursache hierfür 2 mögliche Gründe:

  1. Der Benutzer möchte einfach Arbeiten oder im Internet surfen.
  2. Der Benutzer weiß nichts mit der Meldung anzufangen.
Ich gehe davon aus das es regelmäßig eine Kombination aus beidem ist, der typische Anwender hat ein Ziel und möchte dies (wie sonst auch im Leben) auf kürzestem Weg bei minimalem Aufwand erreichen.

So, wir wissen jetzt das die Meldungen in den ersten ungefähr 5 Minuten wertlose Informationen enthalten. Dann kommen wir zum nächsten Kritikpunkt an diesen tollen Autostart Funktionen welche (eigentlich) niemand haben will: Performance

Jedes Programm welches beim Systemstart geladen wird muss eben bei jedem Systemstart geladen werden. Das klingt doof, ist aber wirklich so. Die Ressourcen die hierbei verbraucht werden stehen nach dem Start anderen Anwendungen nicht zu Verfügung. Gleichzeitig benötigt das System (wesentlich) länger zum Starten als ohne diese (dämlichen) Tools. Ich konnte in den letzten Jahren regelmäßig auf vielen Systemen mehrere hundert Megabyte Arbeitsspeicher und teilweise Minuten an Startzeit des PCs sparen indem ich nichts weiteres gemacht habe als mit msconfig unter Windows die Autostarts zu weiten teilen zu deaktivieren. Bei den meisten Einträgen handelt es sich um Tools für Update Benachrichtigungen oder aber Programme welche dem Anwender "Zusatzfunktionen" bringen möchten.

Zum Thema Performance gehört auch die Anbindung an das Internet, viele dieser Tools sind der Meinung einfach ohne Rückfrage dieses Internet von dem immer alle reden benutzen zu dürfen: Falsch, ein Anwender der gerade im Zug sitzt und EDGE bei gedrosseltem Volumentarif verwendet dürfte darüber nicht sonderlich Glücklich sein, das seine Internetverbindung noch zusätzlich unbrauchbar gemacht wird.

Wie wir oben erfahren haben wir der normale Anwender diesen Update Benachrichtigungen keinen großen Wert schenken, zumindest nicht so lange die Meldung einfach zu schließen ist. Gleichzeitig wird der typische Anwender auch mit einem ATI Catalyst Tool oder dem Pendant von nVidia nur wenig Anfangen. Zumindest ich kenne keinen Office Anwender welcher die Kantenglättung oder VSync verändert um die beste Performance beim scrollen von Excel Sheets zu haben ;-)

Jetzt haben wir 2 Probleme angesprochen, zum einen die sinnlosen Informationen, und zum anderen die sinnlose Verschwendung von teuer gekauften Systemressourcen. Kommen wir also zum letzten Punkt: Sicherheit.

Jedes Programm welches man auf seinem System installiert, mit all seinen Abhängigkeiten, stellt ein potentielles Sicherheitsrisiko dar. Insbesondere dann wenn es ohne Benutzerinteraktion etwas tut und im schlimmsten Fall sogar mit Administratorrechten läuft. Es gibt genug Fälle in denen automatische Routinen verwendet wurden um auf ein (eigentlich) sicheres Systeme unerwünscht etwas zu installieren. Oft haben die Entwickler hier schon an anderer Stelle versagt, z.B. beim überprüfen ob die Verbindung zum Updateserver tatsächlich ein gültiges SSL Zertifikat hat und die Software welche aktualisiert wird auch tatsächlich die passende digitale Signatur trägt. Der liebe Update Mechanismus spielt einem also statt dem tollen Updaten für das nette Freeware Office Programm, lieber einen Schwung Trojaner auf.

Ich denke es gibt noch wesentlich mehr Gründe warum man keine Programme will die beim Start vom System automatisch starten, natürlich möchte ich aber noch ein paar Lösungen vorschlagen, in der Hoffnung das diese irgendjemand beachtet:

  • Zeige Informationen immer dann an wenn der Anwender diese benötigt, eine leere Druckerpatrone beschäftigt den Anwender beim Druckvorgang, und nicht beim starten vom System.
  • Wenn dein Programm eine neue Version findet, was beim Start der Anwendung zu prüfen ist, sollte der Benutzer informiert werden das eine neue Version vorhanden ist. Bei einem vorhandenen Sicherheitsloch sollten z.B. Plugins für den Browser (häufiger Angriffsvektor!) ihren Dienst einstellen bis das Problem behoben wurde.
  • Einstellungen welche 99% der Anwender im normalen Leben nicht benötigen muss der Benutzer auch nicht als Tray-Icon sehen, es ist ausreichend diese an geeigneter Stelle in der Systemsteuerung zu verknüpfen.
  • Zeige dem Benutzer nur Informationen zu Sachen an die ein Problem sind, weniger Informationen werden mehr beachtet als durchgehend Meldungen vom selben Programm. Die Information das ein Virenscanner (anderes Thema) heute schon 4 Updates erhalten hat ist weniger relevant als die Information das seit 7 Tagen keine Verbindung zum Updateserver mehr erfolgen konnte.
  • Wenn dein Programm ohne aktiven Autostart sehr lange Ladezeiten hat, löse dieses Problem und schreibe dir keinen Autostart.
  • Wenn du wirklich (!!!) ein Programm in den Autostart installieren möchtest, frag zuvor den Anwender bei der Installation. Standard sollte hierbei sein das kein Autostart erfolgt.
Auch das ist natürlich nur eine kurze Liste, quasi für den Einstieg, da ist noch viel Platz für Ergänzungen ;-)

Dieser Artikel war sehr stark auf Windows ausgerichtet, gilt aber zu weiten teilen auch 1:1 für Linux. Hier ist mit z.B. erst Google Chrome negativ eingefallen welcher sich automatisch in den Autostart vom Desktop einträgt, nur damit irgendwelche Apps im Hintergrund laufen können. Ob diesen Artikel wirklich Entwickler lesen, und vor allem auch beachten werden?