Geliştiricilerin Scrum'daki iki farklı proje arasındaki zamanı nasıl koordine edilir?


40

Yeni kurulmuş bir ekibin scrum ustası oldum, bu da bir yazılım oluşturmaktan ve diğer konuşlandırılmış uygulamaları sürdürmekten sorumlu. Temelde her takım üyesinin geliştirme ve operasyon görevleri vardır.

Son birkaç hafta içerisinde nasıl çalıştıklarını gözlemledim ve ekibin bu görevleri koordine etmekte zorlandığını fark ettim. Bir geliştirici kodlamaya yoğunlaştığında, üretimde ortaya çıkan bir sorunu çözmek için kesintiye uğrar ve önceki görevine tekrar odaklanması zorlaşır.

İşlemlerin çalışması için geliştirici süresinin% 'sini ayırmaya çalıştım, ancak görünüşe göre bu sorunu çözmüyor. Daha önce bu duruma rastlayan aldatmaca ustalarından haber almakla ilgileniyorum, bunu nasıl başardınız ve önerileriniz neler?


1
Öncelikle kritik üretim hatasını önceliklendirin ve çözün, ardından normal gelişime devam edin. Her ikisi de aynı anda yapılacak bir hata için soruyor.
Mark Rogers

Yanıtlar:


60

Bu sorun scrum kadar eskidir. Bir çözüm var, ama hoşuna gitmeyecek.

  • Biriktirme listesine yeni görevler koyun.
  • Geliştiricileri bölmeyin.
  • Bir sonraki sprint bekleyin.

Dev'lerinizi birden fazla iş parçacığına koymak, iki ayrı backlog'a sahip olmak ya da zamanlarının sadece bir yüzdesini atağa vermek, tüm işin zorluğuna ulaşmak için çalıştığı şeye, yani tutarlı bir iş akışına karşı çalışır.

Bu tür şeyleri denerseniz, temelde tüm ilgili sorunlarıyla birlikte “kaos” veya “JFDI” geliştirme metodolojilerine geri dönersiniz.

  • Geliştirici, hareket halindeyken herhangi bir zamanda on görevi vardır. Kimse ne üzerinde çalıştıklarını ya da ne zaman biteceklerini bilmiyor.
  • Projeyi bitirmek için bilinmeyen bir zaman var, çünkü diğer projelerin aynı anda ne olduğuna bağlı.
  • Proje önceliği konusunda tutarlı bir görüş yok. Diğer yöneticiler, geliştiricileri evcil hayvan projelerine yönlendirir.

Elbette bu tavsiyeye verilen olağan cevap "Ama bunu yapamam! İşletmenin bu üretim hatalarının en kısa zamanda düzeltilmesi gerekiyor!"

Ama bu gerçekten doğru değil.

İşletmeyi bu ölçüde etkileyen birçok gerçek hataya sahipseniz, profesyonelleşmeniz ve testlerinizi geliştirmeniz gerekir. Hepsini düzelene kadar sadece böcekler ve otomatik testler üzerinde çalışın. Bir QA ekibi işe alın ve tüm yeni sürümlerin cehennemini test edin.

Ne daha muhtemel olsa da, aşağıdakilerden biri:

  • Hatalar operasyonel problemlerdir, disk alanınız tükenir, DR, Yedek yok, yük devretme yok vb. OPS ekibi alın.

  • Hatalar, kullanıcıların sistemin nasıl çalışması gerektiğini anlamayan "Bu oldu! Bir hata mı?". Bir yardım masası edinin ve kullanıcılarınızı eğitin, belgeler yazın.

  • Geri alma korkusu. Yeni bir özellik başlattınız ve bir şey bozuldu, acele etmeye kalkmayın. Önceki versiyona geri dönün ve böcekleri birikim listesine yerleştirin.


5
süratin ne kadar sürdü? Tek bir haftaya
Ewan

3
Gözden geçirme ve retroları yapmamanız yeterli olabilir, belki ayda bir kez yaparsınız. Tasarım (UI tasarımı?) Olarak ayrı bir ekip / sprint olarak düşünüyorum iyi bir fikir. İnşallah tasarım çoğu zaman dev başlamadan önce yapılır ve çok fazla değişmez
Ewan

3
Ürün sahibi, geliştiricilerin her şeyi bırakmasını ve üretim hataları üzerinde çalışmasını, mevcut sprint'i durdurmasını, hatayı düzeltmesini ve bittiğinde başka bir sprint başlatmasını istiyor. Bu kararların sonuçları vardır ve bu, ürün sahibinin acil hata düzeltmeleri üzerindeki etkisini fark etmesini sağlayacaktır. İşler acil durum olarak kabul edildiğinde daha fazla takdir yetkisi kullanmak zorunda kalacaklar. Ya da bir sonraki ayağa kalkarken onları bekleyebilir ve giderebilirsiniz. Bu şekilde, fazladan bir bant genişliğine sahip olduğunu görebilir ve dev'in akışını kesemezsiniz.
JeffO,

5
İncelemeyi ve retro’yı atlar ve ayrı bir sprintte tasarım yaparsanız, geriye hiçbir Scrum kalmaz ...
Erik

6
Çözümünüz "şirkette en üst düzeyde otorite kazanmak, sonra üç yeni ekip oluşturarak çok para harcamak" mı?
Monica

25

Burada kutunun dışında düşünmeye çalışıyorum.

Ürün sahibine işlerin yolunda gitmesini sağlamak mümkün olmayabilir. Bekleyemeyen, geliştirici desteğine ihtiyaç duyulan müşterilerle buluşma, bir geliştiriciyi bir süre için sprint dışına çıkarmanız gereken kritik hatalar olabilir.

Neden bunu öngörmeye çalışıp avantajınız için kullanmıyorsunuz?

Belki de gerçekçi olması için 5+ bir takıma ihtiyacınız olacak.

Ancak neden bir geliştiriciyi her sprintin dışına çıkarmıyorsunuz (geliştiriciler arasında döner, her biri sırasını alır).

Büyük olasılıkla tam geliştiriciyi düzeltmelerde kullanmak için yeterli hata olmadığı için yapılabilecek başka sorunlar veya görevler vardır.

  • Performans darboğazlarını veya ölçeklenebilirlik sorunlarını belirlemek için testler yapmak
  • Yapı sisteminin bakımı
  • Müşterilerle toplantılar
  • Yeni çerçeveler / kütüphaneler araştırmak
  • Kullanmak istediğiniz dil özelliklerini inceleyin
  • Güvenlik konularında okuma
  • Veritabanı Bakımı
  • Sunucu bakımı

Takım hızı yükselebilir, stres düşebilir, yönetim ile çatışmalar düşebilir, bilginizi geliştirmek için zaman kazanırsınız.


3
Aynı şeyi düşünüyordum - bir geliştiriciyi "işleri" (üretim sorunları) yapmak için döndürün ve çok fazla gerçek iş yapamayacağı için, araştırma / keşif / diğer düzensiz şeyleri de yapmasına izin verin. Ve her bir üretim sorununun kök neden analizi yapması için iyi bir temel sebep analizi yapın.
RemcoGerlich

1
Bu aslında çok iyi bir fikir! Bir veya iki geliştirici daha işe almam gerekecek ama buna değer olduğuna inanıyorum. Çok teşekkürler!
Shadin

1
Projemizde bu pozisyonu bir ölçüde resmileştirdik. Scrum ekibi için Teknik Kurşun olarak atanan her takımda kıdemli bir ekibimiz var. TL bir dizi şey yapar (mentor genç geliştiriciler, üretimden önce "4 + 1 plan yaparlar", ortaya çıkan diğer geliştiriciler için sorunları çözer, vb.) yüksek öncelikli kusurlar. Açıkçası, bir LOT üretim sisteminize / felsefenize bağlıdır, ancak TL ekibin geri kalanını "korumaya" müdahale edebilir ve kullanıcı hikayelerine odaklanmalarına izin verebilir.
JBiggs

14

Kullandığım gerçekten gerekli üretim sorunları için geliştirici çabalarını yönetmek için etkili bir çözüm "Batman yaklaşımı" dır.

Yeni işlevsellik geliştirirken üretimin sorumluluğunu desteklemesi, içerik değiştirmedir, bu nedenle bunu sınırlandırmayı hedeflemelisiniz.

Ekibin katılımıyla, takım üyelerinin bir listesini oluşturun ve üzerinden geçin, böylece her gün stand-up toplantısında yeni bir kişi "Batman" ilan edilir ve o gün temel üretim sorunlarına cevap verir. Takımın geri kalanı bağlam geçişi yapmak zorunda kalmadan gelişime odaklanmış kalabilir ve herkesin destek ağrısından adil bir payı vardır. 5 kişilik bir ekiple, geliştiricinin kesintiye uğrayabileceği haftada bir gün ve 4 gün kesintisiz, öngörülebilir geliştirme süresi.

Bu, ekip içinde paylaşılan bilgi / deneyim avantajına sahiptir, bu nedenle belirli sorunları çözmek ve tek bir başarısızlık noktası ve destek sorunlarının adil bir şekilde bölünmesinden sorumlu bir kişiniz yoktur.


Çok ilginç bir yaklaşım ve şimdi durumumuzda uygulanabilir olduğuna inanıyorum! Çok teşekkürler!
Shadin
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.