Ich bin Teil der Software Approvals Group für ein multinationales Unternehmen und würde absolut alles wiederholen, was Adam oben gesagt hat.
Ich möchte auch die folgenden Punkte ansprechen: Erstens zahlen Sie immer alle Ihre "Entwicklungssteuern".. Dies bedeutet, dass Sie sicherstellen müssen, dass Ihre App in einer Vielzahl von Umgebungen ordnungsgemäß funktioniert, die Sie möglicherweise nie verwenden, die aber höchstwahrscheinlich für große Unternehmen ein Deal-Breaker sein werden. Dies sind Dinge wie die Sicherstellung, dass Ihre App gut mit Roaming-Benutzerprofilen und funktioniert umgeleitete Benutzerordner (verwenden Sie immer Windows-APIs, um Benutzer- und Profilordner zu finden, gehen Sie niemals davon aus, dass sie sich an Standardspeicherorten oder sogar auf dem lokalen Laufwerk befinden), und stellen Sie sicher, dass sie auf Remotedesktopservern (auf denen möglicherweise eine vorhanden ist) einwandfrei funktionieren 100 Kopien Ihrer App werden gleichzeitig ausgeführt (einige verwenden sehr langsame Verbindungen), auf Laptops mit langsamen Netzwerkverbindungen oder schwachen Batterien und so weiter. Als Beispiel haben wir kürzlich neue Versionen von mehr als einer Software von einem sehr großen Unternehmen abgelehnt (beginnt mit "A" und ist berühmt für Grafiken), weil ihre Apps plötzlich nicht mehr funktionieren.
Selbst für freie / Open-Source-Software müssen Endbenutzer häufig ein Antragsformular einreichen, um die Software überprüfen und genehmigen zu lassen.
Nach dem Ton Ihres Kommentars klingt es so, als ob Sie denken, dass der Genehmigungsprozess etwas mit den Kosten zu tun hat? Aus unserer Sicht würden wir die Kosten pro Einheit einer App im Genehmigungsprozess überhaupt nicht berücksichtigen. Finanzielle Rechtfertigungen für Apps wurden ausgearbeitet, Software-Genehmigungen erfolgen aus technischer Sicht und unter dem Gesichtspunkt der Support-Fähigkeit. Freie und Open Source-Software hat im Allgemeinen mehr Probleme, unseren Prozess zu durchlaufen als eine proprietäre kommerzielle App. Oft liegt dies einfach an der mangelnden Rechenschaftspflicht. An wen gehst du, wenn es Probleme mit der App gibt und du Unterstützung brauchst, was ist ihre SLA? Wen fragen Sie, wenn Sie herausfinden möchten, ob die App mit einer neuen Version von OtherApp vX funktioniert? Geben sie Ihnen wirklich eine Antwort, auf die die Leute wirklich hinarbeiten, oder ist dies eine vage Antwort? "
Sobald der Prozess befolgt und die Software installiert wurde, können Upgrades problematisch sein. Viele Unternehmen halten sich aus Angst vor unbekannten Problemen eher an ältere Softwareversionen (Windows XP, Office 2003 usw.).
Software-Upgrades müssen denselben Prozess durchlaufen wie völlig neue Software. Der einzige Vorteil, den sie haben, ist, dass wir die Antworten auf einige der Fragen bereits kennen, da wir die Software bereits unterstützt haben (dies ist möglicherweise nicht positiv für die Software, Support-Teams haben Upgrades aufgrund von Erfahrungen mit abgelehnt das Unternehmen).
Bevorzugen Sie MSIs oder xcopy-fähige Software?
Jede dieser Bereitstellungsmethoden kann gut sein, solange sie ordnungsgemäß verpackt wurden. Andernfalls wird Ihr Installationsprogramm wahrscheinlich herausgerissen und die Software für die Bereitstellung selbst neu verpackt.
- Unabhängig davon, welches Installationsprogramm Sie verwenden, müssen Sie sicherstellen, dass Sie alle unbeaufsichtigten Installationsmodi einhalten. Wenn für Ihre App eine manuelle Installation erforderlich ist, dh ein sofortiger Deal Breaker, gibt es einfach keine praktische Möglichkeit, dies auf Computern auf 5 Kontinenten zu tun, die alle Nicht-Hardware-Unterstützung von einer Zentrale erhalten.
- Angesichts der Wahl würde ich eine gut gemachte MSI-Installation einer gut gemachten xcopy-Installation vorziehen. Das Problem bei den meisten Xcopy-fähigen Softwareteilen besteht darin, dass sie versuchen, sich beim ersten Start einzurichten und zu registrieren. Ich habe sehr selten eine App gefunden, die dies richtig macht und in einer Roaming-Benutzer- / Hotdesk-Umgebung keine Probleme verursacht. MSI-Installationsprogramme (wenn Sie sich an die Standard-API halten) können nicht zu weit gehen.
- Stellen Sie sicher, dass Ihre unbeaufsichtigte Installation die Möglichkeit bietet, alle Konfigurationsänderungen vorzunehmen, die bei einer manuellen Installation vorgenommen werden können. Wenn Sie MSI verwenden und sich an die API halten, ist dies in Ordnung. Wir können MST-Transformationen durchführen und dies alles problemlos tun. Wenn Sie ein anderes Installationsprogramm eines Drittanbieters verwenden, stellen Sie sicher, dass es eine Antwortdatei oder eine INI-Datei oder ähnliches zulässt. Testen Sie die unbeaufsichtigte Installation und stellen Sie sicher, dass alle Optionen funktionieren. Ich bin auf Produkte gestoßen, die ihre Optionen für die unbeaufsichtigte Installation erfreulicherweise ankündigen, aber nie getestet haben, ob alle Optionen funktionieren.
- Geben Sie uns in der unbeaufsichtigten Installation vorzugsweise zusätzliche Optionen, mit denen wir viele Einstellungen festlegen können, die ein Benutzer normalerweise im Optionsfeld ändern würde. Dies kann durch Einschalten der setup.exe geschehen, indem eine dokumentierte INI-Datei für die Einstellungen vorhanden ist, indem die erforderlichen Registrierungsänderungen dokumentiert werden oder alle oben genannten. Wie auch immer, wir möchten sicherstellen, dass unsere Benutzer mit der Software arbeiten können, ohne selbst eine Konfiguration vornehmen zu müssen. Wichtige hier sind Standardspeicherorte für Dateien, Standardservernamen und Proxy-Einstellungen (falls Ihre App ausgeführt wird) über ein Netzwerk) usw.
Wenn die Software Frameworks (Java, .NET) erfordert, ist das mehr oder weniger problematisch?
Es ist definitiv problematischer. Die Versionierung in den meisten Frameworks und die Abwärts- / Vorwärtskompatibilität sind grausam. Insbesondere mit Java erfordern viele Apps (und Websites) eine bestimmte Haupt- und Nebenversion von Java und funktionieren mit nichts anderem. Wenn Sie drei verschiedene Apps auf einem Computer installieren müssen, für die alle unterschiedliche Java-Versionen erforderlich sind, und diese nicht mit den Standardmethoden zum Tarnen einer Java-Version als andere zufrieden sind, treten Probleme auf. .Net hat seine eigenen Probleme mit der Versionierung, lässt Sie jedoch gerne alle wichtigen Versionen des Frameworks gleichzeitig installieren, wodurch viele dieser Probleme behoben werden.
Wenn die Software automatische Updates unterstützt, erlauben Sie dies im Allgemeinen?
Noch nie. Es gibt viel zu viele Probleme bei der Versionierung und Interoperabilität, als dass sich eine App jemals ohne Vorwarnung selbst aktualisieren könnte. App-Upgrades erfordern Tests und Planung. Auch Benutzer mit normalen Benutzerrechten können die Updates ohnehin nicht anwenden. Wenn Sie eine Bereitstellungsmethode verwenden, die das Patchen ermöglicht (z. B. MSIs mit MSP-Patches verwenden), kann dies das Sicherheitspatching für Apps erheblich erleichtern, und wir können die automatische Aktualisierung mithilfe unserer Bereitstellungstools (WSUS und SMS) selbst verwalten ). Auch unser Sicherheitsteam ist sehr misstrauisch gegenüber jeder App, die "zur Basis zurück spricht". Sie möchten genau wissen, welche Informationen gesendet werden und warum sie etwas über das Internet an einen unbekannten Server senden müssen.
Wie lange dauert es in der Regel?
Einige einfache Apps und Versions-Upgrades können festgelegt werden, solange 6 Personen in Outlook auf die Schaltfläche "Genehmigen" klicken. Komplexere oder kontroverse warten möglicherweise alle zwei Wochen auf unser Gruppentreffen. Einige Apps werden möglicherweise bei mehr als einem dieser Meetings besprochen, wenn Teams Fragen zu einer App wegnehmen und recherchieren / testen.
Welche Art von Lizenzmodellen bevorzugen Sie (übertragbar, pro Sitzplatz, pro CPU, standortweit)?
Kommt ganz darauf an, wie und von wie vielen Personen die App genutzt wird. Das Wichtigste ist, dass Ihre Lizenzierung klar definiert ist. Wir müssen unsere Mitarbeiter zu (wenn auch kostenlosen) Kursen schicken, um die Microsoft-Lizenzierung zu verstehen. Wir werden uns nicht die Mühe machen, das für einen ISV zu tun.
Berücksichtigen Sie bei der Lizenzierung unsere stillen, automatisierten Installationsanforderungen. Wenn Ihre Lizenzen aktiviert werden müssen, müssen wir Sie nicht jedes Mal anrufen / per E-Mail benachrichtigen, wenn wir eine App auf einem PC neu installieren. Wenn für jede Kopie der App ein separater, anderer Lizenzschlüssel eingegeben werden muss, können wir diesen nicht automatisch bereitstellen. Wenn wir jedoch einen Bulk-Schlüssel (2, 10, 50, 500 usw.) kaufen können, der gespeichert werden kann die leise Installation, dann freuen wir uns. Es ist sogar noch besser, wenn wir ein Jahr später zu Ihnen zurückkehren und verhandeln können, um die Anzahl unserer Lizenzen zu erhöhen, ohne den in die Software eingegebenen Schlüssel ändern zu müssen.
Was können ISVs noch tun, um ihre Chancen auf eine Genehmigung ihrer Software zu verbessern?
Wir werden uns auch mit Dingen befassen, die nicht eng mit dem aktuellen Stand Ihrer App zusammenhängen. Denken Sie daran, dass Ihre App, wenn sie Teil des Standard-Workflows für einen unserer Bereiche wird, möglicherweise 10 Jahre oder länger verwendet wird. Wie sieht also die Roadmap Ihres Produkts aus? Wenn Sie die neueste brandneue oder in der Entwicklung befindliche Version von Windows noch nicht unterstützen, haben Sie einen Plan, wann Sie dies tun werden? Sieht es so aus, als würden Sie sich an diese Roadmaps halten? Sieht es so aus, als hätten Sie Pläne für drastische Änderungen an Ihrer App, entweder in Bezug auf die Funktionsweise oder die verwendeten Technologien / Frameworks? Steckt Ihre App in andere Apps, z. B. MS Office oder IE, wenn ja, wie tolerant ist sie gegenüber älteren oder neueren Versionen?