Domanda

Bounty chiarimento

Lo so che è una questione soggettiva. La risposta ideale che sto cercando è quella che spiega perché lo scenario citato qui sarebbe così sorprendente.

Se si pensa che lo scenario citato è infatti non sorprendente e prevedibile, si prega di abbattere i passi per dimostrare come una tale piccola applicazione può prendere più di un mese e diverse migliaia di dollari di sviluppo. Sono andato abbastanza lontano per fare i calcoli (ad esempio, la ricerca salari minimi) quindi mi aspetto la risposta ideale per fare simili.

Se si pensa che lo scenario citato è infatti sopravvalutata, si prega di individuare esattamente le tue ragioni. Quali sono gli errori che si possono osservare nel suo calcolo che ha portato a un costo enorme per un'applicazione semplice come quello? Come avresti fatto diversamente? (Non c'è bisogno di scrivere l'intero processo ma i dettagli, invece di sentimenti generalizzati sarebbe bello)


Lo so domande circa FPA è stato chiesto molte volte prima, ma questa volta mi sto prendendo un angolo più analitica a esso, eseguito il backup dei dati con .

1. In primo luogo, alcuni dati

Questa domanda si basa su una esercitazione . Aveva una sezione "Sample Conte" dove ha dimostrato un passo alla volta. Potete vedere alcuni screenshot della sua applicazione di esempio qui .

Alla fine, ha calcolata la FP non regolato essere 99.

C'è un altro articolo su InformIT con i dati di settore su un'ora tipica / FP. Si va da 2 ore / FP a 27,4 ore / FP. prova di Let a bastone con 2 per il momento (in quanto lettori in modo sono probabilmente i più efficienti folla: p).

2. Controllo di realtà!?

Ora basta controllare il screenshot di nuovo.

Fare un po 'di matematica qui

99 * 2 = 198 hours
198 hours / 40 hours per week = 5 weeks

Sul serio? Che applicazione di esempio sta andando a prendere 5 settimane per implementare? E 'solo la mia sensazione che non avrebbe preso qualsiasi programmatore decente più di una settimana (I "m fine settimana non nemmeno dire) di averlo completato?

Ora proviamo stima del costo del progetto. Useremo salario minimo di New York al momento ( Wikipedia ), che è $ 7.25

198 * 7.25 = $1435.5

Da quello che ho potuto vedere dagli screenshot, questa applicazione è una piccola applicazione excel-miglioramento. Ho potuto comprare MS Office Pro per 200 dollari che mi dà maggiore interoperabilità (file .xls) e flessibilità (fogli di calcolo).

(Per la cronaca, che allo stesso sito web ha un altro articolo che discute la produttività Sembra che in genere utilizzano 4,2 ore / FP, che ci dà le statistiche ancora più scioccante:.

99 * 4.2 = 415 hours = 10 weeks = almost 3 whopping months!
415 hours * $7.25 = $3000 zomg

(che è anche supponendo che tutti i nostri poveri programmatori ottenere il salario minimo!)

3. Mi sto perdendo qualcosa qui?

In questo momento, ho potuto venire con diversi spiegazione possibile:

  1. FPA è veramente adatto solo per i progetti più grandi (1000 PQ) in modo diventa estremamente imprecisi in scala ridotta.
  2. Le ore / FP oscilla metrico bruscamente da squadra a squadra, progetto per progetto. Per un piccolo progetto come questo, potremmo avere qualcosa di usato come 0,5 ore / FP o qualcosa del genere. (Ora, questo tipo di rende l'intera stima di cosa inutile, a meno che la mia azienda fa lo stesso tipo di progetti per diversi anni con la stessa squadra, non proprio comune.)

Dalla mia esperienza con diverse metriche del software, Function Point non è davvero una metrica leggero. Se l'ora / FP cosa che oscilla così tanto, allora qual è il punto, forse avrei potuto andare con punti di storia utente which è molto più veloce per arrivare e probabilmente quasi altrettanto incerto.

Quali potrebbero essere le risposte degli esperti FP a questo?

È stato utile?

Soluzione

Circa dieci anni fa, un compagno di bevute di mine mi ha dato davvero un grande pezzo di saggezza. Su qualsiasi consultazione del progetto, porre tre domande: 1. Qual è il problema che stiamo cercando di risolvere? 2. Quali sono gli elementi da fornire? 3. Come sapremo quando abbiamo finito? Egli ha aggiunto che non si deve mai assumere qualsiasi progetto per il quale una delle domande non è stato risposto prima dell'inizio del progetto.

Nel caso in esame, abbiamo ancora un altro racconto dell'orrore Software Estimating Method, in cui la stima sembra ridicolmente alto. Vorrei rispondere alla sua storia di orrore, sottolineando che egli non ha dato risposte alla seconda e terza questione, e lui non ha davvero risposto alla prima, se non per dire "Vogliamo costruire qualcosa che funziona in questo modo."

I espanderebbe su quel facendo notare che egli esplicitamente non ha nemmeno chiesto quali compiti la stima Function Point è includere o escludere dal totale stimato. Quanto più grande sforzo è lo stimatore punto funzione che permette per la documentazione, per esempio? Se la sua stima è per l'applicazione, senza alcuna documentazione, e stima il punto di stimatore funzione era per l'applicazione con documentazione completa, beh, direi che c'è qualche spazio per il disaccordo sulla quantità totale di lavoro (e il tempo) richiesto.

Altri suggerimenti

  

E 'solo la mia sensazione che non sarebbe   prendere qualsiasi programmatore decente più a lungo   una settimana (io "m nemmeno dicendo week-end)   per averlo completato?

Gli sviluppatori tendono sempre a sottovalutare quanto tempo ci vuole per completare in realtà qualcosa. Pensano non ci saranno insetti, nessun cambiamento nei requisiti, e nulla hanno mai fatto prima e devono trascorrere giornate sulle capire.

  

Da quello che ho potuto vedere dal   schermate, questa applicazione è un   piccola applicazione excel-miglioramento. potrei   hanno comprato MS Office Pro per 200   dollari che mi dà maggiore   interoperabilità (file .xls) e   flessibilità (fogli di calcolo).

si sta confrontando il prezzo per un pezzo completamente custom di software per uno che sta vendendo milioni di copie? Sul serio?

La realtà è, la maggior parte dei metodi di stima del software in realtà sottostimato, anche se a prima vista, sembra contro-intuitivo. Una volta ho lavorato presso una società di cui 300 righe di codice al mese-uomo era considerato un ALTA stima, e la maggior parte dei mesi abbiamo venuto a più come 200-250. Ma andiamo con la 200. Questo è 10 righe di codice al giorno di lavoro. Chi non può scrivere 10 righe di codice in una giornata di lavoro? Dai! Potrei scrivere da 50 a 100 o più righe di codice in una buona giornata! Eppure le aziende che utilizzano i numeri come questi ripetutamente completare i loro progetti in ritardo e il budget. Perché? Beh, scope creep, come suggerisce Michael Borgwardt, è un grande. Ma tirare di lasciare che il quadro per un minuto, e assumere il cliente e cliente capito bene la prima volta. Perché un preventivo società solo 10 righe di codice al giorno?

  • Analisi dei requisiti
  • la progettazione del software in base alle esigenze
  • Incontri per coordinare le interfacce e l'architettura con i compagni di squadra.
  • I costi di struttura (incontri di stato con la gestione, malato-tempo, vacanze, ...)
  • unit test di scrittura
  • Scrivi piano di test per l'intera applicaiton
  • testing a livello di applicazione

Questo è tutto il software engineering giorno per giorno posso tirare fuori la parte superiore della mia testa in 3 minuti, sono sicuro che ho perso un po 'di più, ma non che aiutare a ottenere un quadro più completo di dove queste stime sono in arrivo da?

Non è un esperto FP. Tuttavia stiamo guardando FP in questo momento. In particolare, stiamo eseguendo analisi FP contro vecchi progetti che abbiamo le metriche per lo sforzo / costo ecc Poi si può valutare la sua utilità per noi nella stima / progetti di dimensionamento.

La mia opinione a questo punto è che sarà un top down 'ordine di grandezza' utile stima verso il basso fino supplemento stima. E 'sempre bene se più di una tecnica di stima può essere applicata a convalidare che i numeri che vengono arrivati ??a 'reggere'.

Un ulteriore riflessione - il costo / sforzo per function point (cioè requisito funzionale) dipenderà dai requisiti non funzionali che sono necessari per il sistema. Una volta che si inizia a prendere in considerazione la sicurezza, l'accessibilità, le prestazioni, la registrazione (e avvisi), manutenibilità, la portabilità, la conformità alle normative e così via, il costo / sforzo per FP aumenta in modo significativo. Ora questi non può essere una considerazione per il campione app singolo utente citato. Ma se questa applicazione è importante per una società o potenzialmente i loro clienti o una vasta parte del pubblico in generale, la necessità di tener conto di tali requisiti non funzionali aumenterà sicuramente.

Personalmente ho trovato FPA fuorviante ... inizialmente.

A meno che non si dispone di dati storici FPA dei progetti precedenti, FPA può sicuramente finire per sopravvalutare il tutto, utilizzando gli standard del settore.

ho imparato che VAF è un buon indicatore da utilizzare quando si tratta di FPA. Anche se ti dà un range di variazione del 35% sul vostro conto FP, che è arresto del gestore analista / progetto da trasformarla in una variazione del 50%.

Un buon leader team valuta sempre la sua capacità squadre prima di fare delle stime. Lo stesso vale per FPA, figure standard del settore sono stati raggiunti basano su dati storici, e questo dato varia da azienda ad azienda, squadra per squadra e sviluppatore a sviluppatore.

Quindi, direi che se si utilizza il meglio delle ipotesi del -35% sul conteggio non regolato, si raggiunge un conteggio FP adjusted di ~ 64. Ti dà circa 3 settimane e mezzo di stima. Dall'esperienza direi un'applicazione di questo tipo può essere fatto un sacco prima di quello, ma ogni test approfonditi, il debug, la documentazione e altri lavori di carta sarebbe allungare ulteriormente e FP tiene conto di questo. E 'molto possibile che il team sta facendo 1 FP / hr. Per gli standard normali, codifica e test rappresenta il 25% del conteggio FP, quindi in questo caso anche prendendo la vostra cifra di 99 PQ, la parte di codifica e test sarebbe sceso a 25 fps, che è più comprensibile data la situazione.

Quello che ho anche visto, in pratica, è che alcune aziende hanno messo a punto le proprie tabelle complessità, quindi se 3 RET e 10 DET significano media complessità per una società, un altro sarebbe tariffa come bassa complessità. Ciò in gran parte per effetto di conteggio finale FP.

Quindi utilizzare lo strumento FP come guida e raccogliere quanti più dati per i progetti precedenti, come si può prima di iniziare effettivamente fare affidamento su FPA a definire le stime dei costi e di tempo.

Come nota a margine, penso che le stime che costano un semplice software del genere sembrerebbe ridicolo oggi, dove outsourcing e freelance è la strada da percorrere. Le grandi aziende che sono stati in questo business caricano ancora ridicolmente alto per lo sviluppo software. Per esempio, se si desidera un tecnico di livello 3 di supporto per aiutarvi con i server in una società di buon hosting, ci avrebbero fatto pagare $ 250 all'ora, tuttavia è possibile ottenere lo stesso consiglio da qualcuno base in altre parti del mondo a $ 25 o anche $ 2.5.

La speranza i miei 2 centesimi sono di qualche utilità per voi.

Nella mia azienda precedente abbiamo sarebbe calcolato come quella - soprattutto se qualcuno vuole a pagare per essa;)

Ho praticato FP in alcuni progetti e ha scoperto che fornisce una stima abbastanza precisa. A volte può sovrastimare e talvolta sottovalutano a seconda del tipo di applicazione. In genere per applicazioni scientifiche, FP potrebbe essere sottostimato. FP prevede tutto il tempo di sviluppo del progetto, non solo il tempo per la scrittura del codice. Naturalmente non ci sono attività di sviluppo, come la configurazione dell'ambiente di prova, ecc e questi dovrebbero essere stimati separatamente. Io non sono un grande sostenitore di FP, ma apprezzo il suo utilizzo. In caso contrario stima accurata, se praticata correttamente (identificazione dei file e Record Elementi), è atleast Convalida completezza delle vostre esigenze.

In un certo senso, dovremmo dire che FP è un bene per le medie e grandi progetti, il ridimensionamento sopra 350-400 PQ.

Ora pagamenti basati portare ad abbassare le prestazioni indirettamente. Mi ricordo di progetti con pagamento basato sul tempo che ho fatto un sacco di ricerca per ogni aspetto del progetto, mentre se avesse un metodo di pagamento basato su progetti forse non l'ho fatto così. E 'la mente inconscia non è etica. Le migliori pratiche è quello di riferimento definizione "Progetto" (entro un periodo di tempo limitato e bilancio) e la decisione fanno sulla base di limitazioni. Non si tratta di lavoro stesso, vale a dire che si paga per un ombrello in un giorno di pioggia molto più di quando si acquista normalmente. Non preoccupatevi se stessi su ciò che ha fatto e quanto vale la pena. Focus sul valore del lavoro al cliente e le sue scelte.

Inserendo i valori dall'esempio che hai citato in questo pratico calcolatore punto funzione online ( http://developergeeks.com/ functionpoint.aspx ), che calcola i PQ regolato e prende in considerazione vari altri fattori di ponderazione, ottengo i seguenti risultati, ipotizzando un tasso di produttività di 2 PQ all'ora poiché il sistema nell'esempio è così semplice:

  1. Adjusted PQ: 42.9
  2. Mesi Persona stimate: 0.54

Supponendo di 160 ore in un mese di lavoro, che funziona a circa 86,4 ore, ovvero circa due settimane di lavoro per uno sviluppatore. Non cinque settimane, come si conclusa nel passaggio 2. Dato che lo sviluppo di sistemi per i clienti paganti richiede di prendere solo un po 'più cura e lo sforzo di un semplice sbattere fuori qualche codice a tarda notte per il proprio divertimento, non credo che sia una stima irragionevole tutti.

Voglio dire, non fraintendetemi, analisi FP nelle mani sbagliate è probabilmente una pessima idea. Ma se hai sfondo di uno sviluppatore è possibile applicare a contare PQ e gut controllare i vari fattori di ponderazione, non è un brutto modo di ottenere una stima ragionevole che non si basa sulla pura fantasia, quando non si dispone di specifiche di progettazione dettagliati , requisiti o una a livello di attività dettagliato piano di progetto su cui lavorare completamente documentato. Ma hai avuto modo di usare il buon senso per farlo funzionare per voi.

  

Dalla mia esperienza con diverse metriche del software, Function Point è   in realtà non una metrica leggero. Se l'ora / FP cosa oscilla così   molto, allora qual è il punto, forse avrei potuto andare con User Story   Punti che è molto più veloce per arrivare e probabilmente quasi altrettanto incerto.

Il punto di avere Function Point Analysis è avere un qualche tipo di regole / linee guida che sono così oggettivi e standard che dovrebbe (entro un certo margine) finire per dare la stessa quantità di punti funzione su un'applicazione e / o progetto , indipendentemente da quale esperto contato, se le regole vengono applicate in modo coerente e corretta. La produttività per punto la funzione, come hai scoperto, è altamente affidabile da molti fattori come esperienza del team, gli utensili, il linguaggio di programmazione, piattaforma, ecc ecc Pertanto gli standard di settore sono bello sapere, ma nella maggior parte dei casi del tutto inutili (a mio modesto parere ). Il valore principale di conteggio ripetitivo sta costruendo il proprio 'benchnmark' in base alla propria storia la produttività del team. Questo a sua volta vi aiuterà a vedere le tendenze e anche aiutare pianificare e prevedere ore necessarie per i cambiamenti futuri. Se siete alla ricerca di velocità, è sufficiente applicare conta a livello globale, invece di conteggi dettagliati. Nel fare un paio di esempi di conteggi (come durante la preparazione per gli esami) si noterà la differenza tra un conteggio dettagliato e un conteggio globale non sono grandi abbastanza per il sonno sciolti sulle (di%).

Questa discussione è assolutamente fuorviante, in quanto la questione suppone già FPA è una tecnica di stima sforzo. Non è .

Dimensione Funzionale (espresso in funzioni punti) può essere uno dei tanti fattori di input per un modello di stima (come COCOMO). Non più -. Ma anche non di meno se siamo d'accordo che la 'quantità' di requisiti funzionali è un driver sforzo per progetti software

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top