Ç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.