DonanımHaber

Event Storming etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Event Storming etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

Event Storming: Etkili ve eğlenceli bir domain modelleme aktivitesi



Büyük bir düşünür şöyle demiş:


The critical complexity of most software projects is in understanding the domain itself.


— Eric Evans


Yani diyor ki, yazılım projelerinde, teknik çözüm geliştirme faaliyeti başlı başına karmaşık bir süreçtir ancak bu süreci sağlıklı bir şekilde tamamlamanın yolu sadece teknik karmaşıklığı ortadan kaldırmaktan değil, daha çok işi, iş süreçlerini, işin terminolojisini doğru anlamaktan geçer. Zaten doğru anlaşılamayan bir soruna getirilen teknik çözümlerin uzun ömürlü olmadığını, uzun vadede kolaylık sağlamaktan çok, başa bela olduğunu birçoğumuz tecrübe etmişizdir. Kaçınız gelişimine katkıda bulunduğunuz bir proje için, “Keşke şurasını tekrar yazabilsek, burasını şuna dönüştürebilsek” şeklinde hasretle iç geçirmiştir?


Peki sorun nerede? Neden iş süreçlerindeki bu karmaşıklığın içinden çıkmak bu kadar çok çaba gerektiriyor?


Yazının devanı...

Qlerify



Buradan ulaşabilirsiniz.




Hakkımızda

Deneyimli teknoloji girişimcileri olarak, süreç ve veri modelleme platformumuzla organizasyonların dijitalleşme projelerindeki hızını artırmalarına yardımcı oluyoruz.


Performans Toplantısı

"Günümüzün en büyük zorluğu daha hızlı kod yazmak değil, alanı daha hızlı anlamaktır."

Alberto Brandolini

Fonksiyonel olmayan yazılım geliştirme projelerinden bıktığımız için Qlerify'i yarattık. Özellikle, insanların birbirlerini saatler, haftalar ve aylar boyunca anlamadıkları korkunç gereksinim toplama toplantılarından sonra sonunda vazgeçtikleri yerde. Kendimiz kullanmak istediğimiz araçları ve yöntemleri yaratmak için yola çıktık. Yolculuğumuz sırasında, Event Storming, BEAM, BPM, Kullanıcı Hikayesi Haritalama ve Alan Odaklı Tasarım gibi güçlü yöntemler için destek uyguladık. Birkaç iterasyondan sonra aracımızın ilk ölçeklenebilir sürümünü 2022'de yayınladık ve nihayet müşterilerin başarı şanslarını artırma konusunda yardımcı olabiliriz.


Takımımızla Tanışın

Nikolaus Varzakakos


COO


Staffan Palopää


CEO & CTO


Kristofer Klerfalk


Yönetim Kurulu Başkanı


Miikka Kataja


Satış Başkanı


Qlerify Aracı

Qlerify platformu, kullanıcıların Jeneratif AI ve benzersiz bir sürükle ve bırak kullanıcı arayüzü kullanarak benzeri görülmemiş bir kolaylık ve hızla süreç ve veri modelleri oluşturmasına olanak tanır. Kendimizi benzer araçlardan nasıl ayırdığımız hakkında daha fazla bilgi edinin.


Bizimle Ortak Olun

Daha fazla ortak arıyoruz! Müşteri projelerinizde yeni büyüme fırsatları kilidini açın ve rekabet avantajı elde edin. Daha fazla bilgi almak isterseniz ulaşın.

Nick Tune – Architecture Modernization with DDD | Øredev 2022 - İngilizce



Nick Tune – Architecture Modernization with DDD | Øredev 2022
Oturum açıklaması: Eski sistemleri modernize etme zamanı geldiğinde, sadece eski sistemin yeniden yazılması değil, etki alanınız için tamamen optimize edilmiş bir mimari tasarlamak önemlidir. Etki Alanı Güdümlü Tasarım birçok pratik yolla yardımcı olabilir. Bu konuşmada, Olay Fırtınası, Etki Alanı Mesaj Akışı Modellemesi ve Çekirdek Etki Alanı Şemalarının işi haritalama, etki alanı odaklı bir mimari tasarlama ve yüksek değerli modernizasyon fırsatlarına odaklanma sürecinde size nasıl rehberlik ettiğini göreceksiniz.

Event Storming Detaylı anlatım, Temel Kavramlar, Örnek Senaryolarla SSS ve Cevapları



Event Storming'i bir aptala anlatır gibi anlatır mısın? Ne zaman ve hangi ihtiyaçla ortaya çıktı? Avantajları neler? Dezavantajları neler? Hakkındaki kitaplar, videolar, kurslar nelerdir?


Event Storming: Event Storming, bir yazılım projesini planlamanın veya bir iş problemini çözmenin hızlı ve etkili bir yolu olarak adlandırılan bir iş atölyesi tekniğidir. Bu tekniği anlamak için önce birkaç temel kavramı açıklamam gerekiyor.


Event: Bir olay, sistemin bir durumunu değiştiren bir şeydir. Örneğin, bir siparişin alınması, bir ödemenin işlenmesi gibi.

Storming: Burada "fırtına" kelimesi, yoğun bir beyin fırtınası oturumu anlamına gelir.

Bu süreçte, iş hedeflerini, iş süreçlerini ve sistem gereksinimlerini çözümlemek için bir grup insan bir araya gelir. Herkes, post-it'lerle bir duvarın üzerine "olayları" yerleştirir ve bunları çeşitli şekillerde düzenler. Bu düzenlemeler, sistemin nasıl çalışması gerektiğini anlamak ve bu işleyişi iyileştirmek için yapılır.


Ne zaman ve hangi ihtiyaçla ortaya çıktı: Event Storming, 2013'te yazılım danışmanı ve yazar Alberto Brandolini tarafından ortaya çıkarıldı. Ana hedef, karmaşık iş süreçlerini ve yazılım sistemlerini anlama ve modelleme sürecini daha hızlı, daha etkili ve daha katılımcı yapmaktı.


Avantajları:


Katılımcı: Herkesin görüşlerini ifade etmesine izin verir. Bu, genellikle yeni bakış açıları ve fikirlerin ortaya çıkmasını teşvik eder.

Hızlı: Bir iş problemini veya yazılım projesini çözümlemek için hızlı bir yöntemdir. Bu süreç genellikle birkaç saat ile birkaç gün arasında sürer.

İletişim: Herkesin aynı sayfada olmasını sağlar ve iletişim engellerini aşar.

Esneklik: Değişen ihtiyaçlara ve öğrenilen yeni bilgilere hızlı bir şekilde yanıt verebilir.

Dezavantajları:


Struktür eksikliği: Olayların belirli bir sıralaması yoktur, bu da bazen karışıklığa neden olabilir.

Herkesin katılımını gerektirir: Bu sürecin etkili olabilmesi için, tüm ekip üyelerinin aktif olarak katılması gerekir. Herkesin katılımını sağlamak bazen zor olabilir.

Sonuçların işlenmesi: Event Storming sonrasında genellikle çok sayıda bilgi ve fikir çıkar, bu bilgi ve fikirlerin işlenmesi ve uygulanması zor olabilir.

Hakkındaki kitaplar, videolar, kurslar: Event Storming hakkında en yaygın ve bilinen kaynak, bu konsepti yaratan kişi olan Alberto Brandolini'nin kitabı "Introducing EventStorming - An act of Deliberate Collective Learning"dir. YouTube'da ve diğer video paylaşım sitelerinde, Event Storming hakkında çok sayıda eğitici video bulabilirsiniz. Ayrıca Udemy, Coursera gibi online kurs platformlarında Event Storming üzerine kurslar da bulabilirsiniz.


Event Storming, genellikle büyük bir duvar veya beyaz tahta üzerine renkli yapışkan notların yerleştirilmesi şeklinde uygulanır. Olaylar, başından sonuna kadar bir iş sürecinin veya yazılımın işleyişini temsil etmek üzere kronolojik bir sıra ile düzenlenir. Ayrıca başka renkli yapışkan notlar kullanarak, iş süreçlerini etkileyen diğer faktörler belirtilebilir. Örneğin, kullanıcıların hangi eylemleri gerçekleştireceği, hangi dış etkenlerin iş sürecine etki edebileceği gibi.


Bu süreç aşağıdaki adımlardan oluşabilir:


Domain Events Belirleme: İlk adım genellikle iş sürecindeki önemli olayları belirlemektir. Örneğin, bir e-ticaret sitesi için "ürün eklenir", "ürün sepete atılır", "ödeme yapılır" gibi olaylar olabilir.


Olayları Düzenleme: Belirlenen olaylar, genellikle kronolojik bir sıra ile düzenlenir. Bu, tüm ekibin iş sürecinin nasıl işlediğini anlamasına yardımcı olur.


Aktörler ve Komutları Belirleme: İş sürecine dahil olan aktörler (kullanıcılar, sistemler vb.) ve bu aktörlerin gerçekleştirdiği eylemler (komutlar) belirlenir. Örneğin, bir müşteri "ürün sepete at" komutunu verebilir.


Kısıtlamalar ve İstisnaları Belirleme: İş sürecindeki kısıtlamalar ve istisnalar da belirlenir. Örneğin, bir ürünün stokta olmaması durumunda ne olacağı gibi.


Modeli İnceleme ve İyileştirme: Son olarak, tüm ekip oluşturulan modeli gözden geçirir ve geliştirmeler yapar. Bu, genellikle model üzerinde tartışmayı ve farklı senaryoları keşfetmeyi içerir.


Event Storming, karmaşık iş süreçlerini ve yazılım projelerini anlamak için hızlı ve etkili bir yöntem sağlar. Bu süreç, genellikle yeni bakış açıları ve fikirlerin ortaya çıkmasını teşvik eder ve tüm ekibin aynı sayfada olmasını sağlar.


Ancak, Event Storming'in bazı dezavantajları da vardır. Örneğin, bu süreç genellikle tüm ekip üyelerinin aktif katılımını gerektirir, bu da her zaman mümkün olmayabilir. Ayrıca, süreç sonunda genellikle çok fazla bilgi ve fikir ortaya çıkar, bu bilgilerin işlenmesi ve uygulanması zor olabilir.


Eğer daha fazla detaylı bilgi almak isterseniz, Alberto Brandolini'nin "Introducing EventStorming - An act of Deliberate Collective Learning" kitabını okumanızı öneririm. Bu kitap, Event Storming konseptini detaylı bir şekilde anlatır ve bu süreci nasıl uygulayacağınıza dair pratik öneriler sunar. Ayrıca, YouTube ve diğer video paylaşım sitelerinde Event Storming hakkında birçok eğitici video bulabilirsiniz.


Event Storming Facilitator 


Event Storming süreci genellikle bir facilitator tarafından yönlendirilir. Facilitator'un rolü, süreci yönetmek ve herkesin aktif olarak katılımını sağlamaktır. Facilitator, tartışmaları yönlendirir, çatışmaları çözer ve sürecin düzgün ve etkili bir şekilde ilerlemesini sağlar.


Event Storming, iş süreçlerini anlamak ve iyileştirmek için mükemmel bir tekniktir. Sadece iş süreçlerini anlamakla kalmaz, aynı zamanda farklı ekip üyeleri arasında daha iyi bir iletişim ve anlayış oluşturur. Bu, daha etkili çözümler ve daha başarılı projeler oluşturabilir.


Trendyol Tech DDD Days - Event Storming


Event Storming süreci ile ilgili daha fazla detay vererek başlayacağım.


Event Storming Sürecinde Dikkat Edilmesi Gerekenler


Tüm Katılımcıların Aktif Olması: İyi bir Event Storming oturumu, herkesin aktif ve etkin katılımını gerektirir. Tüm katılımcılar, kendi bakış açılarını, bilgilerini ve deneyimlerini paylaşmalıdır.


Geri Bildirim Döngüsünün Hızlı Olması: Event Storming, hızlı geri bildirim döngülerine dayanır. Bu, katılımcıların fikirlerini paylaşmalarını, geri bildirim alabilmelerini ve hızlı bir şekilde modeli iterasyon yapabilmelerini sağlar.


Güvenli Bir Ortam Oluşturmak: Event Storming, tartışmaların ve fikir paylaşımının olabileceği güvenli bir ortam gerektirir. Katılımcıların fikirlerini özgürce ifade edebilmeleri, geri bildirim alabilmeleri ve tartışmalara katılabilmeleri için bir güven ortamı oluşturulmalıdır.


Event Storming ve Domain-Driven Design (DDD)


Event Storming, DDD ile birlikte kullanıldığında özellikle güçlüdür. DDD, yazılımı iş süreçlerine daha yakından hizmet etmesi için tasarlamaya odaklanır ve bu süreçlerdeki olayları ve iş kurallarını belirlemek için Event Storming kullanabilir.


Bir DDD yaklaşımı içinde, Event Storming genellikle sürecin ilk adımıdır ve ardından DDD'nin diğer bölümleri izler:


Event Storming: Bu, iş süreçlerini ve olayları anlama aşamasıdır. Ekip, sürecin genel resmini çizer ve süreç boyunca neyin gerçekleştiğini anlar.


Domain Modelleme: Event Storming'ın ardından, ekip domain modelini oluşturur. Bu model, iş süreçlerinin ve kurallarının bir görselleştirmesidir.


Software Tasarımı: En sonunda, ekip yazılımın nasıl tasarlanacağını belirler. Bu tasarım, Event Storming ve domain modelleme aşamalarında elde edilen bilgilere dayanır.


Event Storming, genellikle karmaşık iş süreçlerini anlama ve modelleme aşamasında kullanılan bir tekniktir. İyi uygulandığında, bu sürecin sonunda ekip, iş süreçlerini ve bu süreçleri daha etkili hale getirmek için hangi adımları atması gerektiğini daha iyi anlayabilir.

Event Storming, doğru şekilde yapıldığında, bir organizasyonun iş süreçlerini ve yazılım sistemlerini iyileştirmek için değerli bir araç olabilir. İşte bazı ilave notlar:


İyi Bir Event Storming Oturumu İçin İpuçları


Herkesin Fikirlerini İfade Edebilmesi İçin Güvenli Bir Ortam Yaratın: Katılımcıların düşüncelerini, endişelerini ve fikirlerini özgürce ifade edebileceği bir ortam sağlamak çok önemlidir. Bu, insanların çekinmeden fikirlerini sunmalarına ve yaratıcı çözümler bulmalarına yardımcı olur.


Facilitator'un Rolünü Anlayın: Facilitator'un rolü, süreci yönetmek ve katılımcıların etkin bir şekilde katılımını sağlamaktır. Facilitator, tartışmaları yönlendirebilir, çatışmaları çözebilir ve sürecin etkin ve düzgün bir şekilde ilerlemesini sağlar.


Geri Bildirim Döngülerini Hızlı Tutun: Event Storming'da geri bildirim döngülerinin hızlı olması önemlidir. Bu, insanların hızlı bir şekilde fikirlerini sunmalarını ve geri bildirim alabilmelerini sağlar, böylece sürecin hızlı bir şekilde ilerlemesine yardımcı olur.


Modeli Görsel Hale Getirin: Event Storming süreci, iş süreçlerini görsel bir şekilde temsil etme üzerine kuruludur. Bu, sürecin nasıl çalıştığını ve hangi adımların atılması gerektiğini daha iyi anlamayı sağlar.


Event Storming ve Agile/Scrum


Event Storming ayrıca Agile ve Scrum metodolojileri ile de mükemmel bir şekilde entegre olabilir. Event Storming, iş süreçlerini ve gereksinimlerini anlamaya yardımcı olur, böylece ekipler Agile veya Scrum süreçlerinde bu bilgileri kullanabilir.


Özellikle, Event Storming genellikle bir proje başlatıldığında veya yeni bir özellik eklendiğinde kullanılır. Bu, ekiplerin iş süreçlerini anlamalarını ve hangi adımların atılması gerektiğini belirlemelerini sağlar.


Event Storming, iş gereksinimlerini ve süreçlerini belirleme ve anlama konusunda çok değerli bir araç olabilir. İyi bir Event Storming oturumu, daha etkili bir iş süreci ve daha başarılı bir yazılım projesi oluşturmanın ilk adımı olabilir.


Event Storming'deki Terimler ve Kavramları Anlatır mısın?


Evet, Event Storming sürecinde bu terimler ve kavramlar çok önemli. Her birini detaylarıyla açıklayacağım:


Eventler (Olaylar): Bir Event Storming oturumunda, olaylar genellikle turuncu renkli notlarla gösterilir. Bir olay, sistemde veya iş sürecinde belirli bir durumu değiştiren ve belirli bir sonuç yaratan bir şeyi temsil eder. Örneğin, bir online alışveriş sürecinde, "ürün sepete eklendi" bir olay olabilir.


Aktörler: Aktörler, bir olayı tetikleyen veya o olaya yanıt veren kişiler veya sistemlerdir. Bu genellikle insan kullanıcılar, ancak diğer sistemler veya otomatik işlemler de olabilir. Aktörler genellikle notların üzerinde veya altında isimleri ile belirtilir.


Dış Sistemler: Dış sistemler, bir olayı tetikleyen veya o olaya yanıt veren sistemlerdir. Bu genellikle başka bir hizmet, uygulama veya platform olabilir. Dış sistemler genellikle bir olayın yanında veya üzerinde belirtilir ve bunlar, sürecin bir parçası olan ancak kontrolümüz dışında olan sistemleri temsil eder.


Koşullar: Koşullar, belirli bir olayın gerçekleşmesi için gereken özel durumları veya gereksinimleri temsil eder. Örneğin, bir online alışveriş sürecinde, "ürünün stokta olması" bir koşul olabilir. Koşullar genellikle olayları etkileyen veya onları sınırlayan faktörler olarak düşünülebilir ve genellikle sarı veya yeşil notlarla gösterilir.


Komutlar (Commands): Komutlar, bir olayı tetikleyen eylemlerdir. Genellikle, bir aktörün veya dış sistemlerin bir olayı başlatmak için gerçekleştirdiği bir eylemi temsil ederler. Komutlar genellikle mavi notlarla temsil edilir.


Aggregates: Bu, DDD (Domain-Driven Design) tarafından tanımlanan bir kavramdır ve genellikle bir veya daha fazla olayın bir araya geldiği ve bir bütün olarak işlendiği birimleri temsil eder. Aggregates genellikle farklı renkte notlarla belirtilir ve bu, genellikle iş sürecindeki önemli adımları ve birimleri temsil eder.


Policies: Policies, belirli bir olaya yanıt olarak ne olması gerektiğini belirleyen kuralları temsil eder. Genellikle bir olayın ve sonuçlarının nasıl işlenmesi gerektiğine dair iş kurallarını temsil ederler. Politikalar genellikle yeşil notlarla belirtilir.


Read Models: Read models, bir olayın sonucunda oluşturulan veriyi temsil eder. Genellikle bir olayın sonucunda oluşturulan ve diğer olayları veya süreçleri etkileyen veri veya durumları temsil ederler.


Bu terimler ve kavramlar, Event Storming sürecinde belirli iş süreçlerini ve gereksinimlerini modelleme ve anlama yardımcı olur. Tüm bu kavramlar bir araya geldiğinde, bir iş sürecinin nasıl işlediği ve nasıl iyileştirilebileceği konusunda daha derin bir anlayış sağlarlar. Bu, projenin başarılı bir şekilde yönetilmesi ve uygulanması için çok değerli olabilir.


Elbette, devam ediyorum. Event Storming sürecinde belirli iş süreçlerini ve gereksinimlerini anlama ve modelleme konusunda daha fazla yardımcı olabilecek birkaç başka kavram ve terim daha vardır:


Bounded Contexts: Bounded Context, Domain-Driven Design (DDD) kavramıdır ve belirli bir modelin geçerli olduğu veya anlamlı olduğu sistem veya iş sürecinin belirli bir bölümünü temsil eder. Her Bounded Context kendi modellerine, diline ve iş kurallarına sahip olabilir. Bounded Context'ler genellikle büyük bir kağıt veya pano üzerinde ayrı bölümler olarak gösterilir.


Timeline: Event Storming'da zaman çizelgesi önemli bir rol oynar. Olaylar genellikle ne zaman gerçekleştiğini gösteren bir zaman çizelgesi üzerinde düzenlenir. Bu, sürecin nasıl geliştiğini anlamayı ve olayların birbiriyle nasıl etkileşimde olduğunu görmeyi sağlar.


Hotspots: Hotspots, bir modelde belirsizlik veya çatışma olan alanları temsil eder. Bunlar, bir olayın nasıl gerçekleştiği veya bir komutun nasıl işlendiği hakkında belirsizlik veya anlaşmazlık olduğunda genellikle ortaya çıkar. Hotspots, genellikle kırmızı notlarla gösterilir ve ekip tarafından daha fazla tartışılması veya çözülmesi gereken alanları işaretler.


Event Storming süreci, karmaşık iş süreçlerini anlama ve modelleme konusunda çok değerli bir araç olabilir. Bu terimler ve kavramlar, sürecin nasıl işlediğini ve nasıl geliştirilebileceğini daha iyi anlamaya yardımcı olur. Bu anlayış, daha başarılı bir proje yönetimi ve uygulaması için çok önemlidir.

Event Storming ile yazılım nasıl daha kolay hale gelir?


Event Storming, yazılım geliştirme sürecini birkaç farklı şekilde daha kolay ve daha etkili hale getirir:


İş Süreçlerini Anlama: Event Storming, bir iş sürecinin nasıl işlediğini anlamayı sağlar. Bu, yazılım geliştirme ekibinin hangi özellikleri geliştirmesi gerektiğini ve hangi işlevlerin en önemli olduğunu belirlemesine yardımcı olur.


Karmaşıklığı Yönetme: İş süreçleri genellikle karmaşıktır ve birçok farklı faktörü içerir. Event Storming, bu karmaşıklığı yönetmeyi ve anlamayı sağlar. Bu, yazılım geliştirme ekibinin hangi alanlara odaklanması gerektiğini belirlemesine yardımcı olur.


İletişim ve İşbirliğini Geliştirme: Event Storming, teknik ve iş ekipleri arasında etkili bir iletişim ve işbirliği oluşturur. Bu, herkesin aynı sayfada olmasını sağlar ve projenin daha hızlı ve daha etkili bir şekilde ilerlemesine yardımcı olur.


Sorunları ve Fırsatları Belirleme: Event Storming, belirsizlikleri, çatışmaları ve fırsatları belirlemeyi sağlar. Bu, yazılım geliştirme ekibinin bu sorunları çözmek için stratejiler belirlemesine ve fırsatları değerlendirmesine yardımcı olur.


Yazılım Tasarımına Yön Verme: Event Storming, Domain-Driven Design (DDD) ve mikroservis mimarileri gibi yazılım tasarım yaklaşımlarıyla mükemmel bir şekilde entegre olur. Bu, daha sağlam ve ölçeklenebilir yazılım çözümleri oluşturmayı sağlar.


Event Storming süreci sadece yazılım geliştirmeyi daha kolay hale getirmekle kalmaz, aynı zamanda yazılımın kalitesini ve uyumluluğunu da artırır:


Riskleri Azaltma: Event Storming, yazılım geliştirme sürecindeki riskleri erken bir aşamada belirlemeye yardımcı olur. Bu, problemleri daha önce tespit etmeyi ve bunları daha az maliyetle çözmeyi mümkün kılar.


Test Stratejileri Geliştirme: Yazılımın doğru bir şekilde işlediğini doğrulamak için testlerin ne zaman ve nasıl gerçekleştirileceğini belirleme konusunda yardımcı olur. Olayların belirlendiği ve modellendiği bu görsel süreç, hangi durumların test edilmesi gerektiğini belirlemeyi kolaylaştırır.


Kullanıcı Deneyimini İyileştirme: Event Storming, kullanıcı deneyiminin merkezi bir odak noktası olmasını sağlar. Olaylar, genellikle kullanıcının perspektifinden modellenir ve bu, yazılım geliştirme ekibinin kullanıcıların gerçekten ne istediğini ve ihtiyaçlarını anlamasına yardımcı olur.


Dökümantasyon Oluşturma: Event Storming oturumları, aynı zamanda iş süreçlerinin ve yazılımın kapsamlı bir dökümantasyonunu oluşturur. Bu, yeni ekip üyelerinin hızlı bir şekilde ayağa kalkmasına yardımcı olabilir ve yazılımın bakımını ve güncellenmesini kolaylaştırabilir.


Sonuç olarak, Event Storming, yazılım geliştirme sürecini sadece kolaylaştırmakla kalmaz, aynı zamanda daha etkili, uyumlu ve kullanıcı odaklı yazılım çözümleri oluşturmayı da sağlar.

Event Storming SSS ve örnek senaryolarla Cevapları


Event Storming ile ilgili sıkça sorulan sorular ve örnek senaryolar şunlardır:


Soru 1: Event Storming oturumlarını kimler düzenlemeli?


Cevap: Genellikle bir iş analisti veya bir scrum master gibi bir rol üstlenen bir facilitator tarafından düzenlenir. Ancak, herkes bu süreci yönetebilir. Oturuma katılan kişiler genellikle yazılım geliştiriciler, ürün yöneticileri, iş analistleri, tasarımcılar ve diğer ilgili paydaşlardır.


Örnek Senaryo: Bir e-ticaret platformunu geliştiren bir yazılım geliştirme ekibi, alışveriş deneyimini ve işlem sürecini iyileştirmek için bir Event Storming oturumu düzenleyebilir.


Soru 2: Event Storming oturumlarının süresi ne kadar olmalı?


Cevap: Oturumların süresi genellikle sürecin karmaşıklığına ve katılımcıların sayısına bağlıdır. Bir oturum birkaç saat sürebilir veya daha karmaşık süreçler için birkaç gün boyunca sürebilir.


Örnek Senaryo: Bir bankacılık yazılımını geliştiren bir ekip, karmaşık bir kredi onay sürecini modellemek için birkaç günlük bir Event Storming oturumu düzenleyebilir.


Soru 3: Event Storming sadece yazılım geliştirme için mi kullanılır?


Cevap: Hayır, Event Storming sadece yazılım geliştirme için değil, aynı zamanda iş süreçlerini anlama ve iyileştirme, proje planlama ve hatta eğitim amaçları için de kullanılabilir.


Örnek Senaryo: Bir lojistik şirketi, kargo teslimat sürecini analiz etmek ve iyileştirmek için bir Event Storming oturumu düzenleyebilir.


Soru 4: Event Storming oturumları nerelerde gerçekleştirilir?


Cevap: Event Storming oturumları genellikle büyük bir oda veya toplantı alanında gerçekleştirilir. Ancak, çevrimiçi araçlar kullanarak sanal olarak da yapılabilir.


Örnek Senaryo: Bir ekip, dünya çapında dağıtılmış ekip üyeleriyle birlikte çalışmak için çevrimiçi bir beyaz tahta aracı kullanarak bir Event Storming oturumu düzenleyebilir.


Soru 5: Event Storming süreci ne zaman tamamlanır?


Cevap: Event Storming süreci genellikle, tüm olayların, komutların ve diğer öğelerin belirlendiği ve modelin tüm katılımcılar tarafından anlaşıldığı ve kabul edildiği zaman tamamlanır.


Örnek Senaryo: Bir sağlık hizmetleri yazılımını geliştiren bir ekip, hasta kaydı oluşturma sürecini modelleyen ve onaylayan bir Event Storming oturumu düzenleyebilir.


Soru 6: Event Storming, sadece büyük ve karmaşık projeler için mi uygundur?


Cevap: Hayır, Event Storming, büyük ve karmaşık projelerin yanı sıra, küçük ve basit projeler için de uygundur. Aslında, daha küçük projelerde bile, bu süreç yazılım geliştirme ekibinin iş süreçlerini daha iyi anlamasına ve etkili bir şekilde modellenmesine yardımcı olabilir.


Örnek Senaryo: Küçük bir startup, basit bir kullanıcı kayıt ve oturum açma işlevini modellemek için Event Storming oturumu düzenleyebilir.


Soru 7: Event Storming oturumu sonunda hangi çıktıları beklemeliyim?


Cevap: Event Storming oturumu sonunda, genellikle iş süreçlerini temsil eden bir model elde edersiniz. Bu model, olayları, komutları, aktörleri, dış sistemleri, koşulları ve diğer öğeleri içerebilir. Ayrıca, belirsizlikleri, çatışmaları ve fırsatları belirleyebileceğiniz Hotspotsları da içerebilir.


Örnek Senaryo: Bir oyun geliştirme ekibi, oyunun ilerlemesi ve oyun içi satın alımlar gibi oyun mekaniklerini modellemek için bir Event Storming oturumu düzenleyebilir.


Soru 8: Event Storming ve Domain-Driven Design (DDD) arasındaki ilişki nedir?


Cevap: Event Storming ve Domain-Driven Design (DDD), birbirleriyle yakından ilişkilidir. Event Storming, bir iş sürecinin veya sistemlerin nasıl işlediğini anlamak için kullanılır, bu da DDD'nin çekirdek bileşenlerinden biri olan Bounded Contexts'in tanımlanmasına yardımcı olur.


Örnek Senaryo: Bir otomasyon yazılımı geliştirme ekibi, belirli otomasyon görevlerini ve bu görevlerin nasıl yönetildiğini anlamak için bir Event Storming oturumu düzenleyebilir. Bu bilgi, daha sonra DDD ile uyumlu bir şekilde yazılımın modellenmesine yardımcı olabilir.


Bu örnekler ve cevaplar, Event Storming'in ne olduğunu ve nasıl uygulanabileceğini daha iyi anlamanıza yardımcı olabilir. Bu sürecin esnekliği, hemen hemen her türden proje ve iş sürecine uygulanabilmesini sağlar.


Soru 9: Event Storming, hangi yazılım geliştirme metodolojileriyle uyumludur?


Cevap: Event Storming, çeşitli yazılım geliştirme metodolojileriyle uyumludur. Çünkü esasen bir anlayış ve modelleme tekniğidir. Agile, Scrum, Kanban veya Waterfall gibi metodolojilerle kullanılabilir. Ancak genellikle Agile ve Domain-Driven Design (DDD) metodolojileriyle en iyi sonuçlar verir.


Örnek Senaryo: Bir Scrum takımı, Sprint planlama toplantısına hazırlanmak için bir Event Storming oturumu düzenleyebilir. Bu, ekibin gelecek Sprint için hangi özelliklerin geliştirilmesi gerektiğini anlamasına yardımcı olabilir.


Soru 10: Event Storming'in sınırlamaları veya zorlukları nelerdir?


Cevap: Event Storming, tüm katılımcıların aktif olarak katılımını gerektirir, bu da bazen zor olabilir. Ayrıca, tüm iş süreçlerinin anlaşılması ve modellemesi zaman alabilir. Bu süreç ayrıca bir facilitatorun rehberliğini gerektirir ve bu kişi genellikle deneyimli ve eğitimli olmalıdır.


Örnek Senaryo: Büyük ve karmaşık bir iş sürecini modellemeye çalışan bir ekip, sürecin tüm yönlerini kapsamak için birden fazla Event Storming oturumu düzenlemek zorunda kalabilir.


Soru 11: Event Storming ve User Story Mapping arasındaki fark nedir?


Cevap: Her ikisi de kullanıcı deneyimini ve iş süreçlerini anlamaya ve modellemeye yardımcı olan tekniklerdir. Ancak, Event Storming genellikle daha detaylıdır ve olayları, komutları, durumları ve diğer öğeleri içerir. Öte yandan, User Story Mapping genellikle kullanıcı deneyimini ve işlevselliği anlamaya odaklanır.


Örnek Senaryo: Bir mobil uygulama geliştirme ekibi, kullanıcıların uygulamayı nasıl kullanacağını anlamak için User Story Mapping tekniğini kullanabilir ve ardından bu süreci daha detaylı bir şekilde modellemek için Event Storming oturumu düzenleyebilir.


Soru 12: Event Storming ve Business Process Modeling (BPM) arasında ne gibi farklar var?


Cevap: Her iki teknik de iş süreçlerinin anlaşılması ve modellemesi için kullanılır, ancak yaklaşımları ve sonuçları farklıdır. BPM genellikle daha biçimsel bir yaklaşıma sahipken ve çoğunlukla önceden belirlenmiş sembollerle grafiksel diyagramlar oluştururken, Event Storming daha esnek ve işbirlikçi bir yaklaşımdır ve tüm katılımcıların sürece aktif katılımını teşvik eder.


Örnek Senaryo: Bir sigorta şirketi, iş süreçlerini iyileştirmek için BPM'yi kullanabilir, daha sonra aynı süreçleri daha ayrıntılı bir şekilde anlamak ve modellemek için Event Storming oturumu düzenleyebilir.


Soru 13: Bir Event Storming oturumunu nasıl değerlendiririm?


Cevap: Event Storming oturumunun değerlendirmesi genellikle modelin kalitesi ve detay seviyesi, katılımcıların katılımı ve sürecin ne kadar iyi anlaşıldığına dayanır. Ayrıca, oturumdan çıkan aksiyon öğeleri ve sürecin iyileştirilmesi için belirlenen fırsatlar da değerlendirilebilir.


Örnek Senaryo: Bir yazılım geliştirme ekibi, yeni bir özellik geliştirme sürecini modellemek için bir Event Storming oturumu düzenleyebilir. Oturumun sonunda, ekibin modeli ne kadar iyi anladığını ve ne kadar detaylı olduğunu değerlendirebilirler.


Soru 14: Event Storming sadece yazılım geliştirme ekibine mi yarar sağlar?


Cevap: Hayır, Event Storming sadece yazılım geliştirme ekibi için değil, aynı zamanda iş analistleri, ürün sahipleri, proje yöneticileri ve diğer ilgili paydaşlar için de yararlıdır. İş süreçlerini daha iyi anlamak ve modellemek, daha etkili kararlar almak için gereklidir.


Örnek Senaryo: Bir ürün yöneticisi, ürünün gelecek versiyonları için özelliklerin ne olacağını belirlemek için bir Event Storming oturumu düzenleyebilir. Bu, ürünün yol haritasını oluşturmak için kullanılabilir.


Soru 15: Event Storming oturumlarının süresi ne olmalıdır?


Cevap: Event Storming oturumlarının süresi genellikle katılımcıların sayısına, sürecin karmaşıklığına ve tartışılacak konuların miktarına bağlıdır. Ancak genellikle birkaç saat ile birkaç gün arasında değişir. Çok büyük ve karmaşık projelerde, oturumlar birden fazla güne yayılabilir.


Örnek Senaryo: Bir e-ticaret platformu geliştiren bir yazılım ekibi, alışveriş sepeti özelliğini modellemek için bir Event Storming oturumu düzenler. Bu oturum, alışveriş sepeti özelliğinin nispeten basit olması nedeniyle birkaç saat sürebilir.


Soru 16: Event Storming oturumlarını kimler düzenlemeli?


Cevap: Event Storming oturumlarını herkes düzenleyebilir. Ancak, genellikle bir proje yöneticisi, ürün sahibi, iş analisti veya deneyimli bir yazılım geliştirici tarafından düzenlenir. Önemli olan, oturumu düzenleyen kişinin süreci anlaması, gerektiğinde yönlendirmesi ve tüm katılımcıların aktif olarak katılımını teşvik etmesidir.


Örnek Senaryo: Bir bankacılık yazılımı geliştiren bir ekip, bir banka havalesi özelliğini modellemek için bir Event Storming oturumu düzenler. Bu oturum, iş analisti tarafından düzenlenebilir.


Soru 17: Event Storming oturumları, sadece yazılım geliştirme projelerinin başında mı düzenlenmelidir?


Cevap: Hayır, Event Storming oturumları, projenin her aşamasında düzenlenebilir. Projenin başında, iş gereksinimlerini anlamak ve sistem tasarımını planlamak için kullanılırken, projenin ilerleyen aşamalarında, belirsizlikleri gidermek, sorunları çözmek veya yeni özellikleri planlamak için kullanılabilir.


Örnek Senaryo: Bir takım, bir projenin ortasında yeni bir özellik eklendiğinde, bu yeni özelliği anlamak ve modellemek için bir Event Storming oturumu düzenleyebilir. Bu, ekibin yeni özelliği nasıl geliştireceğini anlamasına yardımcı olabilir.


Tabii ki, daha fazla Event Storming ile ilgili sıkça sorulan sorular ve örnek senaryolarla devam edelim:


Soru 18: Event Storming oturumları uzaktan da yapılabilir mi?


Cevap: Evet, Event Storming oturumları uzaktan da yapılabilir. Bu durumda genellikle dijital beyaz tahta araçları ve video konferans uygulamaları kullanılır. Ancak, bu tür bir oturumun etkili olabilmesi için katılımcıların aktif katılımını sağlamak ve herkesin sürece dahil olduğundan emin olmak çok önemlidir.


Örnek Senaryo: Bir yazılım ekibi, farklı lokasyonlarda çalışan üyeleriyle bir Event Storming oturumu düzenlemek isteyebilir. Bu durumda, dijital bir beyaz tahta uygulaması kullanabilirler ve oturumu bir video konferans üzerinden gerçekleştirebilirler.


Soru 19: Event Storming'de hangi renkler kullanılır ve bu renklerin anlamları nelerdir?


Cevap: Event Storming'de kullanılan renklerin genel bir standardı yoktur ve bu renkler genellikle oturumu düzenleyen ekibin tercihine bağlıdır. Ancak genellikle, olaylar (events) için turuncu, komutlar (commands) için mavi, dışarıdaki sistemler (external systems) için pembe ve koşullar (conditions) için yeşil gibi renkler kullanılır.


Örnek Senaryo: Bir Event Storming oturumu düzenleyen ekip, online alışveriş sürecini modellemek için bir dizi renkli yapışkan not kullanabilir. Bu yapışkan notların her biri, alışveriş sürecinin farklı yönlerini temsil eder.


Soru 20: Event Storming'de hangi tür sorunlar çözülür?


Cevap: Event Storming, çeşitli türdeki sorunları çözmek için kullanılabilir. Bunlar arasında iş süreçlerinin karmaşıklığı, iş ve teknoloji ekipleri arasındaki iletişim kopuklukları, kullanıcıların ve müşterilerin gerçek ihtiyaçlarının anlaşılmaması ve iş gereksinimlerinin net bir şekilde tanımlanmaması gibi sorunlar bulunur.


Örnek Senaryo: Bir sağlık hizmetleri şirketi, hastaların randevu alma sürecini anlamak ve iyileştirmek için bir Event Storming oturumu düzenleyebilir. Bu, iş sürecinin daha etkili ve verimli hale gelmesine yardımcı olabilir.


Tabii ki, Event Storming ile ilgili daha fazla sıkça sorulan sorular ve örnek senaryolarla devam edelim:


Soru 21: Event Storming ile hangi tür verilerin elde edilmesi beklenir?


Cevap: Event Storming oturumları sonucunda, iş süreçlerini ve sistemleri temsil eden bir dizi olay, komut, aktör ve diğer öğelerin yanı sıra, belirsizliklerin, çatışmaların ve fırsatların belirlenmesi beklenir. Ayrıca, modelin tamamlanmasının ardından, sürecin daha da geliştirilmesi için aksiyon öğeleri veya iyileştirme fırsatları da elde edilebilir.


Örnek Senaryo: Bir e-ticaret platformunu geliştiren bir yazılım ekibi, bir Event Storming oturumu sonrasında, kullanıcıların ürünleri sepete eklemesi ve ödeme yapması gibi süreçleri temsil eden bir dizi olay ve komut elde edebilir. Ayrıca, kullanıcı deneyimini iyileştirmek için önerilen aksiyon öğeleri de elde edilebilir.


Soru 22: Event Storming oturumları sadece başlangıç aşamasında mı yapılmalıdır?


Cevap: Event Storming oturumları sadece başlangıç aşamasında değil, projenin farklı aşamalarında da yapılabilir. Başlangıçta iş gereksinimlerini anlamak ve tasarım sürecini planlamak için kullanılabilirken, projenin ilerleyen aşamalarında yeni özelliklerin veya değişikliklerin analiz edilmesi ve modellemesi için de kullanılabilir.


Örnek Senaryo: Bir yazılım geliştirme ekibi, bir mevcut projenin yeni bir özelliğini eklemek için bir Event Storming oturumu düzenleyebilir. Bu, ekibin özelliği daha iyi anlamasına ve geliştirmesine yardımcı olabilir.


Soru 23: Event Storming oturumu sonrası model nasıl kullanılır?


Cevap: Event Storming oturumu sonucunda elde edilen model, yazılım geliştirme sürecinde rehberlik etmek için kullanılabilir. Model, tasarım kararlarını desteklemek, gereksinimleri netleştirmek, test senaryolarını oluşturmak ve hatta dökümantasyon oluşturmak gibi farklı amaçlar için kullanılabilir.


Örnek Senaryo: Bir yazılım ekibi, bir Event Storming oturumu sonrasında oluşturulan modeli, kod geliştirme sürecinde rehber olarak kullanabilir. Model, geliştiricilerin sistemdeki olayları, komutları ve iş süreçlerini daha iyi anlamalarına yardımcı olabilir.


Soru 24: Event Storming oturumlarına nasıl katılım sağlanır?


Cevap: Event Storming oturumlarına katılım, ilgili paydaşların aktif bir şekilde dahil olmasıyla sağlanır. Ekip üyeleri, iş analistleri, yazılım geliştiriciler, ürün sahipleri ve diğer ilgili paydaşlar oturuma katılmalı ve görüşlerini, bilgilerini ve perspektiflerini paylaşmalıdır.


Örnek Senaryo: Bir proje yöneticisi, bir Event Storming oturumu düzenlemek için ilgili paydaşları davet eder ve her bir katılımcının sürece aktif olarak katılmasını sağlar. Bu, farklı bakış açılarının temsil edildiği ve katılımcıların bilgi ve deneyimlerini paylaştığı verimli bir oturum sağlar.

Trendyol Tech DDD Days - Event Storming






Bu videoda, Trendyol Tech DDD Days etkinliğinin Event Storming bölümüne odaklanılıyor. Canlı yayında olan etkinlikte, katılımcılar Event Storming yöntemini öğrenmek ve uygulamak için bir araya geliyorlar.


Öne Çıkanlar

💡 Etkinlik canlı yayında başladı ve katılımcılar bekleniyor.

💡 Trendyol, teknoloji ve pratik paylaşımlarına önem veriyor. Event Storming, şirket içindeki teknoloji özelliklerinden biridir.

💡 Etkinlikte, DDD'nin temel kavramları ve Event Storming yöntemi derinlemesine inceleniyor.

💡 Trendyol'da 19 adet farklı konu etrafında buildimiz bulunuyor ve bu sayı sürekli artıyor.

💡 Event Storming, ddd'nin stratejik dizayn aşamasında kullanılan bir yöntemdir. Süreçler ve bileşenler görselleştirilerek anlaşılabilir hale getirilir.

💡 Event Storming, yeni gereksinimlerin belirlenmesi, tasarımın iyileştirilmesi ve operasyonel süreçlerin tasarımı gibi senaryolarda kullanılabilir.

💡 Event Storming seansları, katılımcıların ve bir facilitator'ün birlikte çalışmasıyla verimli bir şekilde gerçekleştirilir.

🎯 Daha fazla beklemeyin, başlayın!

Codefiction - Event Storming Workshop - Video - Türkçe (Bonus : Event Storming Workshop @Bucharest Software Craftsmanship Community (İngilizce))


Event Storming Workshop - Bölüm 1 - Temel kavramlar ve event kavramına genel bakış


 "Bu bölümde Barış, Fırat ve Deniz olarak Onur'u yakaladık ve bize Event Storming anlatmasına ikna ettik. Temel event storming kavramlarını konuştuk ve DDD, mikroservis konularıyla olan ilişkisini tartıştık. Sonrasında bir gerçek dünya örneğinden yola çıkarak event storming workshop'ına başladık. Keyifli izlemeler!

Katılımcılar Onur Aykaç Fırat Özbolat Barış Özaydın 

Deniz İrgin"




Event Storming Workshop - Bölüm 2 - Command, Koşullar ve Akışlar
"Birinci bölümde genel olarak event storming'in temellerinden ve event kavramından bahsetmiştik. Bu bölümde event'leri tetikleyen command'lara, constraint/validation'lara ve external systems gibi konulara da girerek gerçek hayat örneğimizi tamamlamış olduk. Keyifli izlemeler!
Katılımcılar Onur Aykaç Fırat Özbolat Barış Özaydın 
Deniz İrgin"




Bonus:

Event Storming Workshop @Bucharest Software Craftsmanship Community@Bucharest Software Craftsmanship Community

"Event Storming is a collaborative analysis practice that brings together domain experts and developers for a common understanding of the needs to be realized. Conducted in the form of a workshop, its purpose is to quickly discover what is happening in the software domain. Compared to other methods, it is extremely light and intentionally does not require any computer support. The result is expressed in sticky notes on a wall.

As we will be in Remote, Victor & Alexandre will simulate a small event storming session on Miro, so you will have a first approach on this awesome practice created by Alberto Brandolini. ~~~ About the Speakers: Alexandre Cuva, with more than 20 years of international experience, is an Agile Technical Coach, Consultant and Independent Trainer. He has extensive experience in IT, as a developer, architect, and agile coach, in the finance, government, insurance and watchmaker sectors. With almost 4 years of agile leadership in outsourcing, where he was co-founder and CEO of SmartDev LLC, an Agile IT company in Vietnam with about 100 employees without line management using the ROWE practice (Result Office Working Environment). He was also Technical Director at Smartlink SA, a Swiss finance company in mobile payments, where he applied the principles of Lean / Agile Management with Software Craftsmanship teams in Vietnam and India. In addition to coaching, Alexandre Cuva gives training and presentations on Modern Software, Agile, kanban, team dynamics, remote collaboration, happiness, agile leadership, management 3.0, agile transition, agility on large-scale practices. Alexandre Cuva is passionate about technological evolution, Java, C #, Python, Elixir, and JavaScript development techniques, XP and Scrum practices. Accustomed to speaking around the world (XPDay, SoftShake, Agile Tour, ScrumBeer, ...), Alexandre is co-founder of several communities: as Geneva ScrumBeers, Software Crafts Community Romandie, Da Nang (VN) Agile development community and member of the Agile Vietnam committee. LinkedIn : https://www.linkedin.com/in/cuvaalex/ Twitter : https://twitter.com/Cuvaalex  
Victor is a Java Champion and an Independent Trainer delivering intense webinars for dozens of companies worldwide since 2014. His passion is Simple Design, Refactoring, and Unit Testing, about which he regularly talks at top conferences, but also to this community. On victorrentea.ro you can find his blog, best talks, training curriculum, live masterclasses, and social channels."



Rastgele İçerik

© tüm hakları saklıdır
made with by templateszoo