Faccio parte del Software Approvals Group per un'azienda multinazionale e vorrei assolutamente fare eco a tutto ciò che Adam dice sopra.
Vorrei anche sottolineare i seguenti punti, in primo luogo pagare sempre tutte le "tasse di sviluppo". Ciò significa assicurarsi che la tua app funzioni correttamente in tutta una varietà di ambienti che potresti non usare mai, ma che molto probabilmente costituirà un punto di rottura per le grandi aziende, come ad esempio assicurarsi che la tua app funzioni bene con i profili utente in roaming e cartelle utente reindirizzate (utilizzare sempre le API di Windows per trovare le cartelle degli utenti e dei profili, non dare mai per scontato che si trovino in posizioni standard o persino sull'unità locale), assicurandosi che vengano riprodotte correttamente sui server Desktop remoto (dove potrebbe esserci un 100 copie della tua app in esecuzione contemporaneamente, alcune con connessioni molto lente), su laptop con connessioni di rete lente o batterie scariche e così via. Ad esempio, abbiamo recentemente rifiutato nuove versioni di più di un software da una società molto grande (inizia con "A" ed è famosa per la grafica) perché le loro app improvvisamente non '
Anche per i software gratuiti / open source, gli utenti finali devono spesso inviare una sorta di modulo di richiesta per verificare e approvare il software.
Dal tono del tuo commento sembra che pensi che il processo di approvazione abbia a che fare con i costi? Dal nostro punto di vista, il costo unitario di un'app non è qualcosa che prenderemmo in considerazione nel processo di approvazione. Le giustificazioni finanziarie per le app saranno state elaborate, le approvazioni del software verranno eseguite dal punto di vista tecnico e di supporto. Il software gratuito e Open Source in genere ha più problemi a superare il nostro processo rispetto a un'app commerciale proprietaria. Spesso questo è semplicemente dovuto alla mancanza di responsabilità. A chi vai quando ci sono problemi con l'app e hai bisogno di supporto, qual è il loro SLA? A chi chiedi quando hai bisogno di scoprire se l'app funzionerà con una nuova versione di OtherApp vX, ti stanno davvero dando una risposta reale a cui le persone stanno davvero lavorando, o è una vaga "
Una volta che il processo è stato seguito e il software è installato, gli aggiornamenti possono essere problematici: molte organizzazioni tendono a rimanere con le versioni precedenti del software (Windows XP, Office 2003, ecc.) Per paura di problemi sconosciuti.
Gli aggiornamenti del software devono passare attraverso lo stesso processo dei nuovi software. L'unico vantaggio che hanno è che sapremo già le risposte ad alcune delle domande poiché abbiamo già supportato il software (questo potrebbe non essere positivo per il software, i team di supporto hanno posto il veto agli aggiornamenti in base all'esperienza con l'azienda).
Preferisci il software MSI o il software compatibile con xcopy?
Entrambi questi metodi di distribuzione possono essere validi, purché siano stati impacchettati correttamente. Altrimenti è molto probabile che strappiamo il tuo programma di installazione e riconfezioniamo il software per la distribuzione da soli.
- Qualunque sia il programma di installazione che usi, devi assicurarti di rispettare tutte le sue modalità di installazione silenziosa e automatica. Se la tua app richiede un'installazione manuale, ovvero un rompicapo istantaneo, semplicemente non esiste un modo pratico per farlo su macchine in 5 continenti che ottengono tutto il supporto non hardware da un ufficio centrale.
- Data la scelta, preferirei un'installazione MSI ben eseguita a un'installazione xcopy ben eseguita. Il problema con la maggior parte dei software compatibili con Xcopy è quando provano a installarsi e registrarsi al primo avvio. Molto raramente ho trovato un'app che lo fa correttamente e non causa problemi in un utente in roaming / ambiente hotdesk. I programmi di installazione MSI (se ti attieni all'API standard) non sono in grado di andare troppo lontano.
- Assicurarsi che l'installazione non presidiata offra la possibilità di apportare tutte le modifiche alla configurazione che è possibile effettuare in un'installazione manuale. Se stai usando MSI e ti attieni all'API, allora va bene, possiamo fare trasformazioni MST e fare tutto questo senza problemi. Se stai utilizzando un programma di installazione di terze parti diverso, assicurati che consenta qualcosa come un file "answer" o un file INI o simile. Testa l'installazione silenziosa e assicurati che tutte le opzioni funzionino, mi sono imbattuto in prodotti che annunciano allegramente le loro opzioni di installazione silenziosa, ma in realtà non hanno mai testato se tutte le opzioni funzionano.
- Preferibilmente ci offrono opzioni extra nell'installazione invisibile che ci consentono di impostare molte impostazioni che un utente normalmente modifica nel pannello Opzioni. Ciò potrebbe avvenire tramite switch su setup.exe, ad esempio avendo un file INI documentato per le impostazioni, documentando le modifiche del Registro di sistema necessarie o tutto quanto sopra. Comunque sia, vorremmo assicurarci che i nostri utenti possano iniziare a utilizzare il software senza dover eseguire alcuna configurazione da soli, quelli importanti qui sono percorsi predefiniti per file, nomi di server predefiniti, impostazioni proxy (se la tua app funziona su una rete), ecc.
Se il software richiede framework (Java, .NET) è più o meno probabile che sia problematico?
È decisamente più problematico. Il controllo delle versioni nella maggior parte dei framework e la compatibilità con le versioni precedenti è atroce. Con Java in particolare, molte app (e siti Web) richiedono una particolare versione principale e secondaria di Java installata e non funzioneranno con nient'altro. Se hai bisogno di mettere tre diverse app su una macchina che hanno tutte bisogno di versioni diverse di Java e non sono contente dei modi standard di mascherare una versione Java come un'altra, allora ci saranno problemi. .Net ha i suoi problemi con il controllo delle versioni, ma ti consente felicemente di installare tutte le principali versioni del framework allo stesso tempo, il che aggira molti di questi.
Se il software supporta gli aggiornamenti automatici, lo consenti in genere?
Mai. Esistono troppi mal di testa per il controllo delle versioni e l'interoperabilità per consentire a un'app di aggiornarsi senza alcun avviso. Gli aggiornamenti delle app richiedono test e pianificazione. Inoltre, gli utenti con diritti utente normali non possono comunque applicare gli aggiornamenti. Se si utilizza un metodo di distribuzione che consente l'applicazione di patch (ad es. Utilizzare MSI con patch MSP), ciò può rendere le cose come la patch di sicurezza per le app molto meno problematiche e possiamo gestire l'aggiornamento automatico tramite i nostri strumenti di distribuzione (WSUS e SMS ). Inoltre, il nostro team di sicurezza è molto diffidente nei confronti di qualsiasi app che "risponda alla base", gli piace sapere esattamente quali informazioni sta inviando e esattamente perché deve inviare qualsiasi cosa a un server sconosciuto su Internet.
Quanto tempo impiega generalmente?
Alcune semplici app e gli aggiornamenti di versione possono essere decisi fintanto che ci vogliono 6 persone a fare clic su un pulsante di votazione "Approva" in Outlook. Quelli più complessi o controversi possono attendere la riunione del nostro gruppo ogni due settimane. Alcune app possono essere citate in più di uno di questi incontri mentre i team pongono domande su un'app e ricercano / effettuano test.
Che tipo di modelli di licenza preferisci (trasferibili, per postazione, per CPU, a livello di sito)?
Dipende totalmente da come verrà utilizzata l'app e da quante persone. La cosa più importante è che la tua licenza è chiaramente definita. Dobbiamo inviare la nostra gente su corsi (anche se gratuiti) per comprendere le licenze Microsoft. Non ci preoccuperemo di farlo per un ISV.
Considera le nostre esigenze di installazione automatizzata e silenziosa quando si tratta di licenze. Se è necessario attivare le licenze, non è necessario squillare / inviare e-mail ogni volta che si reinstalla un'app su un PC. Se ogni copia dell'app necessita di una chiave di licenza separata e diversa digitata, non possiamo distribuirla automaticamente, mentre se possiamo acquistare una chiave in blocco (2, 10, 50, 500, ecc.) Che può essere salvata in l'installazione silenziosa, quindi siamo felici. È ancora meglio se possiamo tornare da te un anno dopo e negoziare per espandere il nostro numero di licenze senza dover cambiare la chiave digitata nel software.
Cos'altro possono fare gli ISV per migliorare le loro possibilità di ottenere l'approvazione del loro software?
Vedremo anche cose che non sono strettamente correlate a come è la tua app al momento. Tenendo presente che se l'app diventa parte del flusso di lavoro standard per una delle nostre aree, potrebbe essere utilizzata per 10 anni o più, quindi come sarà la roadmap del tuo prodotto? Se non supportate ancora l'ultima versione di Windows nuova di zecca o in sviluppo, avete un piano per quando lo farete? Sembra che ti attieni a queste tabelle di marcia? Sembra che tu abbia in programma modifiche drastiche alla tua app, sia nel modo in cui funziona sia nelle tecnologie / framework che utilizza? La tua app si collega ad altre app, ad esempio MS Office o IE, in caso affermativo quanto è tollerante rispetto alle versioni precedenti o più recenti di quelle?