Entrate greenfield vs. brownfield? (tentando di ottenere un'idea di misura dello sforzo speso sui due)

2

La grande domanda che ho in mente: quanti sviluppatori sono brownfield ("impresa") rispetto a greenfield (tutto nuovo codice, da zero).

Leggo continuamente articoli senza respiro sull'ultima tecnologia, solo per scoprire che non funziona sul nostro codice base del software Enterprise. Le persone non sono pronte per il test automatico (perché la logica è nei click-handler e / o nel database). Le persone non sono pronte per gli strumenti ORM perché abbiamo una quantità orrenda di logica nei processi e nei trigger memorizzati. Le persone non sono pronte per WPF perché le nostre cose esistenti sono tutte WinForms. Non è possibile ottenere l'ultima versione di Reactive Extensions poiché il codice esistente utilizza RX 1.0 e si verificano violazioni delle modifiche che richiederanno più sforzi di test rispetto a quanto giustificato dal rendimento. Ecc. Ecc. Ecc.

Pochi articoli sembrano essere orientati verso lo sviluppatore brownfield, per qualsiasi motivo (non è possibile vendere annunci per articoli che iniziano con "probabilmente non si può usare questo, ma ..."?).

Quindi, mi chiedo davvero: il settore dello sviluppo software è pieno zeppo di sviluppatori greenfield, che stanno sviluppando nuovi progetti per i clienti che vengono poi rilasciati e godono di una breve esistenza fino alla completa sostituzione per qualsiasi motivo? O ci sono orde di programmatori brownfield che lavorano silenziosamente nelle miniere di software ADO.NET T / SQL VB.NET, guardando con malinconia al sole di Entity Framework 5.0 e Haskell, eccetera?

Come lo misuriamo? Gli stipendi (salari?) Pagati agli ingegneri del software * nelle due categorie? Come lo misuriamo? Forse ... entrate generate dalla vendita di detto software? (Si presume che il vecchio software scadente venduto da XYZ Corp. abbia effettivamente dei manutentori).

La mia domanda: qualcuno ha numeri che parlano di quanto l'industria sia campo verde o campo marrone?

    
posta JohnL4 09.09.2013 - 17:46
fonte

3 risposte

5

È risaputo che la maggior parte degli sforzi di sviluppo del software sono dedicati al mantenimento del software esistente, non alla scrittura di nuovo software.

Perché? Perché la prima versione di un programma viene scritta solo una volta. Ogni versione successiva si basa sull'originale e le entrate costanti derivano dal mantenimento, dalla promozione e dall'aggiornamento costante di un prodotto esistente, non dalla costante creazione di invenzioni nuove di zecca.

Il ciclo di vita di un prodotto software può variare notevolmente. Alcuni sistemi software scritti per operazioni bancarie su mainframe hanno cicli di vita misurati in decenni, mentre altri programmi hanno una vita effettiva di pochi anni (o meno). Per questo motivo, qualsiasi tentativo di quantificare la percentuale relativa di sforzo sullo sviluppo greenfield vs brownfield non sarebbe rappresentativo dell'intero settore.

    
risposta data 09.09.2013 - 19:49
fonte
3

Penso che il punto cruciale dei tuoi problemi sia che la maggior parte delle "nuove tecnologie" che menzioni sono strumenti di sviluppo o metodi di sviluppo.

Quindi semplicemente non è possibile applicare una nuova metodologia di sviluppo al software che è già stato sviluppato.

Vorrei anche dubitare che alcune di queste "nuove" tecnologie siano migliori. In particolare, non ho mai visto i quadri di beneficio o ORM. Trasformano una tecnologia di database relazionale degli anni '80 in un database gerarchico degli anni '70. E generare centinaia di linee di codice mentre lo fai.

Un altro punto è che molte / molte di queste "vecchie" tecnologie sono piuttosto buone in quello che fanno. Basta chiedere a te stesso quale sarebbe il vantaggio aziendale della sostituzione e delle esistenti applicazioni Winforms con un sistema basato su WPF che ha fatto la stessa cosa.

La maggior parte del valore di un sistema è NON nella sua tecnologia, ma nelle regole e nei processi aziendali che supporta.

    
risposta data 10.09.2013 - 08:05
fonte
2

In termini di entrate, lo sviluppo di Green Field puro è probabilmente vicino allo 0,0% delle entrate generate dallo sviluppo.

Perché?

Lo sviluppo si basa quasi sempre sul codice precedente, sulla riscrittura di parte di un progetto, sulla creazione di una versione nuova e migliorata 4.0, ecc ... Posso pensare a pochissime situazioni commerciali in cui un nuovo prodotto è progettato completamente in isolamento e quindi genera entrate sostanziali.

Anche nelle start-up, nel momento in cui il prodotto viene effettivamente utilizzato dai clienti paganti, è probabile che sia stato in sviluppo per così tanti mesi che non sembra più un codice greenfield.

    
risposta data 09.09.2013 - 18:48
fonte

Leggi altre domande sui tag