Produttività dello sviluppatore Cobol contro C #

3

Stiamo facendo un'analisi costi-benefici su un progetto di migrazione.

Sarebbe bello poter dire che le modifiche future saranno x% più economiche a causa della migrazione.

Qualcuno ha esperienza o sa di qualche studio che mostra quali benefici potremmo aspettarci?

    
posta Shiraz Bhaiji 24.02.2011 - 12:50
fonte

6 risposte

8

Non penso sia possibile misurarlo in anticipo, perché dipende da troppi fattori come la dimensione del sistema, la qualifica dei programmatori, l'"ecosistema" esistente del software, la strategia di migrazione e così via. Diavolo, potrebbe essere vero che i cambiamenti futuri saranno più costosi dopo la migrazione, dipende davvero.

L'unica cosa che puoi fare è provare a misurare lo sforzo per le modifiche a breve termine dopo che sono fatte e fare un'ipotesi su quanto impegno avresti avuto per la stessa modifica sulla piattaforma Cobol.

    
risposta data 24.02.2011 - 13:25
fonte
7

Stai provando a determinare se sarebbe conveniente effettuare la migrazione di un'app COBOL su C #? Penserei che sarebbe come chiedere se sarebbe economicamente conveniente migrare da una Ford Pinto del 1972 a un 2011 Name Your Brand.

Sul serio, questo è un confronto tra mele e arance. Hai a che fare con una tecnologia che ha passato da tempo il suo primo (COBOL), anche se ci sono ancora probabilmente centinaia di milioni di righe di codice COBOL che funzionano ancora abbastanza bene. Una cosa che devi considerare è la tua probabilità di essere in futuro in grado di trovare sviluppatori COBOL qualificati. Chi sta studiando più COBOL? Chi vuole più una carriera in COBOL? È un dinosauro per quanto riguarda le tecnologie di sviluppo del software.

Posso dirti questo, è abbastanza probabile che qualunque sia l'applicazione, sarà molto più ricca di funzionalità in C #, sarà più manutenibile e sarà più gestibile da più persone rispetto alle tue app COBOL. Se dovessi indovinare, direi che la tua app COBOL è stata sviluppata almeno 15-25 anni fa. Probabilmente hanno lavorato 20 persone diverse in quegli anni. Pochissime persone capiscono cosa fa. E il codice è probabilmente UGLY da guardare e capire.

    
risposta data 24.02.2011 - 13:26
fonte
2

Come mai nessuno ha chiesto "Che cosa fa l'applicazione?" - questo è fondamentale!

Se si tratta di un'applicazione di front-end, utilizzando schermi (CICS o MVC) che comunicano con i programmi COBOL, non c'è dubbio che sarà più semplice mantenere in C # e probabilmente sarà anche molto meglio. Tuttavia, è una grande migrazione da una all'altra.

D'altra parte, se si tratta di un grande sistema batch progettato per elaborare migliaia di record, memorizzati in file in formato a larghezza fissa, questo sarà molto più complicato da fare in C # (non so C #, I ' ammesso che sia possibile, ma penso che sia probabilmente più complicato).

Il tuo rapporto costi-benefici dovrebbe considerare lo scopo del sistema migrato / modificato / riscritto e decidere la migliore tecnologia per portare a termine il lavoro .

    
risposta data 24.02.2011 - 14:21
fonte
1

Prima di tutto, dovrai calcolare il costo per ricostruire l'app con la stessa funzionalità. Supponiamo che tu possa calcolare la differenza tra una modifica del codice COBOL rispetto a C #. Dare uno sconto del 25% a C # - perché no?

La vera domanda è: quanto dell'applicazione stai pensando di cambiare? Perché anche con uno sconto del 25-50%, devi apportare importanti aggiunte all'app per coprire il costo della conversione. Se nessuno ha giustificato aggiunte necessarie a questo punto, non mi preoccuperei.

Riesci a considerare altri risparmi? Facilità di sostituzione degli sviluppatori C # su COBOL. La formazione di nuovi utenti è più veloce grazie a una GUI intuitiva? La nuova funzionalità consente di risparmiare sui tempi di immissione dei dati e migliora l'integrità. Consolidamento dell'hardware. Facilità di amministrazione perché è basata su browser e i desktop non devono più utilizzare un emulatore di terminale?

    
risposta data 24.02.2011 - 15:50
fonte
1

In generale, un programmatore può scrivere X linee di codice al giorno. Se un linguaggio è meno dettagliato (cioè C # può fare di più in X linee di codice), un programmatore può essere più produttivo in esso.

    
risposta data 24.02.2011 - 18:01
fonte
0

Per l'analisi della produttività, considera questa semplice query C # LINQ:

var BestCandidates = DataBase.Applicants
        .Where(apl => apl.LookingForJob == "Y")
        .OrderBy(apl => apl.SkillLevel)
        .Take(10)
        .Select(apl => new { apl.FullName, apl.RequestedSalary });

Quante linee di COBOL impiegherebbero per scrivere l'equivalente? Penso che sia più di 100 (conosco entrambe le lingue).

Puoi fare un confronto equo con alcuni esercizi di reporting ed elaborazione. Assicurati solo che i programmatori conoscano bene le loro lingue. Ad esempio, un buon programmatore COBOL può sconfiggere un programmatore C # in alcune circostanze, specialmente in compiti batch performanti (es. COBOL opera su file flat con accesso diretto alla memoria, quindi non può eguagliare -l'uso- RDBM con oggetti di memoria, a meno che il programmatore conosce bene gli indici, il garbage collector, l'accesso diretto ai file, ecc.)

    
risposta data 20.05.2018 - 12:26
fonte

Leggi altre domande sui tag