Çevik Veri Bilimi - Metodoloji Kavramları

Bu bölümde, "çevik" olarak adlandırılan yazılım geliştirme yaşam döngüsü kavramlarına odaklanacağız. Çevik yazılım geliştirme metodolojisi, 1 ila 4 haftalık kısa yinelemelerde seansları artırarak bir yazılım oluşturmaya yardımcı olur, böylece geliştirme, değişen iş gereksinimleriyle uyumlu hale gelir.

Agile metodolojisini ayrıntılı olarak tanımlayan 12 ilke vardır -

Müşteri memnuniyeti

En yüksek öncelik, değerli yazılımların erken ve sürekli teslimi yoluyla gereksinimlere odaklanan müşterilere verilir.

Yeni değişiklikleri memnuniyetle karşılıyoruz

Yazılım geliştirme sırasında değişiklikler kabul edilebilir. Çevik süreçler, müşterinin rekabet avantajına uyacak şekilde çalışacak şekilde tasarlanmıştır.

Teslimat

Çalışan bir yazılımın teslimi, müşterilere bir ila dört hafta arasında verilir.

İşbirliği

İş analistleri, kalite analistleri ve geliştiriciler, projenin tüm yaşam döngüsü boyunca birlikte çalışmalıdır.

Motivasyon

Projeler motive olmuş bireylerden oluşan bir klan ile tasarlanmalıdır. Bireysel ekip üyelerini desteklemek için bir ortam sağlar.

Kişisel görüşme

Yüz yüze görüşme, bir geliştirme ekibine ve içinde bilgi göndermenin en verimli ve etkili yöntemidir.

İlerlemeyi ölçmek

İlerlemeyi ölçmek, proje ve yazılım geliştirmenin ilerlemesini tanımlamaya yardımcı olan anahtardır.

Sabit hızı korumak

Çevik süreç, sürdürülebilir kalkınmaya odaklanır. İşletme, geliştiriciler ve kullanıcılar projeye sürekli olarak ayak uydurabilmelidir.

İzleme

Çevik işlevselliği geliştirmek için teknik mükemmelliğe ve iyi tasarıma düzenli olarak dikkat edilmesi zorunludur.

Basitlik

Çevik süreç her şeyi basit tutar ve tamamlanmayan işi ölçmek için basit terimler kullanır.

Kendi kendine organize terimler

Çevik bir ekip kendi kendine organize olmalı ve en iyi mimari ile bağımsız olmalıdır; gereksinimler ve tasarımlar kendi kendine organize olan ekiplerden ortaya çıkar.

Çalışmayı inceleyin

Ekibin işin nasıl ilerlediğini yansıtabilmesi için çalışmayı düzenli aralıklarla gözden geçirmek önemlidir. Modülü zamanında gözden geçirmek performansı artıracaktır.

Günlük Stand-up

Günlük stand-up, ekip üyeleri arasındaki günlük durum toplantısını ifade eder. Yazılım geliştirmeyle ilgili güncellemeler sağlar. Aynı zamanda proje geliştirmenin önündeki engelleri ele almaya da değinmektedir.

Agile ekibi nasıl kurulursa kurulsun, ofisinin konumundan bağımsız olarak günlük stand-up zorunlu bir uygulamadır.

Günlük stand-up özelliklerinin listesi aşağıdaki gibidir -

  • Günlük stand-up görüşmesinin süresi yaklaşık 15 dakika olmalıdır. Daha uzun süre uzatılmamalıdır.

  • Stand-up, durum güncellemesine ilişkin tartışmaları içermelidir.

  • Bu toplantının katılımcıları genellikle toplantıyı hızlı bir şekilde sonlandırma niyetiyle dururlar.

Kullanıcı hikayesi

Bir hikaye genellikle bir gerekliliktir, birkaç cümleyle basit bir dille formüle edilir ve bir yineleme içinde tamamlanmalıdır. Bir kullanıcı hikayesi aşağıdaki özellikleri içermelidir -

  • İlgili tüm kodun ilgili check-in'leri olmalıdır.

  • Belirtilen yineleme için birim test durumları.

  • Tüm kabul testi durumları tanımlanmalıdır.

  • Hikayeyi tanımlarken ürün sahibinden kabul.

Scrum nedir?

Scrum, çevik metodolojinin bir alt kümesi olarak düşünülebilir. Hafif bir işlemdir ve aşağıdaki özellikleri içerir -

  • Tutarlı bir sırada izlenmesi gereken bir dizi uygulamayı içeren bir süreç çerçevesidir. Scrum'ın en iyi örneği, yinelemeleri veya sprintleri takip etmektir.

  • Bu, "hafif" bir süreçtir, yani belirli bir sürede üretken çıktıyı en üst düzeye çıkarmak için sürecin mümkün olduğunca küçük tutulmasıdır.

Scrum süreci, geleneksel çevik yaklaşımın diğer metodolojilerine kıyasla ayırt edici süreci ile bilinir. Aşağıdaki üç kategoriye ayrılmıştır -

  • Roles

  • Artifacts

  • Zaman Kutuları

Roller, ekip üyelerini ve süreç boyunca yer alan rollerini tanımlar. Scrum Takımı aşağıdaki üç rolden oluşur:

  • Saldırı ustası

  • Ürün sahibi

  • Team

Scrum eserleri, her üyenin bilmesi gereken önemli bilgileri sağlar. Bilgiler, ürün ayrıntılarını, planlanan etkinlikleri ve tamamlanan etkinlikleri içerir. Scrum çerçevesinde tanımlanan eserler aşağıdaki gibidir -

  • Ürün biriktirme listesi

  • Sprint iş yığını

  • Açılış tablosu

  • Increment

Zaman kutuları, her bir yineleme için planlanan kullanıcı hikayeleridir. Bu kullanıcı hikayeleri, Scrum eserlerinin bir parçasını oluşturan ürün özelliklerini açıklamaya yardımcı olur. Ürün biriktirme listesi, kullanıcı hikayelerinin bir listesidir. Bu kullanıcı hikayeleri önceliklendirilir ve hangisinin ele alınması gerektiğine karar vermek için kullanıcı toplantılarına iletilir.

Neden Scrum Master?

Scrum Master, ekibin her üyesiyle etkileşime girer. Şimdi Scrum Master'ın diğer takımlar ve kaynaklarla etkileşimini görelim.

Ürün sahibi

Scrum Master, ürün sahibiyle aşağıdaki şekillerde etkileşime girer:

  • Kullanıcı öykülerinin etkili ürün birikimine ulaşmak için teknikler bulmak ve bunları yönetmek.

  • Ekibin net ve kısa ürün biriktirme listesi öğelerinin ihtiyaçlarını anlamasına yardımcı olur.

  • Özel ortamla ürün planlaması.

  • Ürün sahibinin ürün değerini nasıl artıracağını bilmesini sağlamak.

  • Scrum etkinliklerini gerektiği gibi ve gerektiğinde kolaylaştırmak.

Scrum Takımı

Scrum Master, takımla çeşitli şekillerde etkileşime girer -

  • Scrum'ın benimsenmesinde organizasyona koçluk yapmak.

  • Scrum uygulamalarını belirli bir organizasyona planlamak.

  • Çalışanların ve paydaşların ürün geliştirmenin gereklerini ve aşamalarını anlamalarına yardımcı olmak.

  • Belirtilen takımın Scrum uygulamasının etkinliğini artırmak için diğer takımların Scrum Master'ları ile çalışmak.

Organizasyon

Scrum Master, organizasyonla çeşitli şekillerde etkileşime girer. Birkaçından aşağıda bahsedilmiştir -

  • Koçluk ve saldırı ekibi kendi kendine organizasyonla etkileşime girer ve çapraz işlevsellik özelliği içerir.

  • Scrum'ın henüz tam olarak benimsenmediği veya kabul edilmediği bu tür alanlarda organizasyona ve ekiplere koçluk yapmak.

Scrum'ın Faydaları

Scrum, müşterilerin, ekip üyelerinin ve paydaşların işbirliği yapmasına yardımcı olur. Zaman sınırlı yaklaşımı ve ürünün çalışır durumda olmasını sağlayan ürün sahibinden sürekli geri bildirim içerir. Scrum, projenin farklı rollerine fayda sağlar.

Müşteri

Sprintler veya yinelemeler daha kısa süreli olarak değerlendirilir ve kullanıcı hikayeleri önceliğe göre tasarlanır ve sprint planlamasında ele alınır. Her sprint teslimatının, müşteri gereksinimlerinin karşılanmasını sağlar. Değilse, gereksinimler not edilir ve sprint için planlanır ve alınır.

Organizasyon

Scrum ve Scrum ustalarının yardımıyla organizasyon, kullanıcı hikayelerinin geliştirilmesi için gereken çabalara odaklanabilir, böylece aşırı iş yükünü azaltır ve varsa yeniden çalışmayı önler. Bu aynı zamanda geliştirme ekibinin artan verimliliğini ve müşteri memnuniyetini korumaya yardımcı olur. Bu yaklaşım aynı zamanda pazarın potansiyelini artırmaya da yardımcı olur.

Ürün Yöneticileri

Ürün yöneticilerinin temel sorumluluğu, ürün kalitesinin korunmasını sağlamaktır. Scrum Masters'ın yardımıyla, işi kolaylaştırmak, hızlı yanıtlar toplamak ve varsa değişiklikleri özümsemek kolay hale gelir. Ürün yöneticileri ayrıca tasarlanan ürünün her sprintte müşteri gereksinimlerine göre hizalandığını doğrular.

Geliştirme Takımı

Zamanla sınırlandırılmış yapısı ve sprintleri daha kısa bir süre için tutmasıyla, geliştirme ekibi işin doğru şekilde yansıtıldığını ve teslim edildiğini görmek için hevesli hale gelir. Çalışan ürün, her yinelemeden sonra her seviyeyi yükseltir veya daha doğrusu onları "sprint" olarak adlandırabiliriz. Her sprint için tasarlanan kullanıcı hikayeleri, yinelemeye daha fazla değer katan müşteri önceliği haline gelir.

Sonuç

Scrum, takım çalışmasında yazılım geliştirebileceğiniz verimli bir çerçevedir. Tamamen çevik prensiplere göre tasarlanmıştır. ScrumMaster, Scrum ekibine mümkün olan her şekilde yardımcı olmak ve işbirliği yapmak için oradadır. Tasarlanmış plana sadık kalmanıza ve plana göre tüm etkinlikleri gerçekleştirmenize yardımcı olan kişisel bir eğitmen gibi davranır. ScrumMaster'ın yetkisi asla sürecin ötesine geçmemelidir. Her durumu yönetme potansiyeline sahip olmalıdır.