Quando si avvia un nuovo progetto software che verrà utilizzato su più piattaforme, come si determina il modo migliore per avviare lo sviluppo? Ti sviluppi per una piattaforma e poi la porta a quella successiva? Cerchi di sviluppare tutte le piattaforme contemporaneamente?
Ad esempio, inizierò a sviluppare un'applicazione per Windows Phone in C #. Gran parte del mio codice potrebbe teoricamente essere riutilizzato con .NET Framework e Silverlight. Tuttavia, trovo che mentre provo a sviluppare su tutte le piattaforme contemporaneamente, il refactoring e la riprogettazione tendono a essere 3 volte più difficili e lenti.
Potrei provare a scrivere la mia app per Windows Phone e poi portarla su altre piattaforme, ma non ho idea di cosa mi aspettino i hairballs, e sembra che ci sarebbe un sacco di potenziale per le decisioni di design di mordermi nel culo solo dopo aver iniziato il porting.
Quindi quale è meglio: sviluppare il codice per tutte le piattaforme contemporaneamente, oppure refactoring e porting su nuove piattaforme uno alla volta? Quali trappole mi aspettano su entrambe le strade?