Bir tahminde bulunmanız istendiğinde nasıl cevap vereceksiniz?


652

Programcı olarak sürekli 'Ne kadar sürer?' Diye soruluyor.

Ve biliyorsun, durum neredeyse her zaman böyle:

  • Gereksinimler belirsiz. Hiç kimse, tüm sonuçların derinlemesine bir analizini yapmamıştır.
  • Yeni özellik muhtemelen kodunuzda yaptığınız bazı varsayımları ortadan kaldıracak ve derhal yeniden gözden geçirmek zorunda kalabileceğiniz her şeyi düşünmeye başlayacaksınız.
  • Geçmişteki ödevlerden yapacak başka şeyleriniz var ve diğer işleri hesaba katan bir tahminde bulunmalısınız.
  • 'Yapılanma' tanımı muhtemelen belirsiz: Ne zaman yapılacak? Kodlama işleminde olduğu gibi 'Bitti' mi, yoksa 'kullanıcılar kullanıyor' ifadesinde olduğu gibi 'yapıldı'?
  • Tüm bunlar konusunda ne kadar bilinçli olursanız olun, bazen “programcınızın gururu” size başlangıçta beklediğinizden daha kısa süreler / kabul etmenizi sağlar. Özellikle son tarihlerin ve yönetim beklentilerinin baskısını hissettiğinizde.

Bunların çoğu, basit ve çözülmesi kolay olmayan örgütsel veya kültürel meselelerdir, ama sonuçta gerçek şu ki, bir tahmin isteniyor ve makul bir cevap vermenizi bekliyorlar. İşinin bir parçası. Basitçe söyleyemezsiniz: Bilmiyorum.

Sonuç olarak, her zaman daha sonra yerine getiremeyeceğimi farkettiğim tahminler vermek zorunda kalırım. Bu defalarca oldu ve her zaman bir daha olmayacağına söz veriyorum. Ama öyle.

Bir tahminde karar vermek ve sunmak için kişisel süreciniz nedir? Hangi teknikleri yararlı buldunuz?



4
Gereksinimler çok net değilse,% 50 hata payıyla tahmin edebilirsiniz (daha geniş aralık). Gereksinimler açıksa,% 20 hata payı ile tahmin edebilirsiniz. Benim için işe yarayan bir başka iyi strateji bir projeyi aşamalara ayırmak. Bu yolla tahmin etmek daha kolaydır ve yalnızca ilk aşamayı tahmin etmeniz yeterlidir. Bir sonraki aşamayı tahmin etmek üzereyken, projeyi daha iyi anlıyorsunuz. Ayrıca, sizinle yükleniciniz arasındaki güven daha iyi olmalıdır. Ben de her zaman varsayımlarımı ve önkoşullarımı yazıyorum. Asla "IE8 veya üstü üzerinde çalışacaktır" yazmayın, kesin olun.
Francisco Goldenstein

Sergio, "Sonuç olarak, daha sonra gerçekleştiremeyeceğimi anladığım tahminleri vermekle her zaman bitirdim. Sayısız kez oldu ve her zaman bunun bir daha olmayacağına söz veriyorum. Ama oluyor." Bugün ne kadar gelişmiş hissediyorsunuz?
Remigijus Pankevičius

4
@ r.pankevicius Dürüst olmak gerekirse, sadece tahmin vermekten vazgeçtim: rclayton.silvrback.com/software-estimation-is-a-losing-game
Sergio Acosta

2
"Tahminler" ve "son teslim tarihleri" arasındaki nüansı görmek de önemli. Bir tahmin bir taahhüt değildir, bu nedenle küçük bir hata çok problemli olmamalıdır. Bu konuyla ilgili uzun bir blog yazısı yazdım, herhangi biri ilgileniyorsa: marcgg.com/blog/2015/08/27/deadlines-estimates-software-startup
marcgg

Yanıtlar:


390

Gönderen Pragmatik Programcı: Kalfalık Gönderen Master :

Bir Tahmini İstediğinde Ne Demek?

"Sana geri döneceğim" diyorsun.

Süreci yavaşlatırsanız ve bu bölümde anlattığımız adımlardan biraz zaman geçirirseniz, neredeyse her zaman daha iyi sonuçlar alırsınız. Kahve makinesinde verilen tahminler (kahve gibi) size musallat olmak için geri dönecektir.

Bu bölümde yazarlar aşağıdaki süreci önermektedir:

  • İhtiyacınız olan doğruluğu belirleyin. Süreye bağlı olarak, tahminde farklı hassasiyetle teklif verebilirsiniz. "5-6 ay" demek, "150 gün" demekten farklıdır. 7. aya bir miktar kayırsanız, hala oldukça kesinsiniz. Fakat 180. veya 210. güne kayarsanız, o kadar da değil.
  • Ne sorulduğunu anladığından emin ol. Sorunun kapsamını belirleyin.
  • Sistemi modelleyin. Bir model zihinsel bir model, diyagramlar veya mevcut veri kayıtları olabilir. Bu modeli ayrıştırın ve bileşenlerden tahminler oluşturun. Her bir değere değerler ve hata aralıkları (+/-) atayın.
  • Modelinize göre tahmini hesaplayın.
  • Tahminlerini takip et. Tahmin ettiğiniz sorun, tahmininiz ve gerçek değerler hakkındaki bilgileri kaydedin.
  • Tahminde bulunabilecek diğer şeyler, gereksinim veya değişiklikleri gereksinim spesifikasyonlarında geliştirmek ve belgelemek, tasarım belgeleri ve spesifikasyonları oluşturmak veya güncellemek, testler (birim, entegrasyon ve kabul), kullanım kılavuzlarını veya README'leri değişikliklerle birlikte oluşturmak veya güncellemektir. Birlikte çalışan 2 veya daha fazla kişi varsa, iletişim yükü (telefon görüşmeleri, e-postalar, toplantılar) ve kaynak kodunu bir araya getirir. Uzun bir görev ise, teslim tarihi alırken diğer işler, izin süresi (tatiller, tatil, hastalık süresi), toplantılar ve genel giderler gibi şeyleri hesaba katın.

32
Bu aynı zamanda McConnells'in "Siyah Yazılım Tahmini Sanatı" nın büyük bir parçasıdır. Asla kelepçelemeyin.
Paul Nathan

12
McConnell kitabını tavsiye ederim. Mümkünse, sizden tahminde bulunacak bir kişiden tahminde bulunma sınavını yapmasını isteyin : codinghorror.com/blog/2006/06/… Bir oyun olarak sunabilirsiniz, ancak genellikle iletiyi iletmek için yardımcı olur.
Paddyslacker

130
Her zaman "Sana geri döneceğim" diyebilirsiniz. Birisi "Pekala, bir cevaba ihtiyacım var" diyorsa, "Size bir cevap verirseniz, bu bir yalan olacaktır. Şu anda yeterli bilgiye sahip değilim. Bir şey yapmam için ikimiz için de bir kötülük olur. yerinde. "
Andy Lester,

15
@AndyLester - SİZ şimdi bir cevap vermezseniz, başkasının alacağı ve projeyi ve parayı yanına alabileceğiniz veya hala hiçbir şey yaşamadığınız bir tahminde bulunmadığınız için sizi suçladığınız durumlarda birçok durum ortaya çıkmaktadır. ile yapmak için. Berbat ve yanlış, ama ne yazık ki gerçeklik.
Joris Timmermans

3
@ThomasOwens Asla bir sözleşme için kalçadan atış tahmini kullanmazdım, ancak bu tahminleri sözleşme aşamasından önce kullanırım. Müşteri, değerli küçük ayrıntılara son vermek için değerli zamanını ayırmadan önce bir tür büyüklük sırası vermeliyim - eğer ödemeyi düşündükleri, iyimser bağırsaklarımdan bile daha az büyüklükte olsalar bile. Başlat.
Joris Timmermans

170

Yazılım tahmini, yazılım mühendisliğinde en zor olan tek şeydir - yakında ikinci bir gereksinim ortaya çıkmasıdır.

Öncelikle iyi gereksinimler elde etmeye dayanan onları oluşturmak için birçok taktik var. Fakat sırtınız duvara yaslanıp size daha iyi bilgi vermeyi reddettiğinde, Sahte:

  1. Sahip olduğunuz gereksinimlere iyi bakın.
  2. Ne istediklerini en iyi tahmininize dayanarak boşlukları doldurmak için varsayımlarda bulunun
  3. Tüm varsayımlarını yaz .
  4. Bunları yerine oturtmalarını, okumalarını ve kabul etmelerini sağlayın (ya da eğer şanslıysanız, size gerçek gereksinimleri vermelerini sağlayın).
  5. Artık tahmin edebileceğiniz ayrıntılı gereksinimleriniz var.

Annem ben küçükken tehdit için kullanılan Sanki "Acele edin ve bazı giysiler seçmek ya ben olacağım sizin için onları dışarı almak!"


3. puanınızla ilgili bir takip sorusu sordum. programmers.stackexchange.com/questions/132970/…
k0pernikus

İyi gereksinimler yazmak ne kadar sürer?
mmehl

142

Doğru tahminler yapmak konusunda çok kararlı olan bir adam için gelişim yaptım. Yerleştiğimiz, çok iyi çalıştığımız şey şuydu:

  • Tahmine harcadığım her zaman için faturalandırdım. Faturalandırdığımın yaklaşık% 20-25'ine geldi.
  • Görevlerin son derece ayrıntılı incelemesini yaptım. Kalçadan ateş yok. Kodlara girdim, hangi satırların değiştirilmesi gerektiğini, programın hangi bölümlerini etkileyeceğini, işlerin devam etmesini sağlamak için ne kadar test yapmam gerektiğini öğrendim. Her bir parçayı 0,1 saat (6 dakika) biriminde tahmin ediyorum.
  • Bu ayrıntılı dökümle birlikte ona her görev için tahminimi gönderdim.

Faturaların% 20-25'i çok kulağa geliyor.

Ama benden 2 saat alacağını düşünerek, XYZ'i değiştirmemi rica etti. 1 saatlik ayrıntılı tahminde, 8,5 saat süreceğini belirlerdim. Bu yüzden 8,5 saatlik ücret olup olmadığına karar verdi. Olmazsa, o zaman bir tahminde bulunmadan yapmamın maliyetine göre 7.5 saat kazandı.

O eğer did 8.5 saat yatırım yapmak isteyen, ben tahmin için yaptığımız ayrıntılı bir iş Zaten yapmak zorunda olurdu çalışmasıydı.

Bu yöntemle, çoğu görevi çok fazla abartmak zorunda kalmadan, zamanında ve hatta erken getirebildiğimi öğrendim. Çünkü zaman çok kısalıyordu, kayıyor olsaydım erken anlatabilirdim. Eğer barikatlara çarparsam, 3 saat sonra 8.5 saatlik görevimin 12 alacağını söyleyebilseydim, daha fazla zaman geçmeden onunla konuşabilirdim. .

Nikel ve kararıyor muydu? Hayır, parasını en çok gördüğü yerde kullanmasına izin olarak baktım. Ve tahmin etmede deneyim kazandığıma sevinmiştim;


12
Bu çok yeterli bir teknik gibi geliyor. Aslında, kendi şirketiniz için bir tahminde bulunurken, tahmini zaman da maaşınızın bir parçası olarak ödenmektedir. Ancak korkarım ki, sorun çoğu kuruluşun .1 saatlik parçalarda ifade edilebilecek olanlardan çok daha büyük görevlerin tahminini istemesidir. Cevabınız için teşekkürler. (Sen yazılım kurullarında joel aynı Kyralessa mısınız?)
Sergio Acosta

1
Evet, aynısı.
Kyralessa

@SergioAcosta amaç, görevi küçük parçalara ayırmak için analiz / tahmin zamanını kullanmanızdır. Bu en iyi cevap, imho.
NimChimpsky

7
Bu yüzden 5 aylık bir proje ise, bir ay veya daha fazla bir süre için tahmin etmeniz gerekir. Muhtemelen yöneticileri bunu kabul etmeyecek :)
Darius.V

@ Darius.V, iyi bir noktaya değin. Bu durumda müşterinin kararları, tüm projeye genel bir Evet veya Hayır değil, belirli özelliklerde Evet veya Hayır olmuştur. Projenin tamamını yapıyorsanız ya da toplam tahminde bulunmuyorsa, bu teknik kesinlikle daha zordur. Öte yandan, bir proje için altı ay bütçe ayırıyorsanız, ancak proje aslında bir yıl sürebilirse, bunu altı ay sonra mı yoksa iki veya üç mü sonra mı bulmayı tercih edersiniz?
Kyralessa

64

Çok geniş bir görüşme yaptığımız ve yapmak istedikleri şeylerle ilgili çok fikirli görüşmeler yaptığımız toplantılarda sık sık "basketbol sahası tahmini" istenir. Her zaman derim ki, "bugün bir cevap istiyorsanız bu bir yıl ve bir milyon dolar. Bana daha fazla ayrıntı vermek ve bunları gözden geçirmek için biraz zaman vermek isterseniz, o zaman bu sayıları sizin için daraltabilirim."

Neredeyse her zaman puan alırlar.


7
Çok fazla şey söylediklerinde bir dakikalığına düşünerek taklit edip "Doğru dedin! 18 ay 2 milyon" diyoruz.
CyberFonic

55

Tahminin ne için olduğuna bağlı.

Bir iş vakası için başlangıçtaki yüksek seviye bir tahminde, temel hususlar şunlardır:

  1. Hız. Hangi yöntemi kullanırsanız kullanın hızlı olması gerekir. Bütün mesele, paydaşların projeyi yapmaya değip değmeyeceğinden emin olmadıkları - bu yüzden iş vakası için sayılara ihtiyaçları var. İş vakası sağlam olsaydı, tahminde bulunmalarına gerek kalmayacaktı. Bu projelerin çoğu devam etmeyecek, bu yüzden tahminde bulunmak için çok fazla çaba harcanmaması önemlidir.
  2. Menzil ver. Genişlet. Gereksinimleri analiz etmek, paydaşlarla çalışmak, varsayımları doğrulamak için hiç zamanınız olmadı. Geniş ürün yelpazesi alıcıya "Yazılım projeleri doğal olarak karmaşık ve risklidir - uygun bir tahmin istiyorsanız, bana daha fazla ayrıntı ve daha fazla zaman vermeniz gerekir" tahminini söyler. Tek bir sayı veya dar bir aralık vermenin sorunu, herhangi bir gerçek analiz yapılmadan önce beklentileri belirleyerek sizi bir köşeye boyamasıdır.

Aynı şekilde "hissettiren" karşılaştırılabilir bir proje seçmek için en iyi tekniği buluyorum. "Hisset" tamamen özneldir - ancak bu tür bir tahminle deneyimlerim objektif ölçümler bulamayacağınızı söylüyor. O zaman geniş bir ürün yelpazesi sağlayın. % -50 ile% + 100 aralığının iyi olduğunu söyleyen bazı kitaplar okudum, ancak bu birçok faktöre bağlı.

Detaylı, düşük seviye bir tahmin için:

  1. Bir taban çizgisine ihtiyacınız var. Taban çizgisi sabit değilse, tahmin anlamsızdır.
  2. Aşağıdan yukarıya en iyisidir. Ayrıntılı bir çalışma dökümü alın, her bir bileşeni tahmin edin ve ardından daha büyük bir sayıya yuvarlayın. Planlama pokerini burada harika bir teknik olarak buluyorum.
  3. Belge durumu. Herhangi bir ihtimalin (varsa) nerede eklendiğini açıkça belirtin. Her satır öğesine eklenir mi? Veya tüm tahmine? Veya spesifik risklere? Yoksa hiç yok mu?
  4. Varsayımlarınızı belirtin. Zaman çerçevesi göz önüne alındığında mümkün olduğunca doğrulayın.
  5. Tahmine dahil olan ve hariç tutulanları açıkça belirtiniz. Örneğin, inceleme dahil mi? Teknik gecikmeler dahil mi?

25

Zor taraftan öğrenen birinden karanlık taraftan bazı tavsiyeler.

Gereksinimler belirsiz. Hiç kimse, tüm sonuçların derinlemesine bir analizini yapmamıştır.

Bu noktada bir tahmin yapmayın. Düşman sayısı hakkında hiçbir ipucu olmayan bir savaşı kazanmak için kaç askerin gerekli olduğu tahmin edilmez. Tahmin, keşiften sonra yapılır. Bu, siz zaten bu düşmanla savaşmadığınız sürece.

Yeni özellik muhtemelen kodunuzda yaptığınız bazı varsayımları ortadan kaldıracak ve derhal yeniden gözden geçirmek zorunda kalabileceğiniz her şeyi düşünmeye başlayacaksınız.

Başkalarının bu alan hakkında uzmanlığa sahip olmasını beklemiyorsanız, bu faktörü sizin sorumluluğunuzdadır.

Geçmişteki ödevlerden yapacak başka şeyleriniz var ve diğer işleri hesaba katan bir tahminde bulunmalısınız.

Yukarıda olduğu gibi, yanında olmayan bir takım arkadaşı tarafından yaratılan beklenmedik bir çalışma için bile, var olmayan bir test prosedürü ile yanınızda, kodunuzun önceden mükemmel olarak tahmin edemeyeceğinizi ortaya çıkarmasına neden olur. Hava tahmini.

'Yapılanma' tanımı muhtemelen belirsiz: Ne zaman yapılacak? Kodlama işleminde olduğu gibi 'Bitti' mi, yoksa 'kullanıcılar kullanıyor' ifadesinde olduğu gibi 'yapıldı'?

Burada kullanıcı sonu gereksinimini anlayın, bir kullanıcı gibi düşünün. Bir kullanıcının "yapılması" gereken bir şeyi tahmin etmesi durumunda ne yaptığını yapmayın, çünkü hiçbir kullanıcının tolere edemeyeceği barebones iş akışına sahip bazı temel işlevler, "yapıldığını" düşündüğü şeydir . Bunu kullanıcı açısından düşünün, çünkü tahminini yaptığınız tüm müşteri bu genellikle anlayacaktır. Barebone teknik gereksinimlerine değil, tüm kullanıcı gereksinimlerine yönelik tahmin. Ve tahminler isteyen müşterilerinizin burada bir şeyleri nasıl ifade ettikleri ve söylediklerinizin teknik yönlerini anlamaları konusunda tamamen yanlış olacağını anlayın.

Tüm bunlar konusunda ne kadar bilinçli olursanız olun, bazen “programcınızın gururu” size başlangıçta beklediğinizden daha kısa süreler / kabul etmenizi sağlar. Özellikle son tarihlerin ve yönetim beklentilerinin baskısını hissettiğinizde.

Bunu yapma! Kendini motive eden bir çalışkan ve muhtemelen zorlamaya kolayca izin veren biri gibi konuşuyorsun.

Buradaki sorun şudur: Joe ve sizin aynı görev için zaman tahminleri yaptığını (ancak iki ayrı çalışan arasında, aynı anda her iki tahminden habersiz) diyelim. "Bir hafta" yiğitçe tahmin ediyorsun . Sence sorun yok, fazla mesai ödenmemiş, haftada 100+ saatten fazla çalışacaksınız. Şimdi üç gün geciktin.

Bu arada, Joe 5 ay tahmin ediyor. Bunun saçmalık olduğunu düşünüyorsun, bir hafta içinde çekebileceğini düşünüyorsun. Joe ne kadar çalışıyor? Haftada 10 saat? ... tam 5 ay içinde zamanında bitirmesi dışında.

Tahmin et kim piç kurusu olarak algılanır? Bu doğru sen. Joe harika bir işçi gibi görünüyor, şimdi güvenilmez görünüyorsun. Joe'nun aldığı sürenin ~% 7'sinde daha iyi bir sonuç elde etmiş olmanız çok önemli değil. Önemli olan, bir haftalık tahminden 3 gün uzakta olman.

Daha sıkı bir tahminde asla hata yapmayın. Daha gevşek tahmin tarafında Err. Şirketinizde inşa edilecek bir itibar vardır ve bu, tahminlerinizin uzunluğuna, tahminlerinizin doğruluğuna bağlı olarak yapılmayacaktır. Çok uzun süren bir tahminle doğru olmak kolaydır, sadece sorun üzerinde çalışmak ve daha iyi çözmek için daha fazla zaman kazanırsınız. Çok kısa olan bir tahmin hiç nefes alma alanı bırakmaz, ya umutsuzca karşılaşırsınız ya da batırılırsınız.


2
Bu harika bir cevap, bana bir şeyleri nasıl tahmin edip değerlendirebileceğimize dair çok faydalı bilgiler veriyor, teşekkür ederim
mboullouz

18

"İki hafta!"

Ciddi anlamda. İlk tahminim her zaman iki haftadır. Çünkü her şeyin iki hafta gibi olacağını düşündüğüm bir tuhaf zihinsel engelim var.

Etrafında çalışmayı deneyeceğim, ne kadar zaman alacağımı düşündüğüm hakkında gerçekten düşünmeye çalışıyorum, benim için doğru tahmin edilemeyecek kadar kara kutu-y gibi görünen tüm potansiyel sorun noktalarını ve parçalarını belirlemeye çalışıyorum. Ve cevabım "İki hafta!" İse, muhtemelen başaramadığımı farketmeye çalış.

Hemen hemen her iyi menajer "İki hafta!" cevap olarak hafif bir sözel pezevenk-tokat gerektiren bir cevap olarak.


3
Muhtemelen bu yüzden takımların çoğu 2 hafta sprint yapıyor :)
Cristian E.

17

Önceki tahminlerinizin ne kadar doğru gittiğini gösteren bir kaydı nasıl tutacağınızı gösteren bir blog girişi var ve bir dahaki sefere "iki hafta olacak" derken, önceki geçmişinize bakıp ne kadar süre alabileceğini görebilirsiniz. Aslında geçen sefer "iki hafta olacak" dedin.

Kendim denemedim, ancak tahminlerimin ne kadar doğru olduğunu görmek istiyorum.


2
Joel's Fogbugz bu konuda devam ediyor ve verilerinizi kanıta dayalı zamanlama kullanarak analiz ediyor. Yani, her geliştirici her görevin ne kadar süreceğini düşündüklerini ve daha sonra bu görevin ne kadar sürdüğünü girer ve her geliştiricinin bitiş tarihi için bir olasılık eğrisi oluşturmak için tahminleriyle ne kadar doğru olduğunu belirtir.
Chris Buckett

Evet, öyleyse biraz GDD yapın - Driven Development'ı ölçün ve her şeyi
mahvedin

11

Organizasyona ve tahminlerin nasıl kullanıldığına bağlıdır.

Tahmin, ne zaman hazır olacağı hakkında genel bir fikir vermekse, genellikle tecrübelerime dayanarak hızlı bir tahmin yapabilirim. Çoğu zaman, tahmindeki değişikliklerin sistemin diğer alanlarını ve gerekli olan regresyon testinin kapsamını nasıl etkileyebileceği ile ilgili belirsizlikleri veya olası değişiklikleri de dahil edeceğim.

Tahmin, sözleşmeye bağlı herhangi bir şey için veya daha kesin zamanlamanın gerekli olduğu bir senaryoda kullanılıyorsa, tam bir iş kesintisi yapıyorum. Bu daha fazla iş ve tasarım ve sistemde yapılan değişiklikler hakkında derinlemesine düşünmeyi gerektirir, ancak özellikle daha büyük işler için çok daha doğrudur.

Her iki durumda da devam eden iletişim anahtardır. Beklenmeyen bir şeyle karşılaşırsanız, son tarihe kadar beklemek yerine, o anda bilinmesini sağlayın. Gereksinimler açık değilse, bunları ve vermeyi düşündüğünüz işlevselliği anladığınızdan emin olun. Bu aynı zamanda yaptığınız varsayımlarda da yararlıdır. Rekabetçi önceliklere gelince, bir iş parçası diğerine çarptığında, bunun programı nasıl etkileyeceği konusunda net olun.


2
Devam eden iletişime duyulan ihtiyaç için +1. IMO, bu Çevik modelin en yararlı kısmı.
Scott Weldon

Buradaki ilk iyi cevap budur, çünkü "devam eden iletişimi" vurgulayan şimdiye kadar olan tek şey (yukarıdan aşağıya okuyorum). Diğer herkes, tahmin iletişiminin bir kereye mahsus bir olay olduğunu düşünüyor. Bu kötü bir tavsiye ve bunlara kötü bir yaklaşım. Bu cevap iyi bir tavsiyedir.
Adam Cameron

9

Ne için tahminler? Küçük işler veya komple çözümler.

Sonuncusu nadiren yaparım, ancak daha sonra sadece tahmin edin, biraz ekleyin, yöneticinin biraz eklemesini sağlayın ve bir aralığa girmesini sağlayın, yanında küçük bir not ile yukarıdakilerin bir tahmin olduğunu belirtir.

Küçük görevler - Poker planlama gerçekten iyi çalıştığını tespit ettim (mükemmel değil, bazı 1pt görevler çok uzun sürdü ve bazı 5pt görevler birkaç dakika sürdü, ama sonunda hepsi bitti).


Yay planlama pokeri!
Sean McMillan

7

Bugün bildiklerinize dayanarak bir dizi sunun. Kullanım Belirsizliğin Cone başlangıçtaki guesstimates etrafında dizi sağlamaktır.

Her hafta ne kadar şey kaldığını hesaplayın, bildiklerinize dayanarak yeniden tahmin edin. Her hafta ne kadar işten geçtiğinize dair örnek bir boyutunuz yeterli olduğunda, proje ilerledikçe (genellikle) daraltıcı bir tarih aralığı vermek için kalanlara ve proje ilerledikçe ve kalan iş miktarına (% umarım) ) küçülür.


7

Kendine güvenerek. Bir müşteriyle bir tahminde bulunarken, profesyonellikten vazgeçmeyip kaç kez ilk toplantı yaptığımı söyleyemem. Sayıları ince havadan atıyor olsanız bile - her zaman biraz tahminde bulunduğunuzdan emin olun. Bununla birlikte, kendinizi bir deliğe sokmamak için dikkatli olun. Farklı şeyler bir araya getirmek için farklı miktarlarda zaman, çaba ve kaynak gerektirir. İşte bunu yapmanın iyi bir yolu:

Onları: Ne kadara mal olacak?

Ben: Ne yapmamı istediğine bağlı. Genel olarak, bu tür bir projeyi yaklaşık X $ ile başlatıyorum.


6

Bazen tahmin yapmak, özellikle de yazılım proje tahmininden bahsettiğimizde, sizin ve ekibiniz için çok büyük bir zorluktur.

Bir zamanlar deneyimlerimizi ve yazılım tahmin süreci hakkındaki bilgilerimizi paylaşmaya karar verdik ve dört farklı tahmin türü tanımladık :

  • basketbol sahası figürü
  • hizmet tahmini
  • özellik tahmini
  • bileşensel tahmin

Tabii ki, bu türler farklı. Ballpark, genellikle “tahmini” olarak adlandırılan şeydir . Bu yüzden, genel bir maliyet fikrini veren ve görüşmeyi daha ileri götürmek isteyip istemediklerine karar vermesine yardımcı olabilecek yaklaşık bir sayı veya aralıktır.

Kural olarak, müşterilerin projenin başlangıcında bir oyuna ihtiyacı var. Ve tavsiye geçerli: projesinin tartışma ve sağlayan Tahmini değerlere sadece alma yolundaki iyi adımlar olmalıdır birçok bileşenin tahmini esnek olan bir bütün gelişim süreci için birçok bileşenin tip tahmini yararlanabilirler (yeniden tahmin gerek yok sıfırdan zamanlardan. özellikleri, hizmetleri vb. eklemek, kaldırmak veya değiştirmek

Herkes, yazılım geliştirme tahmini ile gelen riskleri göz önünde bulundurmalıdır: hafife almak, aşırı tahmin etmek, toplam epik başarısızlık senaryosu vb.

Blogumuzda daha fazlasını okuyabilirsiniz!

http://blog.lemberg.co.uk/project-management/software-estimation-process/

Umarım bu bilgi size yardımcı olur!


5

Ben her zaman daha sonra yerine getiremeyeceğimin farkına vardığım tahminleri vermekle bitirdim. Bu defalarca oldu ve her zaman bir daha olmayacağına söz veriyorum.

Tahminde bulunmanız isteniyor gibi görünüyor, bir tahmin değil. Bunlar farklı şeyler, ancak taahhütleri güvenilir bir şekilde yönetebiliyorsanız, güvenilirliğinize ve kariyerinize gerçekten yardımcı olacaktır.

~ 10 yıllık tecrübeme dayanarak bazı tavsiyeler:

  • Her zaman bir aralık sağlayın (ör. Alt ve üst sınır). Bu belirsizlik seviyenizi bildirir
  • Çok büyük bir belirsizliğiniz varsa, erteleme isteyin (örneğin, analiz yapmak için 1 gün ve daha sıkı bir aralık sağlayın)
  • Görev çok büyükse, ayırın ve her parça için bir aralık sağlayın

4

İlk olarak, eğer bir görev bana atanırsa, onu alt görevlere bölerdim. Her alt görev için zamanı tahmin ederim ve muhtemelen alt görevlerle sorunlu alanı bulabilirdim ve bu yüzden ne kadar süreceğini tahmin edebilirdim. bir dereceye kadar.

Ancak yine de tüm planlama yalnızca bir dereceye kadar yardımcı olacaktır. Yalnızca kodlamaya başladığınızda kesin sorunları bulabilirsiniz.


1

Aynı patron veya müşteri için pek çok proje yaparsanız, muhtemelen tişört boyutlarında, haftalar veya aylar yerine geniş karmaşıklıkta vuruşları tahmin etmeye çalışabilirsiniz. Birkaç geçmiş proje tanımlayın ve onlara S, M, L, XL boyutlarını atayın.

Ve sonra kendinize sorun: hangi ses bu kapsama benzer? Ve sonra "2 Ay" ile cevap vermek yerine, "benim için L gibi sesler" (veya proje için kalibrasyonunuz ne olursa olsun) ile cevap verebilirsiniz.

Bunu anlamak oldukça kolaydır ve bu tahminlerde çok fazla belirsizlik olduğu da açıktır.

Ardından, gereksinimler değiştiğinde, "değişimin XL gibi görünmesini sağlıyor" diyebilirsiniz.


bu oldukça akıllıdır (eğer kullanmana izin verilirse): Benzer bir yaklaşımla gitmeyi tercih ediyorum ama sadece zaman değerleriyle genellemeyi tercih ediyorum, bu yüzden cevaplayacağım "bu bir hafta kadar sürecek" veya "meselesi olacak günler "küçük bir şey için ve proje bir aydan daha büyük olacak ve uygun bir tahmine ihtiyaç
Edoardo

0

Biraz geç kaldım ancak ordudayken tahminleri belirlemek için PERT kullanmamız istendi. Alanında biraz tecrübe ve eldeki görevi gerektiriyor. Elektronik cihazların (karmaşık telsiz ve uydu iletişim ekipmanı) bakımını yaparken ve tamir ederken, rutin bakım sırasında herhangi bir şeyin yanlış olabileceği veya bulunabileceği ve düzeltilmesi gereken tahmin edilen tamamlanma süresini belirlerken şaşırtıcı bir şekilde doğruydu. Tahminler önemliydi çünkü diğer birimler iletişim ekipmanlarını geri alana kadar çalışamazlar. Kullandığım bir tanesi bu Ücretsiz Çevrimiçi PERT Hesaplayıcısı.


1
Bu bağlantı Ücretsiz Online PERT Hesap Makinesi artık çalışmıyor.
krokodilko

: @krokodilko Burada yazılım tahminleri doğru dişli olan yeni PERT araç geliştirdik estimates.rokkincat.com .
argo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.