Küçük bir programcı olarak tahminlerle başa çıkmak


16

Şimdi birkaç aydır (genel nüfus için, özellikle gençler için değil) görevleri tahmin eden bir şirkette çalışıyorum ve sonra bize görev veriliyor, çözülüyor, iki testten geçiyor ve sonunda tahmin olmalı bir şekilde buluştu.

Stresin ötesindeyim çünkü bazı tahminlerin benim için karşılaması imkansız. Hala tüm sistemi bilmiyorum (çünkü oldukça önemli) bu yüzden bazen yarım zaman ne yapmam gerektiğini ve nerede ve ne zaman bitirdiğim zaman tahmin bitti ve hala test olmak için harcanıyor (ve eğer varsa hataları düzeltir).

Benzer bir işlevsellikle ikinci kez uğraşmam gerektiğinde her şey çok daha hızlı çalışıyor, ancak şimdiye kadar programlama konusunda kötü olduğumu hissediyorum.

Yeni başladığınızda yaptığınız ve bu aşamaya geçmenize yardımcı olan bir şey var mı? Kodlamak için ne kadar az zaman olduğunu gördüğümde çok stresli oluyorum, bazen yaptığım şeye düzgün odaklanamıyorum, bu da daha da kötüleşiyor.


2
İlk işe başladığımda da çok benzer bir deneyim yaşadım. Endişelenme, çok yaygın.
Rocklan

1
@ratchetfreak Bu kesinlikle programcı bir şey. Çalıştığımız sistem çok büyük olduğundan, daha önce programlama deneyimim olmasına rağmen stajda da benzer bir deneyim yaşadım.
JSideris

1
Tahminler Guesstimate'lerdir. İşler bittiğinde yapılır. Bazen köşeleri kesebilirsiniz, ancak bunu sadece 3 gün önce yaptığınız bir tahminde bulunmamak için zor tarihler (sürüm / müşteri önizlemesi / ...) için yaparsınız! 002
Martin Ba

Yanıtlar:


12
  • Çok az yönetim deneyimine sahip birçok geliştirici, bir takımdaki "en iyi" geliştiricinin kendi hızını veya hızını kullanarak görevleri tahmin eder.

  • Hız deneyime göre değişir. Üst düzey geliştirici, aynı sorunu çözmek için 2 iş günü sürdüğü bir şeyi çözmek için 3 saat sürebilir.

  • Yeni bir işe girdiğinizde stres nadiren önlenebilir. Birkaç ay sonra, yeterli iş yaptığınızı ve ilgili birçok soru sorduğunuzu varsayarsak, normalde daha iyi olur.

  • Yaşlılarınız tahminler hakkında ne düşündüğünüzün farkında olmayabilir, bu nedenle onlardan sizden ne beklediklerini sormanız önemlidir.

Deneyimlerimden:

  • Üst düzey geliştiricinin veya bir yöneticinin t-shirt boyutları (XL, L, M, S, XS) açısından bir kullanıcı hikayesini (iş gereksinimi) tahmin edebilmesi gerektiğini düşünüyorum.

  • Kullanıcı hikayesini daha küçük görevlere ayırmak ve bunları tahmin etmek geliştiricilerin görevidir. Büyük görev, üst düzey geliştiricinin çözülmesi için bir gün sürebilir, bu da size bir hafta sürebilir.

  • Görevi tamamlamanızın ne kadar sürdüğünü kaydetmek çok önemlidir.

  • İyi proje yöneticisi veya kıdemli geliştirici sürekli olarak bu istatistikleri toplar. Verimliliğiniz arttığında, bunun farkında olacaklar ve yolunuza daha fazla iş gönderecekler.

Bu sadece hayatınızı daha az stresli hale getirmekle kalmayacak, aynı zamanda departmanın kaynaklarını etkili bir şekilde yönetmesine de izin verecektir.


11

Bunu ekip lideriniz, proje yöneticiniz ve / veya tahmininizi yapan kişi ile birlikte getirin; biz değil. İnsanlar, işlerin herkes için aynı miktarda çaba sarf etmediğini anlarlar ve ya görev atandığında tahminleri ayarlamaya çalışabilirler ya da en azından gözden geçirme dönemi hakkında sahip olduğunuz korkuları hafifletebilirler.

Benim görüşüme göre, tahminlerin göreve atanan kişiler tarafından yapılması gerekir (öncü / akranlardan girdi / işbirliği ile). İşin insanları ne kadar sürede yapması gerektiği konusunda daha doğru tahminler alırsınız.


7

Elbette size meydan okumak için yapmadıkları sürece, genç bir geliştiriciyi tutamayacakları bir beklenti oluşturmaktan daha kötü bir pozisyon düşünemiyorum. Tahminleri karşılamamak için gerçek bir yankı yaptınız mı?

Önce söyleyebilirim ki, kendi başınıza tahmin etmeyi öğrenmeniz önemlidir. Bir görev verdiğinizde, hemen ne alacağını düşündüğünüzü tahmin edin ve sonra ikisi arasındaki deltayı bulmaya başlayın. Neredeyse bahse girerim, ilk kısa tahminde kaliteden ödün veriliyor. Basitçe, öğeleri tasarlayabileceğinizden ve daha hızlı bir şekilde tasarlamanızı bekliyorlarsa, sorunu çözmek için birisiyle sohbet etmeniz gerekebilir.

İkincisi, kalitenin pay sahiplerinin, patronunuzun ödeme yapmaya karar verdikleri bir özellik olduğunu anlayın. Bu, sahip olduğunuz zamandaki gereksinimleri karşılamak için biraz yapmaktan fedakarlık etmeniz gereken bir şey olabilir.

Her iki durumda da, stresi ortadan kaldırın, her zaman kötü kod yazmanın arkasındaymışsınız gibi eğlenceli bir sürekli duygu değil. Bu yardımcı olur umarım.


2

Bu yaygındır.

Genel olarak, küçük tahminlerden daha büyük tahminler vermek daha iyidir (Çoğu zaman tahmini zaten geçersiniz). Görevi mümkün olan en küçük alt görevlere ayırmanızı ve bunları her görev için 4 saatten uzun olmamasını tahmin etmenizi öneririm.

Bir görevin 4 saatten fazla sürmesi durumunda görevi başka bir alt görev grubuna ayırın. Ayrıca şimdi öngöremediğiniz görevler için yüzdelik bir tampon ekleyin (kişisel tercihim, çalıştığınız sisteme bağlı olarak her beklenmedik görev 2 - 4 saat süren tahmini her 2 görev için 1 beklenmedik bir görevdir).

Bundan sonra test, iletişim, analiz vb. İçin alacağınız zamanı ekleyin.


1

Birincisi: Bir sorundaki her girişimde daha hızlı olursanız, muhtemelen kötü bir programcı değilsinizdir. Öyleyse bu düşünceyi yoldan çıkaralım.

Bunun yöneticilerinizin başarısızlığı olduğunu söyleyebilirim, ancak beklentileri yönetmek her zaman sizin işiniz olacaktır.

Gerçekçi olmayan son teslim tarihlerine ulaşamadığınız için kendinizi yenmek yerine, bir hafta içinde kaç günlük iş yapabileceğinizi ölçün. Daha sonra, ekibinize iş ve yazılım geliştirme konusunda yeni olduğunuzu ve yalnızca n gün üst düzey geliştirici çalışmalarını standart bir haftaya sokmanız beklenebilir. Bunu sevmeseler bile en azından bunu anlamalılar.

Onlara gelişmeye devam etmeyi beklediğinizi söyleyin ve onlara bu gelişmeyi nasıl ölçebileceğinizi gösterebilirsiniz. Ve bir hafta içinde 5 günlük üst düzey geliştirici işi yapana kadar bir üst düzey ücret beklemediğinizi kabul edin. Ama aynı şekilde, neredeyse size çok fazla ödeme yapılmadığında, bir kıdemli ile aynı sorumlulukları beklemezsiniz.

Bunu daha da ileriye götürmek için, bu yüzden tahmin için saatler yerine hikaye noktalarını kullanmanın güçlü bir savunucusuyum. yani. Her iş bir takım puan alır ve takım belirli bir süre içinde kaç puan kazanabileceklerini tahmin eder. Sonraki dönem, tahmin, bir tatil dönemi veya geliştiriciden ayrılan gibi bilinen faktörler için ayarlanan bir önceki döneme göre gerçekleşti.

Yönetici olarak, yeni bir geliştirici geldiğinde (junior veya senior), işletmeye ilk olarak tahmini artırmayacağımızı açıkça belirtiyorum. Bu geliştiricinin diğer geliştiricilerden tasarruf ettikleri kadar zaman alması bekleniyor. Yeni geliştirici muhtemelen bundan daha iyisini yapacak, ancak vaat ve aşırı teslim mantra.

Geliştirici, bir yetişkinden daha hızlı bir kıdemli olan zaman içinde iyileşecek ve ekibin "hızı" - aylık tahmini ay - bununla birlikte iyileşecektir.


1

Sakin kalın ve devam edin. Tahminleri karşılamamanız sorunu gündeme gelirse, sadece mesajınıza yazdıklarınızla aynı şeyleri söyleyin veya kendinizi güvensiz hissediyorsanız, danışmanınızla / takım liderinizle kendi başınıza konuşun.

Tahminler sadece budur, tahminler. Halatları öğrenirken daha çok kapalı olabilirler ve olacaklar. Ve bir genç olarak, bu projede ekip üyesi olarak, kullandığınız teknolojiyi kullanan bir programcı olarak ve şirketinizde bir çalışan olarak ipleri öğrenmeniz muhtemeldir. Ve eğer mantıklı kişilerle çalışıyorsanız , tahminlerden vazgeçmenizi bekliyoruz .

Muhtemelen "aşağıdan yukarıya" aldığınız görevlere bakıyorsunuzdur. Görevleriniz sizin için üzerinde çalıştığınız projenin büyük resminden daha önemlidir - bu anlaşılabilir. Tahminleri, size getirilen kısıtlamalar olarak görüyorsunuz ve açıkçası bunları karşılamadığınızda endişeleniyorsunuz.

Ancak büyük resme baktığınızda, geliştiricilerin 'hedeflerinden bile daha fazla olan tahminlerin potansiyel müşteriler / proje yöneticileri için' sinyaller 'olduğunu göreceksiniz. İşi görevlere ayırmak ve tahmin etmek, tüm projeyi yönetmenin ve tahmin etmenin karmaşıklığını azaltmanın bir yoludur. Gerçek işlerin tahminlere karşı yapılması, projenin nasıl çalıştığını takip etmenin bir yoludur, ancak uygulanabilecek metriklerden yalnızca biridir. Tahminler düzenli olarak karşılanmadığında, projede bir sorun olduğunu yöneticiye bildirir. Ancak herhangi bir makul projede, ekipte tahminleri karşılamayan genç bir geliştirici olması gerçeği olmayacaktır.


0

Sizi iki arkadaşım olan WAG ve SWAG ile tanıştırayım

Yani, 'Vahşi Assed Tahmin' ve 'Bilimsel Vahşi Assed Tahmin'

İster inanın ister inanmayın, ben uydurmadım. Aslında iş dünyasında oldukça yaygındır. Ne demek istediğimi görmek için bu makaleye bir göz atın .

İdeal olarak, kesin bir tahmin yapmak en iyisidir, ancak yapamıyorsanız, eksik veriler nedeniyle tahminin kaba olduğunu söylemek daha iyidir.

Anahtar, iş, bilgisayar programlama değil. Beklentileri yönetmek hassasiyetten daha önemlidir. Öngörülemeyen sorunların telafisi için beklenmedik zamanın artı% 10 olacağını düşündüğünüz zamanı değerlendirmek önemlidir.

Fazla tahmin ederseniz, boş zamanınızla işiniz bittiğinde mutlu olurlar. Eğer hafife alırsanız, ya son teslim tarihine uyursanız hayal kırıklığına uğramayacak ya da bir şeyler ters giderse son derece hayal kırıklığına uğrayacaktır.

İş, bazı insanların zamanla sezgisel bir his kazandıkları gri bir alandır. Genç bir geliştiriciden bu tür kararları bağımsız olarak almasını istedikleri bir şey söylüyor. Ya bu tür kararlar verme konusunda daha yetenekli kimsesi yok ya da yöneticiler başarısızlıkların sorumluluğunu almak istemiyorlar.

Eğer büyük bir organizasyon için çalışıyorsanız paramı ikincisine koyardım. Hiyerarşik bir iş modeli yeterince büyüdüğünde, üst kısım alttan o kadar kaldırılır ki, yüksek seviyeler sadece kağıt üzerinde aldıkları ilerlemeyi ölçebilir. Korkunç bir ortam çünkü promosyonlar genellikle hata yapmamak için verilir. Ancak promosyonları alan insanlar, sorumluluklarını başkalarına (kör yetersizlik) iterek ve zincirde daha düşük insanların başarıları için kredi alarak başarısızlıktan kaçınırlar.

Ne yazık ki, programcılar 'otobüsün' altına atmak için kolay hedeflerdir, çünkü sorun ne kadar büyük olursa olsun, bir çözüm bulmaya çalışacağız. Önemli olan, sorunu nasıl tahmin edeceğinizi belirlemek için çözümü uygulamaktan daha fazla zaman harcamayın.


-1

Zor bir yer. Bu boru hattının "sadece teslim etmek" aşamasında kaldığınız anlaşılıyor.

Yıllar boyunca tahmin hakkında aşağıdakileri fark ettim: Bir tahminin kalitesi, aşağıdaki üç soruyu cevaplayarak (uygun bir adla) belirlenebilir.

  • Tasarımı kim yaptı?
  • Tahmini kim yaptı?
  • Uygulamayı kim yapıyor?

Tahminin kalitesi, adlandırılan farklı kişilerin sayısıyla ters orantılıdır. Örneğin: en iyi tahmin, aynı kişinin yukarıdaki görevlerin üçünü de gerçekleştirmesi, zayıf bir tahmin, bir kişinin tasarım / tahmin yapması ve bir diğerinin uygulama yapması ve en kötü tahmin, üç sorunun da cevaplandığı benzersiz bir isim.

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.