Önceki günlerden daha fazla veya daha az verimli yazılım geliştirdiğimi nasıl izleyebilirim?
Önceki günlerden daha fazla veya daha az verimli yazılım geliştirdiğimi nasıl izleyebilirim?
Yanıtlar:
Basit bir cevap var: yapamazsınız. Üstelik bunu yapmamalısın.
Kendi üretkenliğinizi ölçmek istiyorsunuz, ancak genelleştirebilirsiniz: programcıların verimliliğini nasıl ölçebilirsiniz? Öncelikle "verimlilik" için ne demek istediğinizi tanımlamanız gerekir: üretilen kod miktarı? Uygulanan tasarım (veya şartname) miktarı? Düzeltilen sorun sayısı? Üretilen kodun kalitesi? (Evet, kalite bir verimlilik sayacıdır, çok sayıda kötü kod veya birkaç iyi kod üretebilirsiniz, daha üretken olan nedir?). Tüm bu değerler günlük bir üsle eşleştirilemez ve günlük üretkenliği izleme girişimleri proje, şirket ve programcı için tehlikelidir.
Tavsiyem ne demek istediğinizi "verimlilik" olarak açıkça tanımlamak, sonra bir ölçü birimi tanımlamak ve haftalık ve aylık olarak uygulamaktır.
Aşağıdaki her iki öneri de ihtiyaçlarınız için kabaca benimsenebilir, ancak her iki durumda da önceden tahminler yapmanız ve bunları geçici olarak analiz etmeniz gerekir (ve dürüst olmak gerekirse, bunu nasıl ölçmenin başka bir etkili yolu olup olmadığından emin değilim, katılıyorum TheLQ ile zaman dilimi içindeki kod satırları hiç kullanılamaz).
Çevik geliştirme metodolojileri
Tek bir geliştirici senaryosuna ne kadar etkili bir şekilde uygulanabileceğinden emin olmasam da, Agile'da kullanılan bazı ilkeler, gerçekleştirmeyi amaçladığınız şeylerde yararlı olabilir. Çevik, geliştiricilerin bir geliştirme döngüsünün başlangıcında uygulama karmaşıklığına bağlı olarak puanlanan (puan olarak) hikayeleri (görevleri) uygulamayı amaçladığı ve daha sonra her döngünün sonunda analiz edildiği döngülerde çalışır. Bu, hızın, yani bir geliştiricinin veya bir ekibin tek bir geliştirme döngüsünde tamamlayabileceği noktaların sayısını belirlemenizi sağlar.
Çalışma şekliniz bazı ilkeleri benimsemenize ve çalışmanızı döngüler halinde düzenlemenize izin veriyorsa , verimliliğinizi izlemek için geliştirme döngüsü metriği başına hızı kullanabilirsiniz . Döngünlerin genellikle 2-3 hafta sürdüğünü unutmayın, ancak bunu yalnızca kendiniz için kullanırken kısaltmanız gerekir. Her şey, ortamınızda böyle bir metodoloji benimsemeniz durumunda ortaya çıkar.
Kanıta Dayalı Programlama
Öncelikle tahminleri iyileştirmek için tasarlanmış olsa da, verimlilikteki azalan eğilimleri izlemek için bunu etkili bir şekilde kullanabilmeniz gerekir.
Lorenzo ile aynı fikirde olun, verimliliği tanımlayın.
Ben de bunu yaptım: 1. Tüm görevleri yıkın (yüksek seviye veya düşük seviye arıza). 2. Her görev için çalışma saatlerini tahmin edin (her görev için gecikme tamponu ayarlamayı unutmayın). 3. Görevi bitirin. 4. Görevin her birini gözden geçirin ve yeterince üretken olup olmadığınızı görün.
İşte Kanıta dayalı birden çok zamanlama anlık görüntüsü almayı içeren anlamlı ve doğru bir verimlilik ölçüsü :
Birkaç günlük istatistik topladıktan sonra Monte Carlo simülasyonunuzu çalıştırın ve aşağıdaki gibi olması gereken grafiği izleyin:
Sonra bir gün daha çalışın ve simülasyonu tekrar çalıştırın. O gün üretken olsaydınız, grafik şöyle bir şey değiştirmelidir:
En önemlisi, o gün ürün olsaydınız, simülasyonu o iş gününden önce en son çalıştırdığınız tarihten bu yana , herhangi bir tarihte gemi tarihi olasılığı artmalıdır . Eğer azalırsa, o gün daha az üretkendiniz.
Elbette, EBS'nin doğruluğu zaman ve deneyim ile artar, bu nedenle gemi tarihi olasılık değerindeki değişikliğin bir başka nedeni olabilir. Bu yüzden, en azından birkaç gün değerinde örneklenmiş işten sonra yapmaya başlamak istiyorsunuz. Onsuz bile, bir gün ya da başka bir günde önemli ölçüde daha üretken olsaydınız, olasılık oldukça belirgin bir şekilde artmalıdır.
Kod satırlarını saymak, kodun kalitesi hakkında bir fikir vermediği, ancak genel üretkenliği belirlemek için kullanılabileceği için kusursuz bir ölçümdür. Hangi dili kullandığınıza bağlı olarak, sizin için kod satırlarını sayacak farklı araçlar vardır, ancak Git Deposu BitBucket'in üretkenlikle ilgili istatistikler eklemesini istedim.
https://bitbucket.org/site/master/issue/4307/feature-request-contributor-statistics
Bir an için üretken olmanın, tüm çalışma zamanınızı görevlerinizin tamamlanması için çalışmak üzere kullandığınız ve zamanınızı boşa harcayan herhangi bir şeyin - yani: görevlerinizi yerine getirmek için harcanan zamanın - üretken.
Gerçekten yapabileceğiniz tek şey, gün boyunca çeşitli etkinliklerde bulunduğunuzda zamanınızı kaydetmektir. Zaman boksu çeşitli amaçlar için kullanılan bir tekniktir, ancak bir gün boyunca aktivitenizi kaydetmek için bu çabaya uygundur. Sadece bir görev yaparken bir zamanlayıcı üzerinde 15 dakika geçirin. Görev üzerinde çalışmanız gereken bir şeyse, zamanınız verimli geçti. Blogunuzu düzenlerken, bir haber makalesi okurken veya muhasebede bu güzel kız hakkında hayal kuruyorsanız, zamanınız muhtemelen verimsizdi. Günün sonunda dakikalarınızı toplayın ve ne kadar üretken olduğunuzu hissedeceksiniz ...
Ama bir sorun var! Diğer dakikalar hakkında ne yapıyorsunuz ... bilirsiniz, 5 dakikalık bir mola vermek, öğle yemeğine gitmek, patronunuzun size son balık avında yakalamadığı büyük balığı anlatmak için sizi yarıda kesmesi? Hepsini de günlüğe kaydet. Bir mola için harcanan zaman, zihinsel sağlığınıza ve refahınıza katkıda bulunursa boşa harcanmaz ... sadece 10-15 dakikada bir 5 dakikalık mola vermediğiniz sürece !! Geri kalanı ise, kesintiler, işle ilgili diğer konularla ilgilenmek .. tüm bunlar takip edilebilir.
Elbette kendinizi bu tür şeylere takıntılı bulabilir ve eğer patron size zaman boksu gören ve daha fazla iş yapmak veya çabalarınızı eleştirmek için nedenleri haklı çıkarmak için kullananlardan biri ise tanrı size yardımcı olabilir. Gördüğünüz gibi, üretken saatlerdeki saplantılar ile ilgili sorun, bir gün boyunca çalışabilmeniz ve yine de gerçek alaka düzeyinin hiçbiri yapılmamasıdır. Bazı günler beyninizden tereyağı eritiyormuş gibi kod yazıyor olabilirsiniz ve ekran olarak adlandırdığınız sandviçin üzerine ... diğer günler aynı şeyi yapmanın 357 farklı yolunu denerken ciddi bir zihinsel bloğa sahip olabilirsiniz. şey, sadece başarısız olduğunu izlemek için. Birçoğu, sürekli "başarısızlıkların" verimsiz olabileceğini ve gün içinde ne kadar zaman kutusunu ve saatlerinizi kaydettiğinize bakılmaksızın kendi başına yardımcı olmayacağını söylerdi.
Buna bakmanın diğer yolu, kendinize sadece bir dizi hedef belirlemeniz, bir gün ve bir hafta boyunca tamamlamanız ve daha sonra bunları tamamlamak için çalışmanızdır. Gerçekte hedeflerinize ulaşırsanız, üretken olduğunuzu iddia edebilirsiniz ve hedeflerinize ulaşmazsanız, neden onlara ulaşmadığınızı anlamanız ve üretken olup olmadığınıza karar vermeniz gerekebilir. hedeflerinizi kaçırmanın gerçek nedenlerine dayanarak. Sonuç olarak, gerektiğinde çalışma kodunu verirseniz ve testlerinizi geçebilir ve bir görev tamamlanırsa, üretken olursunuz. Ölçümler, ancak daha sonra istatistiksel olarak analiz edilmesinin meşru bir nedeni varsa değerli olacaktır.