Birkaç projede ele alınan konular için hikaye hazırlığı nasıl modellenir


9

Şirketimizde birkaç ekip aynı anda birkaç projenin farklı bileşenleri üzerinde çalışacaktır. Örneğin, bir takım bazı projeler için belirli türde yazılımlar (veya donanım), başka bir takım başka türde bir yazılım yapabilir. Jira projelerini belirli projeler için sorunları barındırmak için ve farklı ekipler için sprint'ler için Jira panolarını kullanıyoruz.

Projeler arasında kod yinelemesinden kaçınma sorunuyla karşı karşıyayız ve bu projelerde kullandığımız bir dizi çekirdek kütüphaneyi geliştirdik. Bir proje üzerinde çalışırken, bazı geliştiriciler yazdıkları bir kod parçasının daha fazla ilgi çektiğini ve çekirdek kütüphaneye çıkarılması gerektiğini veya kullandıkları bazı çekirdek kodların bir hataya sahip olduğunu, biraz daha parametreleştirmeye veya yeni özellik ... adını siz koyun.

Böylece çekirdek projenin biriktirme işine giren bir çekirdek kütüphane sorunu yaratırlar. Tüm bu konular bir çekirdek kütüphane toplantısında (haftada bir kez) gözden geçirilir, önceliklendirilir ve tahmin edilir ve gelecekteki bazı alanlarda önceliklerine (projeye özgü sorunların yanı sıra) göre ele alınacaktır.

Önceliklendirme, sorunları sıralayarak yapılır ve sortedsıralanan sorunlara bir etiket koyarız (böylece sıralanmamış olanları arayabiliriz). Daha sonra, ilk olarak ele alınabilmeleri için çekirdek bileşen başına bir sorunu biriktirmenin üst kısmına elle koyduk. Bazı takımlar böyle bir sorunu sprint'lerine koyduğunda, bunun yerine başka bir öğeyi iş yığınının üstüne manuel olarak sürüklemek zorundadırlar.

Bu oldukça hataya açıktır. Temel olarak, "açık" ve "devam etmekte olan" arasında "sıralanmış" ve "tahmin edilen" ek sorun durumları var. Bunu sortedetiketten ve tahtadaki konumlarından yansıtmak oldukça zahmetli ve hataya açıktır. (Örneğin, bir kişi bir sprint'te bir sorunu yukarı ve aşağı hareket ettirirse, bu, çekirdek kuruluna yansıtılarak, ekibin haftalar önce kapsamlı bir tartışmada karar verebileceği sorunların sırasını sessizce karıştıracaktır.)

Peki bunu uygulamanın daha iyi bir yolu ne olabilir?


2
Sadece bir lib'a bir işlev eklemek için çok fazla diplomatik yük gibi görünüyor. 50 devs (medikal yazılım) firmamızda, geliştiricilerin uygun olduğunu düşünürlerse, kurum içi kütüphanelerimizin her birine sadece kod göndermesine izin veriyoruz. Sonradan gözden geçirilir tabii. Belki bir çekme talebi akışı ancak bir toplantı ile çalışmayı düşünebilirsiniz? Hayır. Bu asla işe yaramayacak.
Teimpz

@Teimpz: Tabii ki, herkes kurum içi kütüphanelere zorlayacak ve elbette her kod gözden geçirilecek. Ancak, çekirdek meselelerin ele alındığı sıraya (mevcut bazı projeler için gerekli değildir) tüm ekipler tarafından karar verilir. Bu çok iyi çalışıyor, sadece Jira bunu iyi desteklemiyor gibi görünüyor.
sbi

Tepegöz biraz benziyor, ancak çekirdeğin çok yaygın olarak kullanıldığı göz önüne alındığında, hiçbir şeyin yanlış gitmediğinden emin olmak için biraz ek yükü kabul etmeye istekli olurum. Yine de bir toplantı çok benzer. Başka bir görev olarak görürdüm, ama ekstra iletişim - incelemeler, konuşmalar - önemli olurdu.
Erdrik Ironrose

Yanıtlar:


2

Eğer bunu JIRA'da izlemek istiyorsanız yeni bir görevmiş gibi takip ederim.

Yani mesela:

Diyelim ki CORE-75: Foo the Bar .

Hangi takımın görevi alacağına karar verildikten sonra, yeni bir görev oluşturabilirler: DESTEK-123: Çekirdek Çubuğu Foo .

Daha sonra CORE-75'i SUPPORT-123 ile engelleyebilirsiniz . SUPPORT-123 bittiğinde, CORE-75'e geri dönebilirsiniz . İncelemelerin birleştirilmesini sağlayabilir veya kodu iki kez inceleyebilirsiniz (bir kez belirlenen ekip tarafından, bir kez daha çekirdeğe özgü bir ekip tarafından).

Zaten yaptığınız şey budur: Çekirdek kütüphaneyi kendi ürünü / müşterisi olarak düşünün, yarı yolda kalmayın.


Bu hantal görünüyor, ama evet, işe yarayacaktı. Yani +1benden.
sbi

0

Bir yaklaşım, ekibin sprint için çekirdek kütüphane sorununa geri dönen yeni bir sorun oluşturmasıdır. Sanki bir görev için alt görevler yapıyorsunuz ama panolarda / birikmiş işler arasında.

Başka bir yaklaşım, bunu JIRA dışında ayrı olarak izlemek. Varolan birikmiş iş dosyasını CSV veya e-tablo olarak dışa aktarın ve düzenleyin.

Sorunları JIRA'dan ayırarak, planlama toplantısında önceliği tanımlama esnekliğine sahip olursunuz ve JIRA'nın panolardaki sıralama algoritması hakkında endişelenmenize gerek yoktur ve etiketleri de kullanmak zorunda kalmazsınız.

Çekirdek kütüphane için önceliklendirme planlama toplantısında, çekirdek kütüphane için tamamlanacak görevlerin kısa bir listesini oluşturabilirsiniz ve çekirdek kütüphane için sorumlu / sorumlu olan herkes bu görevlerin farklı proje ekipleri tarafından başlatıldığından ve tamamlandığından emin olabilir.


-2

Çok sayıda ortak, ancak ilgisiz işlevselliği içine alan Çekirdek Kütüphanelerin 'kötü bir şey' (tm) olduğuna dair bir görüş var.

Bunun birkaç nedeni var

  • İhtiyacınız olmayan bağımlılıkları ve kodları çekiyorlar
  • Bunları değiştirmek tüm uygulamalarda değişikliklere neden olur
  • Tek bir 'sahip' yok

Sizin durumunuzda, uygulama tarafından görev bölümünüzün değişikliğin yapılacağı sorunun temelini oluşturduğunu düşünüyorum. Bir nevi tersine Conway yasası.

Bence sizin için en iyi çözüm, 'Çekirdek Kütüphaneler' kütüphanelerinin mantıksal olarak gruplandırılmış belirli bir (küçük) işlevselliğe sahip olması gerektiğinden uzaklaşmak olacaktır. Bunları tamamlamak mümkün olmalıdır. yani JsonParser, LogWriter vb. nadiren yeni bir özellik eklemek mantıklı olmalıdır.

Bununla birlikte, bunun uzun ve zor bir görev olacağını varsayarsak, ikincil bir çözüm olarak temel kütüphane görevlerini işlevselliğe ihtiyaç duyan ekiple birlikte tutacağım. yani.

Görev: X özelliğini Y ürününe ekleyin

Dev: hmm X özelliğinin bazı kodları bir corelibrary'ye gitmeli .. Bu görevin bir parçası olarak oraya koyacağım


Bu tuhaf görünüyor. Yeni başlayanlar için: Sizce "mantıksal olarak gruplanmış belirli bir küçük işlevselliğe sahip kütüphaneler" ile "temel kütüphaneler" dediğimiz şey arasındaki fark nedir? (BTW: Görünüşe göre bu cevap için bildirimi kaçırdım. Çok geç cevap
verdiğim

Bu benim için öne çıkan alıntı olduğunu düşünüyorum: "yazdıkları bir kod parçası daha büyük ilgi görüyor ve çekirdek kütüphaneye çıkarılmalı." Paylaşılan projeleriniz tam özellikli 'kütüphaneler' ise, onlara hiçbir zaman bir özellik eklemenize gerek yoktur.
Ewan

Argümanınızı anlayamıyorum. Herhangi bir kod bakımdan neden fayda sağlamaz? Müşterileriniz asla yeni özellikler istemiyor ve yeni kodların yazılmasına neden oluyor mu? Ve zaten ilgilenen bir gereksinimi olan başka bir projeye atanmaktan başka, kodun ortak ilgi alanı olduğunu nereden biliyorsunuz?
sbi

Diyelim ki kütüphane Json.Net. json ve tersine tek amaçlı serileştirilmiş nesneler vardır. bir hatayı düzeltmeniz veya jenerikler için destek eklemeniz gerekebileceğinden, ancak genel özellik kümesi asla değişmez. Örneğin, bir müşterinin 'siparişleri iptal etme yeteneğini' ya da herhangi bir şeyi uygulamanızı istediğinde ve 'Bunu Json.Net'e ekleyeceğim'
Ewan
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.