Statistiche sulle stime temporali per l'applicazione web

1

Mi è stato chiesto di aiutare a stimare il tempo necessario per sviluppare un'applicazione web. Non sarò coinvolto nella programmazione vera e propria, ma sto partecipando come programmatore "esperto". Il lavoro effettivo verrà probabilmente consegnato a una società di consulenza, ma il cliente (un dipartimento universitario) desidera avere una stima per avere un'idea di quanto tempo e denaro saranno necessari.

Cercheremo di suddividere le funzionalità da implementare e quindi provare a creare una sorta di stima totale generale (anche se Joel Spolsky dice che non funzionerà ), ma ho pensato che questo tipo di applicazioni web sono state fatte centinaia di volte e che ci deve essere molta esperienza per attingere a uno o all'altro dei siti di stackexchange .

È possibile rispondere a questa domanda:

Quante ore / settimane generalmente impiegano per un programmatore esperto, usando il loro linguaggio e la struttura di scelta (sia Java, Ruby on Rails, o qualche altra tecnologia abbastanza grande), per creare un'applicazione web, dato che:

  • È abbastanza standard, il che significa che c'è un database, un'interfaccia di amministrazione e un livello di presentazione per il pubblico in generale.
  • È stato scritto da zero, ma ci sono vecchi sistemi per disegnare esperienze da
  • Gli amministratori (pensano di loro) sanno abbastanza bene cosa vogliono.

So che questo è very vago, ma sto cercando le tue esperienze:

(seguono gli esempi)

" Abbiamo acquistato questo tipo di sistemi più volte e in genere ci vogliono venti mesi-personale per completare. "

" Utilizzando Python e Django, direi che la maggior parte delle app web sono attive e funzionanti in 6 mesi-personale, in alto. "

Modifica:

Alcuni chiarimenti:

  • Nella mia domanda manca la maggior parte delle informazioni su questo progetto. Il cliente ha scritto una bozza di specifiche dettagliate sul sistema e vi è anche un'analisi dei requisiti basata sul feedback degli utenti sul vecchio sistema.
  • Voglio precisare, ancora, che sto cercando le tue esperienze (vedi le mie risposte di esempio), non una citazione per questo sistema.

Grazie per tutte le risposte perspicaci, però!

    
posta Peter Jaric 09.06.2011 - 13:58
fonte

5 risposte

5

È quasi impossibile ottenere un costo preciso. L'outsourcing rende questo ancora più difficile.

Solo perché è abbastanza standard non rende più facile il compito di quotare. Ad esempio: hai menzionato che esiste un'interfaccia di amministrazione. Questo può essere semplice come un login e una password per ogni utente o complesso con utenti che hanno più ruoli e un superutente in grado di supervisionare tutte le attività di amministrazione. Se questo diventa un amministratore basato sul ruolo, il tempo di codifica è aumentato esponenzialmente.

Se ti stai esternalizzando in un paese straniero pagherei il tempo e i costi totali del 20% per tenere conto dell'interpretazione di domande e risposte tra cliente e programmatore.

Come parco giochi per amministratori basati su database, stimeremo 4 ore per ogni tabella di base. Ciò consentiva la creazione di tabelle, le routine di inserimento, le routine di aggiornamento, le routine di eliminazione e le pagine Web di amministrazione associate. Ciò includeva anche una semplice pagina di visualizzazione degli elenchi e una pagina di visualizzazione dei dettagli. Se fossero richieste query sui filtri di ricerca, aggiungeremmo altre 2 ore per quella tabella.

Abbiamo avuto un sacco di codice da cui possiamo prendere in prestito. Abbiamo anche scritto alcuni proc di stored utility che ci hanno aiutato ad accelerare la codifica sputando il codice sorgente. Non era un codice perfetto ma ci ha fatto risparmiare molte ore di codice grezzo. Avremmo anche tagliato il prezzo se questo fosse un widget che potremmo girare e rivendere ad altri clienti. Non sembra che tu possa rivendere questo a chiunque altro, quindi il prezzo che pagano dovrebbe essere un premio.

Esiste già un sistema COTS (Commercial Off The Shelf) simile che è possibile acquistare? Hai persino intrattenuto la domanda Build or Buy?

Il software personalizzato è costoso. Finché il cliente è consapevole di questo fatto e desidera ancora una soluzione personalizzata, pagherà il prezzo premium. Ogni volta che dici "Oh sì, possiamo farlo" e non dire che costerà di più, il cliente se lo aspetta gratuitamente.

    
risposta data 09.06.2011 - 14:46
fonte
5

Non sei la persona da stimare e, francamente, non ti sembra nemmeno di sapere quale sia lo scopo del progetto. Tutti vogliono la loro torta e mangiarla anch'essa, sì, non voglio essere specifico su cosa esattamente debba succedere nel progetto, ma allo stesso tempo voglio raccogliere i costi per ricavare questa nebulosa idea indefinita.

Che cosa dovrebbe accadere se i costi sono importanti è che dovrebbero ricevere almeno due o tre preventivi da società diverse e assicurarsi che prima di farlo METTETE MOLTO CHIARAMENTE l'ambito del progetto. A volte le società di consulenza possono aiutarti con questo. Dovrebbero avere le abilità di PM per raggiungere il tuo scopo e ricavare una WBS (Work Breakdown Structure) che fornisce una linea temporale approssimativa assumendo che disporrano di tutte le risorse necessarie quando ne hanno bisogno. Solo così possono darti una stima e una citazione con qualsiasi grado di certezza.

Qualsiasi società di consulenza che valga la pena fare affari non ti darebbe una stima "in aria" a meno che non stiano cercando di prenderti in giro per tutti i soldi che valgono. Questa è una scusa per un invito aperto a non finire mai abbastanza. Fidati di me, questo è successo ai miei amici.

    
risposta data 09.06.2011 - 14:35
fonte
5

Quante uova ci vogliono per fare una frittata veramente grande?

Beh, dipende da quanto è grande una frittata, non è vero? E poiché non lo so, non posso dire quante uova hai bisogno. E lo stesso vale per la tua domanda.

E anche se conoscessi i dettagli di questa applicazione web, sarei ancora molto, molto, molto attento. Scope creep fa mordicchiare il bit ad ogni angolo. Gli utenti scoprono le esigenze di cui non erano nemmeno a conoscenza. E la lista continua ...

Modifica C'è un altro possibile approccio al dilemma, e in effetti l'approccio corretto e agile. Chiedi ai futuri proprietari che cosa valga per loro questa applicazione. Questo è il tuo budget iniziale. E poi prometti loro che per ogni singolo dollaro / sterlina / euro in quel budget iniziale riceveranno la prossima cosa più importante nella lista delle caratteristiche possibili. Quando i soldi vengono spesi, avranno massimizzato il loro investimento e possono quindi decidere di fermarsi o di continuare.

    
risposta data 09.06.2011 - 14:35
fonte
4

Amico mio - hai un cartone Dilbert in formazione. A te (Dilbert) è stato detto di stimare qualcosa che non ha un campo di applicazione definito e, da come sembra, in realtà nessun imprenditore se non alcuni IT che dicono di sapere cosa vogliono.

Il tuo capo capelli a punta ti ha dato le indicazioni di semplicemente "Vai" e non hai davvero dove rivolgerti. Devi chiamare qualcuno meglio della società di consulenza Dogbert - qualcuno che siederà e aiuterà a raccogliere i requisiti e mettere una sorta di struttura intorno a questa grande massa di goo che ti è stata consegnata.

OK ... l'ho intenzionalmente reso ridicolo, ma francamente, sei stato impostato per fallire, probabilmente anche con buone intenzioni. C'è un sacco di buoni consigli sopra - seguilo! Ottieni alcune buone citazioni da consulenti affidabili o società di gestione dei progetti, o per lo meno INSISTA su una buona quantità di tempo per raccogliere i requisiti e dare una definizione a questa cosa. Solo allora puoi andare da qualche parte nel campo da baseball - POI usare buone tecniche di stima e includere sicuramente gli imprevisti.

Buona fortuna !!

    
risposta data 09.06.2011 - 15:15
fonte
1

Vado a dire che non sarebbe etico per te dare alcun tipo di stima in questa situazione.

Un numero di fattori gioca un ruolo nella stima: il processo utilizzato, gli strumenti e le tecnologie utilizzate, il team di sviluppo, l'ambito e i requisiti del progetto ... la lista continua. Dal momento che non stai conducendo (o nemmeno sul) team che sta sviluppando questo software, non conosci nessuno di questi fattori, a parte forse i requisiti iniziali. A meno che tu non abbia tutti i fatti, dovrai solo tirare fuori dei numeri dal nulla.

Un'altra cosa da ricordare è il Cono di incertezza . Non avere tutte le informazioni è già abbastanza grave, ma anche con le informazioni iniziali, una stima iniziale sarà compresa tra il 25% e il 400% del costo effettivo. Qualsiasi cosa che uno stimatore dice così presto nel progetto avrà enormi differenze che possono essere perfezionate non appena il progetto va avanti, i requisiti diventano più concreti e le decisioni vengono prese.

A seconda del progetto, anche il triangolo di gestione del progetto svolge un ruolo. I tre vincoli su un progetto sono costo, ambito e programma. Un cliente può, al massimo, controllarne due. Non è possibile impostarli tutti e tre - scegli i due più importanti e controllali.

La corretta linea di condotta in questo caso è per l'organizzazione che desidera che il software inizi a lavorare sui requisiti da presentare alle organizzazioni che costruiranno il software. Le organizzazioni possono valutare questi requisiti, porre domande e ottenere maggiori dettagli e utilizzare i loro strumenti, tecniche e processi interni per costruire una stima dei costi e del programma di costruzione di questo sistema. Diventa un avanti e indietro sul triangolo di gestione dei progetti per ottenere il software necessario a un costo adeguato entro il periodo di tempo migliore.

    
risposta data 09.06.2011 - 15:08
fonte

Leggi altre domande sui tag